summaryrefslogtreecommitdiffstats
path: root/Source/WebCore
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-13 16:23:25 +0100
committerBen Murdoch <benm@google.com>2011-05-16 11:35:02 +0100
commit65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch)
treef478babb801e720de7bfaee23443ffe029f58731 /Source/WebCore
parent47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff)
downloadexternal_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip
external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz
external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Source/WebCore')
-rw-r--r--Source/WebCore/Android.derived.jscbindings.mk1
-rw-r--r--Source/WebCore/Android.derived.v8bindings.mk8
-rw-r--r--Source/WebCore/Android.mk52
-rw-r--r--Source/WebCore/CMakeLists.txt103
-rw-r--r--Source/WebCore/CMakeListsWinCE.txt1
-rw-r--r--Source/WebCore/ChangeLog5645
-rw-r--r--Source/WebCore/DerivedSources.cpp1
-rw-r--r--Source/WebCore/DerivedSources.make6
-rw-r--r--Source/WebCore/English.lproj/localizedStrings.jsbin53848 -> 51154 bytes
-rw-r--r--Source/WebCore/ForwardingHeaders/runtime/Collector.h4
-rw-r--r--Source/WebCore/ForwardingHeaders/runtime/Heap.h4
-rw-r--r--Source/WebCore/ForwardingHeaders/runtime/InitializeThreading.h2
-rw-r--r--Source/WebCore/GNUmakefile.am246
-rw-r--r--Source/WebCore/WebCore.exp.in27
-rw-r--r--Source/WebCore/WebCore.gyp/WebCore.gyp42
-rw-r--r--Source/WebCore/WebCore.gypi181
-rw-r--r--Source/WebCore/WebCore.order2
-rw-r--r--Source/WebCore/WebCore.pri15
-rw-r--r--Source/WebCore/WebCore.pro326
-rw-r--r--Source/WebCore/WebCore.vcproj/QTMovieWin.vcproj12
-rwxr-xr-xSource/WebCore/WebCore.vcproj/WebCore.vcproj392
-rw-r--r--Source/WebCore/WebCore.vcproj/WebCoreCommon.vsprops2
-rw-r--r--Source/WebCore/WebCore.vcproj/build-generated-files.sh2
-rw-r--r--Source/WebCore/WebCore.xcodeproj/project.pbxproj822
-rw-r--r--Source/WebCore/accessibility/AccessibilityRenderObject.cpp4
-rw-r--r--Source/WebCore/bindings/js/GCController.cpp2
-rw-r--r--Source/WebCore/bindings/js/JSDirectoryEntryCustom.cpp1
-rw-r--r--Source/WebCore/bindings/js/JSDocumentCustom.cpp15
-rw-r--r--Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp3
-rw-r--r--Source/WebCore/bindings/js/ScriptDebugServer.cpp3
-rw-r--r--Source/WebCore/bindings/js/ScriptGCEvent.cpp2
-rw-r--r--Source/WebCore/bindings/js/ScriptSourceCode.h2
-rw-r--r--Source/WebCore/bindings/v8/DebuggerScript.js4
-rw-r--r--Source/WebCore/bindings/v8/ScriptDebugServer.cpp1
-rw-r--r--Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp18
-rw-r--r--Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp3
-rw-r--r--Source/WebCore/bridge/npruntime.h4
-rw-r--r--Source/WebCore/config.h6
-rw-r--r--Source/WebCore/css/CSSComputedStyleDeclaration.cpp1
-rw-r--r--Source/WebCore/css/CSSFontFaceSource.cpp2
-rw-r--r--Source/WebCore/css/CSSGradientValue.cpp3
-rw-r--r--Source/WebCore/css/CSSGrammar.y52
-rw-r--r--Source/WebCore/css/CSSParser.cpp90
-rw-r--r--Source/WebCore/css/CSSParser.h2
-rw-r--r--Source/WebCore/css/CSSSegmentedFontFace.cpp2
-rw-r--r--Source/WebCore/css/CSSSelector.cpp10
-rw-r--r--Source/WebCore/css/CSSSelector.h10
-rw-r--r--Source/WebCore/css/CSSSelectorList.cpp16
-rw-r--r--Source/WebCore/css/CSSSelectorList.h1
-rw-r--r--Source/WebCore/css/CSSStyleSelector.cpp39
-rw-r--r--Source/WebCore/css/CSSValue.h2
-rw-r--r--Source/WebCore/css/WebKitCSSMatrix.cpp10
-rw-r--r--Source/WebCore/css/html.css61
-rw-r--r--Source/WebCore/css/mediaControlsGtk.css30
-rw-r--r--Source/WebCore/css/mediaControlsQtFullscreen.css190
-rw-r--r--Source/WebCore/css/themeQtMobile.css4
-rw-r--r--Source/WebCore/dom/BeforeLoadEvent.h1
-rw-r--r--Source/WebCore/dom/Document.cpp39
-rw-r--r--Source/WebCore/dom/Document.h6
-rw-r--r--Source/WebCore/dom/Document.idl2
-rw-r--r--Source/WebCore/dom/Element.cpp2
-rw-r--r--Source/WebCore/dom/Element.h6
-rw-r--r--Source/WebCore/dom/Event.cpp1
-rw-r--r--Source/WebCore/dom/Event.h2
-rw-r--r--Source/WebCore/dom/EventQueue.cpp14
-rw-r--r--Source/WebCore/dom/EventQueue.h8
-rw-r--r--Source/WebCore/dom/ExceptionCode.cpp6
-rw-r--r--Source/WebCore/dom/Node.cpp64
-rw-r--r--Source/WebCore/dom/Node.h3
-rw-r--r--Source/WebCore/dom/Range.cpp7
-rw-r--r--Source/WebCore/dom/ScriptExecutionContext.h6
-rw-r--r--Source/WebCore/dom/StyleElement.cpp15
-rw-r--r--Source/WebCore/dom/StyleElement.h2
-rw-r--r--Source/WebCore/dom/StyledElement.cpp3
-rw-r--r--Source/WebCore/dom/StyledElement.h2
-rw-r--r--Source/WebCore/dom/TouchEvent.cpp3
-rw-r--r--Source/WebCore/dom/XMLDocumentParser.cpp8
-rw-r--r--Source/WebCore/editing/ApplyBlockElementCommand.cpp2
-rw-r--r--Source/WebCore/editing/ApplyStyleCommand.cpp168
-rw-r--r--Source/WebCore/editing/ApplyStyleCommand.h2
-rw-r--r--Source/WebCore/editing/BreakBlockquoteCommand.cpp8
-rw-r--r--Source/WebCore/editing/CompositeEditCommand.cpp32
-rw-r--r--Source/WebCore/editing/DeleteButtonController.cpp2
-rw-r--r--Source/WebCore/editing/Editor.cpp4
-rw-r--r--Source/WebCore/editing/EditorCommand.cpp1
-rw-r--r--Source/WebCore/editing/SmartReplace.h5
-rw-r--r--Source/WebCore/editing/htmlediting.h12
-rw-r--r--Source/WebCore/features.pri4
-rw-r--r--Source/WebCore/history/BackForwardListChromium.cpp157
-rw-r--r--Source/WebCore/history/BackForwardListImpl.h28
-rw-r--r--Source/WebCore/history/HistoryItem.cpp22
-rw-r--r--Source/WebCore/history/HistoryItem.h5
-rw-r--r--Source/WebCore/history/PageCache.cpp8
-rw-r--r--Source/WebCore/html/DOMURL.cpp58
-rw-r--r--Source/WebCore/html/DOMURL.h57
-rw-r--r--Source/WebCore/html/DOMURL.idl37
-rw-r--r--Source/WebCore/html/FormAssociatedElement.cpp8
-rw-r--r--Source/WebCore/html/FormAssociatedElement.h2
-rw-r--r--Source/WebCore/html/HTMLElement.cpp122
-rw-r--r--Source/WebCore/html/HTMLElement.h1
-rw-r--r--Source/WebCore/html/HTMLFormControlElement.cpp22
-rw-r--r--Source/WebCore/html/HTMLFormControlElement.h1
-rw-r--r--Source/WebCore/html/HTMLInputElement.cpp13
-rw-r--r--Source/WebCore/html/HTMLObjectElement.cpp6
-rw-r--r--Source/WebCore/html/HTMLObjectElement.h1
-rw-r--r--Source/WebCore/html/HTMLPlugInImageElement.h3
-rw-r--r--Source/WebCore/html/HTMLStyleElement.cpp18
-rw-r--r--Source/WebCore/html/HTMLStyleElement.h3
-rw-r--r--Source/WebCore/html/HTMLStyleElement.idl2
-rw-r--r--Source/WebCore/html/InputType.cpp9
-rw-r--r--Source/WebCore/html/InputType.h6
-rw-r--r--Source/WebCore/html/RangeInputType.cpp6
-rw-r--r--Source/WebCore/html/RangeInputType.h1
-rw-r--r--Source/WebCore/html/ValidationMessage.cpp109
-rw-r--r--Source/WebCore/html/ValidationMessage.h9
-rw-r--r--Source/WebCore/html/canvas/WebGLActiveInfo.h13
-rw-r--r--Source/WebCore/html/canvas/WebGLBuffer.cpp45
-rw-r--r--Source/WebCore/html/canvas/WebGLBuffer.h30
-rw-r--r--Source/WebCore/html/canvas/WebGLFramebuffer.cpp30
-rw-r--r--Source/WebCore/html/canvas/WebGLFramebuffer.h16
-rw-r--r--Source/WebCore/html/canvas/WebGLProgram.cpp14
-rw-r--r--Source/WebCore/html/canvas/WebGLProgram.h12
-rw-r--r--Source/WebCore/html/canvas/WebGLRenderbuffer.h14
-rw-r--r--Source/WebCore/html/canvas/WebGLRenderingContext.cpp698
-rw-r--r--Source/WebCore/html/canvas/WebGLRenderingContext.h452
-rw-r--r--Source/WebCore/html/canvas/WebGLShader.cpp4
-rw-r--r--Source/WebCore/html/canvas/WebGLShader.h8
-rw-r--r--Source/WebCore/html/canvas/WebGLTexture.cpp53
-rw-r--r--Source/WebCore/html/canvas/WebGLTexture.h44
-rw-r--r--Source/WebCore/html/canvas/WebGLUniformLocation.cpp6
-rw-r--r--Source/WebCore/html/canvas/WebGLUniformLocation.h10
-rw-r--r--Source/WebCore/html/shadow/SliderThumbElement.cpp49
-rw-r--r--Source/WebCore/html/shadow/SliderThumbElement.h33
-rw-r--r--Source/WebCore/inspector/CodeGeneratorInspector.pm10
-rw-r--r--Source/WebCore/inspector/ConsoleMessage.cpp4
-rw-r--r--Source/WebCore/inspector/ConsoleMessage.h1
-rw-r--r--Source/WebCore/inspector/InjectedScriptHost.cpp9
-rw-r--r--Source/WebCore/inspector/InjectedScriptHost.h5
-rw-r--r--Source/WebCore/inspector/InjectedScriptSource.js (renamed from Source/WebCore/inspector/front-end/InjectedScript.js)5
-rw-r--r--Source/WebCore/inspector/Inspector.idl48
-rw-r--r--Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp12
-rw-r--r--Source/WebCore/inspector/InspectorApplicationCacheAgent.h6
-rw-r--r--Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp325
-rw-r--r--Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h97
-rw-r--r--Source/WebCore/inspector/InspectorClient.h1
-rw-r--r--Source/WebCore/inspector/InspectorConsoleAgent.cpp230
-rw-r--r--Source/WebCore/inspector/InspectorConsoleAgent.h92
-rw-r--r--Source/WebCore/inspector/InspectorController.cpp521
-rw-r--r--Source/WebCore/inspector/InspectorController.h91
-rw-r--r--Source/WebCore/inspector/InspectorDOMAgent.cpp182
-rw-r--r--Source/WebCore/inspector/InspectorDOMAgent.h23
-rw-r--r--Source/WebCore/inspector/InspectorDOMStorageAgent.h1
-rw-r--r--Source/WebCore/inspector/InspectorDatabaseAgent.cpp2
-rw-r--r--Source/WebCore/inspector/InspectorDatabaseAgent.h1
-rw-r--r--Source/WebCore/inspector/InspectorDebuggerAgent.cpp10
-rw-r--r--Source/WebCore/inspector/InspectorDebuggerAgent.h8
-rw-r--r--Source/WebCore/inspector/InspectorFrontendHost.cpp1
-rw-r--r--Source/WebCore/inspector/InspectorFrontendHost.h2
-rw-r--r--Source/WebCore/inspector/InspectorInstrumentation.cpp297
-rw-r--r--Source/WebCore/inspector/InspectorInstrumentation.h474
-rw-r--r--Source/WebCore/inspector/InspectorProfilerAgent.cpp5
-rw-r--r--Source/WebCore/inspector/InspectorResourceAgent.cpp2
-rw-r--r--Source/WebCore/inspector/InspectorSettings.cpp95
-rw-r--r--Source/WebCore/inspector/InspectorSettings.h73
-rw-r--r--Source/WebCore/inspector/InspectorState.cpp73
-rw-r--r--Source/WebCore/inspector/InspectorState.h25
-rw-r--r--Source/WebCore/inspector/InspectorTimelineAgent.cpp5
-rw-r--r--Source/WebCore/inspector/InspectorTimelineAgent.h2
-rw-r--r--Source/WebCore/inspector/ScriptDebugListener.h2
-rw-r--r--Source/WebCore/inspector/TimelineRecordFactory.cpp3
-rw-r--r--Source/WebCore/inspector/TimelineRecordFactory.h3
-rw-r--r--Source/WebCore/inspector/front-end/ApplicationCacheItemsView.js4
-rw-r--r--Source/WebCore/inspector/front-end/AuditLauncherView.js34
-rw-r--r--Source/WebCore/inspector/front-end/AuditRules.js12
-rw-r--r--Source/WebCore/inspector/front-end/AuditsPanel.js18
-rw-r--r--Source/WebCore/inspector/front-end/Breakpoint.js31
-rw-r--r--Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js20
-rw-r--r--Source/WebCore/inspector/front-end/ConsoleView.js75
-rw-r--r--Source/WebCore/inspector/front-end/CookieItemsView.js3
-rw-r--r--Source/WebCore/inspector/front-end/DOMAgent.js105
-rw-r--r--Source/WebCore/inspector/front-end/DOMStorage.js41
-rw-r--r--Source/WebCore/inspector/front-end/Database.js76
-rw-r--r--Source/WebCore/inspector/front-end/DebuggerModel.js74
-rw-r--r--Source/WebCore/inspector/front-end/ExtensionServer.js6
-rw-r--r--Source/WebCore/inspector/front-end/FileSystemView.js44
-rw-r--r--Source/WebCore/inspector/front-end/HAREntry.js10
-rw-r--r--Source/WebCore/inspector/front-end/ImageView.js16
-rw-r--r--Source/WebCore/inspector/front-end/NetworkManager.js132
-rw-r--r--Source/WebCore/inspector/front-end/NetworkPanel.js79
-rw-r--r--Source/WebCore/inspector/front-end/ProfileDataGridTree.js2
-rw-r--r--Source/WebCore/inspector/front-end/ProfilesPanel.js75
-rw-r--r--Source/WebCore/inspector/front-end/Resource.js37
-rw-r--r--Source/WebCore/inspector/front-end/ResourceCookiesView.js12
-rw-r--r--Source/WebCore/inspector/front-end/ResourceTreeModel.js50
-rw-r--r--Source/WebCore/inspector/front-end/ResourcesPanel.js10
-rw-r--r--Source/WebCore/inspector/front-end/Script.js63
-rw-r--r--Source/WebCore/inspector/front-end/ScriptView.js99
-rw-r--r--Source/WebCore/inspector/front-end/ScriptsPanel.js47
-rw-r--r--Source/WebCore/inspector/front-end/SourceFrame.js147
-rw-r--r--Source/WebCore/inspector/front-end/SourceView.js115
-rw-r--r--Source/WebCore/inspector/front-end/TimelineOverviewPane.js2
-rw-r--r--Source/WebCore/inspector/front-end/TimelinePanel.js53
-rw-r--r--Source/WebCore/inspector/front-end/WebKit.qrc1
-rw-r--r--Source/WebCore/inspector/front-end/inspector.html1
-rw-r--r--Source/WebCore/inspector/front-end/inspector.js47
-rw-r--r--Source/WebCore/inspector/front-end/utilities.js56
-rw-r--r--Source/WebCore/inspector/xxd.pl45
-rw-r--r--Source/WebCore/loader/CrossOriginAccessControl.h5
-rw-r--r--Source/WebCore/loader/DocumentLoader.h3
-rw-r--r--Source/WebCore/loader/EmptyClients.h2
-rw-r--r--Source/WebCore/loader/FrameLoader.cpp51
-rw-r--r--Source/WebCore/loader/FrameLoader.h5
-rw-r--r--Source/WebCore/loader/HistoryController.cpp132
-rw-r--r--Source/WebCore/loader/HistoryController.h3
-rw-r--r--Source/WebCore/loader/NetscapePlugInStreamLoader.h5
-rw-r--r--Source/WebCore/loader/ResourceLoadNotifier.cpp38
-rw-r--r--Source/WebCore/loader/ResourceLoader.cpp11
-rw-r--r--Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp73
-rw-r--r--Source/WebCore/loader/appcache/ApplicationCacheGroup.h3
-rw-r--r--Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp2
-rw-r--r--Source/WebCore/loader/cache/CachedFont.cpp15
-rw-r--r--Source/WebCore/loader/cache/CachedImage.cpp4
-rw-r--r--Source/WebCore/loader/cache/CachedResource.cpp34
-rw-r--r--Source/WebCore/loader/cache/CachedResourceLoader.cpp52
-rw-r--r--Source/WebCore/loader/cache/CachedResourceLoader.h2
-rw-r--r--Source/WebCore/loader/cache/CachedResourceRequest.cpp10
-rw-r--r--Source/WebCore/loader/cache/MemoryCache.cpp12
-rw-r--r--Source/WebCore/loader/cache/MemoryCache.h7
-rw-r--r--Source/WebCore/manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html37
-rw-r--r--Source/WebCore/page/Chrome.cpp7
-rw-r--r--Source/WebCore/page/ChromeClient.h2
-rw-r--r--Source/WebCore/page/Console.cpp140
-rw-r--r--Source/WebCore/page/Console.h3
-rw-r--r--Source/WebCore/page/Console.idl4
-rw-r--r--Source/WebCore/page/ContextMenuController.cpp5
-rw-r--r--Source/WebCore/page/DOMWindow.cpp44
-rw-r--r--Source/WebCore/page/DOMWindow.h9
-rw-r--r--Source/WebCore/page/DOMWindow.idl5
-rw-r--r--Source/WebCore/page/DragController.cpp30
-rw-r--r--Source/WebCore/page/DragController.h4
-rw-r--r--Source/WebCore/page/EditorClient.h2
-rw-r--r--Source/WebCore/page/EventHandler.cpp20
-rw-r--r--Source/WebCore/page/Frame.cpp16
-rw-r--r--Source/WebCore/page/Frame.h5
-rw-r--r--Source/WebCore/page/FrameView.cpp49
-rw-r--r--Source/WebCore/page/FrameView.h1
-rw-r--r--Source/WebCore/page/GeolocationController.cpp6
-rw-r--r--Source/WebCore/page/Page.cpp19
-rw-r--r--Source/WebCore/page/PerformanceTiming.cpp2
-rw-r--r--Source/WebCore/page/PerformanceTiming.h2
-rw-r--r--Source/WebCore/page/PerformanceTiming.idl2
-rw-r--r--Source/WebCore/page/PrintContext.cpp86
-rw-r--r--Source/WebCore/page/PrintContext.h31
-rw-r--r--Source/WebCore/page/SecurityOrigin.cpp27
-rw-r--r--Source/WebCore/page/SecurityOrigin.h6
-rw-r--r--Source/WebCore/page/android/DragControllerAndroid.cpp2
-rw-r--r--Source/WebCore/page/animation/KeyframeAnimation.cpp4
-rw-r--r--Source/WebCore/page/brew/DragControllerBrew.cpp2
-rw-r--r--Source/WebCore/page/chromium/DragControllerChromium.cpp4
-rw-r--r--Source/WebCore/page/chromium/FrameChromium.cpp1
-rw-r--r--Source/WebCore/page/efl/DragControllerEfl.cpp4
-rw-r--r--Source/WebCore/page/gtk/DragControllerGtk.cpp4
-rw-r--r--Source/WebCore/page/haiku/DragControllerHaiku.cpp2
-rw-r--r--Source/WebCore/page/mac/DragControllerMac.mm10
-rw-r--r--Source/WebCore/page/mac/FrameMac.mm41
-rw-r--r--Source/WebCore/page/qt/DragControllerQt.cpp4
-rw-r--r--Source/WebCore/page/qt/FrameQt.cpp1
-rw-r--r--Source/WebCore/page/win/DragControllerWin.cpp4
-rw-r--r--Source/WebCore/page/wx/DragControllerWx.cpp2
-rw-r--r--Source/WebCore/platform/ContextMenuItem.h3
-rw-r--r--Source/WebCore/platform/DragData.cpp13
-rw-r--r--Source/WebCore/platform/DragData.h94
-rw-r--r--Source/WebCore/platform/FileSystem.h1
-rw-r--r--Source/WebCore/platform/Pasteboard.h8
-rw-r--r--Source/WebCore/platform/PlatformWheelEvent.h30
-rw-r--r--Source/WebCore/platform/SchemeRegistry.cpp57
-rw-r--r--Source/WebCore/platform/SchemeRegistry.h10
-rw-r--r--Source/WebCore/platform/UUID.cpp8
-rw-r--r--Source/WebCore/platform/Widget.cpp4
-rw-r--r--Source/WebCore/platform/Widget.h1
-rw-r--r--Source/WebCore/platform/android/DragDataAndroid.cpp8
-rw-r--r--Source/WebCore/platform/chromium/ChromiumBridge.h4
-rw-r--r--Source/WebCore/platform/chromium/ClipboardUtilitiesChromium.h5
-rw-r--r--Source/WebCore/platform/chromium/DragDataChromium.cpp13
-rw-r--r--Source/WebCore/platform/chromium/GeolocationServiceChromium.cpp114
-rw-r--r--Source/WebCore/platform/chromium/GeolocationServiceChromium.h87
-rw-r--r--Source/WebCore/platform/chromium/PopupMenuChromium.cpp54
-rw-r--r--Source/WebCore/platform/chromium/PopupMenuChromium.h5
-rw-r--r--Source/WebCore/platform/efl/DragDataEfl.cpp8
-rw-r--r--Source/WebCore/platform/efl/PasteboardEfl.cpp5
-rw-r--r--Source/WebCore/platform/efl/RenderThemeEfl.cpp1
-rw-r--r--Source/WebCore/platform/graphics/GraphicsContext.cpp1
-rw-r--r--Source/WebCore/platform/graphics/GraphicsContext.h3
-rw-r--r--Source/WebCore/platform/graphics/GraphicsContext3D.cpp114
-rw-r--r--Source/WebCore/platform/graphics/GraphicsContext3D.h18
-rw-r--r--Source/WebCore/platform/graphics/GraphicsLayer.h5
-rw-r--r--Source/WebCore/platform/graphics/ImageSource.cpp12
-rw-r--r--Source/WebCore/platform/graphics/Pen.cpp77
-rw-r--r--Source/WebCore/platform/graphics/Pen.h72
-rw-r--r--Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp48
-rw-r--r--Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h10
-rw-r--r--Source/WebCore/platform/graphics/ca/PlatformCALayer.h3
-rw-r--r--Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm20
-rw-r--r--Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp28
-rw-r--r--Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp21
-rw-r--r--Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.h1
-rw-r--r--Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h5
-rw-r--r--Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h4
-rw-r--r--Source/WebCore/platform/graphics/cairo/PathCairo.cpp25
-rw-r--r--Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp47
-rw-r--r--Source/WebCore/platform/graphics/cg/GraphicsContextPlatformPrivateCG.h5
-rw-r--r--Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp11
-rw-r--r--Source/WebCore/platform/graphics/cg/PDFDocumentImage.h5
-rw-r--r--Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp141
-rw-r--r--Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h7
-rw-r--r--Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp8
-rw-r--r--Source/WebCore/platform/graphics/chromium/FontLinux.cpp56
-rw-r--r--Source/WebCore/platform/graphics/chromium/LayerTexture.h5
-rw-r--r--Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp6
-rw-r--r--Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp3
-rw-r--r--Source/WebCore/platform/graphics/chromium/TextureManager.cpp5
-rw-r--r--Source/WebCore/platform/graphics/chromium/TextureManager.h1
-rw-r--r--Source/WebCore/platform/graphics/filters/FEBlend.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEComposite.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEDiffuseLighting.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEFlood.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEMerge.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEMorphology.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FEOffset.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FESpecularLighting.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FETile.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FETurbulence.cpp2
-rw-r--r--Source/WebCore/platform/graphics/filters/FilterEffect.cpp3
-rw-r--r--Source/WebCore/platform/graphics/filters/FilterEffect.h12
-rw-r--r--Source/WebCore/platform/graphics/filters/SourceAlpha.cpp4
-rw-r--r--Source/WebCore/platform/graphics/filters/SourceGraphic.cpp4
-rw-r--r--Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp35
-rw-r--r--Source/WebCore/platform/graphics/gpu/DrawingBuffer.h6
-rw-r--r--Source/WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm23
-rw-r--r--Source/WebCore/platform/graphics/gstreamer/GStreamerGWorld.cpp3
-rw-r--r--Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindow.h13
-rw-r--r--Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowMac.mm49
-rw-r--r--Source/WebCore/platform/graphics/haiku/GraphicsContextHaiku.cpp1
-rw-r--r--Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp13
-rw-r--r--Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp7
-rw-r--r--Source/WebCore/platform/graphics/qt/GraphicsLayerQt.h3
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp14
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageDecoderQt.h2
-rw-r--r--Source/WebCore/platform/graphics/qt/ImageQt.cpp28
-rw-r--r--Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp18
-rw-r--r--Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h8
-rw-r--r--Source/WebCore/platform/graphics/skia/BitmapImageSingleFrameSkia.h2
-rw-r--r--Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp9
-rw-r--r--Source/WebCore/platform/graphics/skia/ImageSkia.cpp2
-rw-r--r--Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp14
-rw-r--r--Source/WebCore/platform/graphics/win/WKCACFLayer.cpp572
-rw-r--r--Source/WebCore/platform/graphics/win/WKCACFLayer.h299
-rw-r--r--Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp60
-rw-r--r--Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h17
-rw-r--r--Source/WebCore/platform/graphics/wince/ImageWinCE.cpp2
-rw-r--r--Source/WebCore/platform/graphics/wx/GraphicsContextWx.cpp1
-rw-r--r--Source/WebCore/platform/graphics/wx/PenWx.cpp77
-rw-r--r--Source/WebCore/platform/gtk/ContextMenuGtk.cpp17
-rw-r--r--Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp55
-rw-r--r--Source/WebCore/platform/gtk/DragDataGtk.cpp13
-rw-r--r--Source/WebCore/platform/gtk/FileSystemGtk.cpp48
-rw-r--r--Source/WebCore/platform/gtk/GRefPtrGtk.cpp2
-rw-r--r--Source/WebCore/platform/gtk/GRefPtrGtk.h2
-rw-r--r--Source/WebCore/platform/gtk/GtkVersioning.h10
-rw-r--r--Source/WebCore/platform/gtk/RenderThemeGtk.cpp110
-rw-r--r--Source/WebCore/platform/gtk/RenderThemeGtk.h53
-rw-r--r--Source/WebCore/platform/gtk/RenderThemeGtk2.cpp108
-rw-r--r--Source/WebCore/platform/gtk/RenderThemeGtk3.cpp610
-rw-r--r--Source/WebCore/platform/gtk/WidgetRenderingContext.cpp (renamed from Source/WebCore/platform/gtk/WidgetRenderingContextGtk2.cpp)3
-rw-r--r--Source/WebCore/platform/gtk/WidgetRenderingContext.h10
-rw-r--r--Source/WebCore/platform/gtk/WidgetRenderingContextGtk3.cpp73
-rw-r--r--Source/WebCore/platform/gtk/gtk3drawing.c1288
-rw-r--r--Source/WebCore/platform/gtk/gtkdrawing.h9
-rw-r--r--Source/WebCore/platform/haiku/DragDataHaiku.cpp8
-rw-r--r--Source/WebCore/platform/image-decoders/ImageDecoder.cpp26
-rw-r--r--Source/WebCore/platform/image-decoders/ImageDecoder.h20
-rw-r--r--Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp8
-rw-r--r--Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h2
-rw-r--r--Source/WebCore/platform/image-decoders/bmp/BMPImageReader.cpp6
-rw-r--r--Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h6
-rw-r--r--Source/WebCore/platform/image-decoders/cairo/ImageDecoderCairo.cpp2
-rw-r--r--Source/WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp14
-rw-r--r--Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp52
-rw-r--r--Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h4
-rw-r--r--Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp4
-rw-r--r--Source/WebCore/platform/image-decoders/gif/GIFImageReader.h4
-rw-r--r--Source/WebCore/platform/image-decoders/haiku/ImageDecoderHaiku.cpp2
-rw-r--r--Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp8
-rw-r--r--Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h2
-rw-r--r--Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp16
-rw-r--r--Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h2
-rw-r--r--Source/WebCore/platform/image-decoders/openvg/ImageDecoderOpenVG.cpp2
-rw-r--r--Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp14
-rw-r--r--Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h4
-rw-r--r--Source/WebCore/platform/image-decoders/qt/ImageFrameQt.cpp (renamed from Source/WebCore/platform/image-decoders/qt/RGBA32BufferQt.cpp)28
-rw-r--r--Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp26
-rw-r--r--Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp12
-rw-r--r--Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h2
-rw-r--r--Source/WebCore/platform/image-decoders/wx/ImageDecoderWx.cpp2
-rw-r--r--Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp19
-rw-r--r--Source/WebCore/platform/mac/DragDataMac.mm76
-rw-r--r--Source/WebCore/platform/mac/PasteboardMac.mm45
-rw-r--r--Source/WebCore/platform/mac/ThemeMac.mm12
-rw-r--r--Source/WebCore/platform/mac/WheelEventMac.mm25
-rw-r--r--Source/WebCore/platform/mac/WidgetMac.mm84
-rw-r--r--Source/WebCore/platform/mock/SpeechInputClientMock.cpp16
-rw-r--r--Source/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp4
-rw-r--r--Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.cpp28
-rw-r--r--Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.h44
-rw-r--r--Source/WebCore/platform/network/soup/AuthenticationChallenge.h5
-rw-r--r--Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp13
-rw-r--r--Source/WebCore/platform/network/soup/cache/soup-http-input-stream.c2
-rw-r--r--Source/WebCore/platform/network/win/ProxyServerWin.cpp37
-rw-r--r--Source/WebCore/platform/qt/CookieJarQt.cpp16
-rw-r--r--Source/WebCore/platform/qt/DragDataQt.cpp15
-rw-r--r--Source/WebCore/platform/qt/PasteboardQt.cpp29
-rw-r--r--Source/WebCore/platform/qt/PlatformMouseEventQt.cpp2
-rw-r--r--Source/WebCore/platform/qt/RenderThemeQt.cpp98
-rw-r--r--Source/WebCore/platform/qt/RenderThemeQt.h4
-rw-r--r--Source/WebCore/platform/qt/WheelEventQt.cpp2
-rw-r--r--Source/WebCore/platform/win/DragDataWin.cpp15
-rw-r--r--Source/WebCore/platform/win/WebCoreTextRenderer.h5
-rw-r--r--Source/WebCore/platform/wince/DragDataWinCE.cpp9
-rw-r--r--Source/WebCore/platform/wx/DragDataWx.cpp8
-rw-r--r--Source/WebCore/platform/wx/WidgetWx.cpp4
-rw-r--r--Source/WebCore/plugins/qt/PluginViewQt.cpp9
-rw-r--r--Source/WebCore/plugins/symbian/PluginPackageSymbian.cpp12
-rw-r--r--Source/WebCore/plugins/symbian/PluginViewSymbian.cpp18
-rw-r--r--Source/WebCore/rendering/CounterNode.cpp4
-rw-r--r--Source/WebCore/rendering/EllipsisBox.cpp1
-rw-r--r--Source/WebCore/rendering/InlineBox.cpp1
-rw-r--r--Source/WebCore/rendering/InlineFlowBox.h1
-rw-r--r--Source/WebCore/rendering/InlineTextBox.cpp1
-rw-r--r--Source/WebCore/rendering/MediaControlElements.cpp13
-rw-r--r--Source/WebCore/rendering/RenderBlock.cpp28
-rw-r--r--Source/WebCore/rendering/RenderBlock.h5
-rw-r--r--Source/WebCore/rendering/RenderBox.cpp32
-rw-r--r--Source/WebCore/rendering/RenderBox.h2
-rw-r--r--Source/WebCore/rendering/RenderBoxModelObject.h1
-rw-r--r--Source/WebCore/rendering/RenderButton.cpp1
-rw-r--r--Source/WebCore/rendering/RenderEmbeddedObject.cpp1
-rw-r--r--Source/WebCore/rendering/RenderFieldset.cpp15
-rw-r--r--Source/WebCore/rendering/RenderFieldset.h2
-rw-r--r--Source/WebCore/rendering/RenderFileUploadControl.cpp3
-rw-r--r--Source/WebCore/rendering/RenderFrameSet.cpp1
-rw-r--r--Source/WebCore/rendering/RenderFullScreen.cpp2
-rw-r--r--Source/WebCore/rendering/RenderFullScreen.h2
-rw-r--r--Source/WebCore/rendering/RenderHTMLCanvas.cpp3
-rw-r--r--Source/WebCore/rendering/RenderImageResource.cpp1
-rw-r--r--Source/WebCore/rendering/RenderInputSpeech.cpp1
-rw-r--r--Source/WebCore/rendering/RenderLayer.cpp27
-rw-r--r--Source/WebCore/rendering/RenderLayer.h8
-rw-r--r--Source/WebCore/rendering/RenderLayerBacking.cpp26
-rw-r--r--Source/WebCore/rendering/RenderLayerBacking.h2
-rw-r--r--Source/WebCore/rendering/RenderLayerCompositor.cpp47
-rw-r--r--Source/WebCore/rendering/RenderLayerCompositor.h9
-rw-r--r--Source/WebCore/rendering/RenderLineBoxList.cpp1
-rw-r--r--Source/WebCore/rendering/RenderListBox.cpp11
-rw-r--r--Source/WebCore/rendering/RenderListBox.h2
-rw-r--r--Source/WebCore/rendering/RenderMediaControlsChromium.cpp1
-rw-r--r--Source/WebCore/rendering/RenderMenuList.cpp2
-rw-r--r--Source/WebCore/rendering/RenderObject.cpp3
-rw-r--r--Source/WebCore/rendering/RenderObject.h5
-rw-r--r--Source/WebCore/rendering/RenderObjectChildList.cpp1
-rw-r--r--Source/WebCore/rendering/RenderProgress.cpp1
-rw-r--r--Source/WebCore/rendering/RenderSVGTransformableContainer.h47
-rw-r--r--Source/WebCore/rendering/RenderScrollbarPart.cpp2
-rw-r--r--Source/WebCore/rendering/RenderSlider.cpp113
-rw-r--r--Source/WebCore/rendering/RenderSlider.h10
-rw-r--r--Source/WebCore/rendering/RenderTable.cpp1
-rw-r--r--Source/WebCore/rendering/RenderTable.h1
-rw-r--r--Source/WebCore/rendering/RenderTableCell.cpp2
-rw-r--r--Source/WebCore/rendering/RenderTableRow.cpp1
-rw-r--r--Source/WebCore/rendering/RenderTableSection.cpp1
-rw-r--r--Source/WebCore/rendering/RenderTextControl.cpp42
-rw-r--r--Source/WebCore/rendering/RenderTextControlSingleLine.cpp15
-rw-r--r--Source/WebCore/rendering/RenderTextControlSingleLine.h4
-rw-r--r--Source/WebCore/rendering/RenderTheme.cpp1
-rw-r--r--Source/WebCore/rendering/RenderThemeChromiumLinux.cpp1
-rw-r--r--Source/WebCore/rendering/RenderThemeChromiumMac.mm1
-rw-r--r--Source/WebCore/rendering/RenderThemeChromiumSkia.cpp1
-rw-r--r--Source/WebCore/rendering/RenderThemeChromiumWin.cpp1
-rw-r--r--Source/WebCore/rendering/RenderThemeMac.mm1
-rw-r--r--Source/WebCore/rendering/RenderThemeSafari.cpp1
-rw-r--r--Source/WebCore/rendering/RenderThemeWinCE.cpp3
-rw-r--r--Source/WebCore/rendering/RenderVideo.cpp1
-rw-r--r--Source/WebCore/rendering/RenderView.cpp16
-rw-r--r--Source/WebCore/rendering/RenderWidget.cpp18
-rw-r--r--Source/WebCore/rendering/RenderWidget.h2
-rw-r--r--Source/WebCore/rendering/RenderingAllInOne.cpp1
-rw-r--r--Source/WebCore/rendering/RootInlineBox.cpp1
-rw-r--r--Source/WebCore/rendering/SVGResourcesCycleSolver.h51
-rw-r--r--Source/WebCore/rendering/TextControlInnerElements.cpp18
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp (renamed from Source/WebCore/mathml/RenderMathMLBlock.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLBlock.h (renamed from Source/WebCore/mathml/RenderMathMLBlock.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp (renamed from Source/WebCore/mathml/RenderMathMLFenced.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLFenced.h (renamed from Source/WebCore/mathml/RenderMathMLFenced.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp (renamed from Source/WebCore/mathml/RenderMathMLFraction.cpp)30
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLFraction.h (renamed from Source/WebCore/mathml/RenderMathMLFraction.h)2
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLMath.cpp (renamed from Source/WebCore/mathml/RenderMathMLMath.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLMath.h (renamed from Source/WebCore/mathml/RenderMathMLMath.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp (renamed from Source/WebCore/mathml/RenderMathMLOperator.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLOperator.h (renamed from Source/WebCore/mathml/RenderMathMLOperator.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp (renamed from Source/WebCore/mathml/RenderMathMLRoot.cpp)1
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLRoot.h (renamed from Source/WebCore/mathml/RenderMathMLRoot.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLRow.cpp (renamed from Source/WebCore/mathml/RenderMathMLRow.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLRow.h (renamed from Source/WebCore/mathml/RenderMathMLRow.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp (renamed from Source/WebCore/mathml/RenderMathMLSquareRoot.cpp)1
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h (renamed from Source/WebCore/mathml/RenderMathMLSquareRoot.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp (renamed from Source/WebCore/mathml/RenderMathMLSubSup.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLSubSup.h (renamed from Source/WebCore/mathml/RenderMathMLSubSup.h)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp (renamed from Source/WebCore/mathml/RenderMathMLUnderOver.cpp)0
-rw-r--r--Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h (renamed from Source/WebCore/mathml/RenderMathMLUnderOver.h)0
-rw-r--r--Source/WebCore/rendering/style/RenderStyle.cpp3
-rw-r--r--Source/WebCore/rendering/style/RenderStyle.h22
-rw-r--r--Source/WebCore/rendering/style/RenderStyleConstants.h2
-rw-r--r--Source/WebCore/rendering/style/StyleRareInheritedData.cpp2
-rw-r--r--Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp (renamed from Source/WebCore/rendering/RenderSVGAllInOne.cpp)37
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGBlock.cpp (renamed from Source/WebCore/rendering/RenderSVGBlock.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGBlock.h (renamed from Source/WebCore/rendering/RenderSVGBlock.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGContainer.cpp)42
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGContainer.h (renamed from Source/WebCore/rendering/RenderSVGContainer.h)40
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp (renamed from Source/WebCore/rendering/RenderForeignObject.cpp)29
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGForeignObject.h (renamed from Source/WebCore/rendering/RenderForeignObject.h)17
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp (renamed from Source/WebCore/rendering/RenderSVGGradientStop.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGGradientStop.h (renamed from Source/WebCore/rendering/RenderSVGGradientStop.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGHiddenContainer.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h (renamed from Source/WebCore/rendering/RenderSVGHiddenContainer.h)41
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGImage.cpp (renamed from Source/WebCore/rendering/RenderSVGImage.cpp)46
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGImage.h (renamed from Source/WebCore/rendering/RenderSVGImage.h)42
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGInline.cpp1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGInline.h5
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGInlineText.cpp1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGInlineText.h5
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGModelObject.cpp (renamed from Source/WebCore/rendering/RenderSVGModelObject.cpp)0
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGModelObject.h (renamed from Source/WebCore/rendering/RenderSVGModelObject.h)2
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGPath.cpp46
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGPath.h42
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResource.cpp (renamed from Source/WebCore/rendering/RenderSVGResource.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResource.h (renamed from Source/WebCore/rendering/RenderSVGResource.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceClipper.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceClipper.h (renamed from Source/WebCore/rendering/RenderSVGResourceClipper.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceContainer.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceContainer.h (renamed from Source/WebCore/rendering/RenderSVGResourceContainer.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceFilter.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceFilter.h (renamed from Source/WebCore/rendering/RenderSVGResourceFilter.h)7
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h (renamed from Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.h)4
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceGradient.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceGradient.h (renamed from Source/WebCore/rendering/RenderSVGResourceGradient.h)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceLinearGradient.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h (renamed from Source/WebCore/rendering/RenderSVGResourceLinearGradient.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceMarker.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceMarker.h (renamed from Source/WebCore/rendering/RenderSVGResourceMarker.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceMasker.cpp)3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceMasker.h (renamed from Source/WebCore/rendering/RenderSVGResourceMasker.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (renamed from Source/WebCore/rendering/RenderSVGResourcePattern.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourcePattern.h (renamed from Source/WebCore/rendering/RenderSVGResourcePattern.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp (renamed from Source/WebCore/rendering/RenderSVGResourceRadialGradient.cpp)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h (renamed from Source/WebCore/rendering/RenderSVGResourceRadialGradient.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp92
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.h (renamed from Source/WebCore/rendering/RenderSVGResourceSolidColor.h)1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGRoot.cpp (renamed from Source/WebCore/rendering/RenderSVGRoot.cpp)48
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGRoot.h (renamed from Source/WebCore/rendering/RenderSVGRoot.h)43
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.h (renamed from Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.h)34
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTSpan.cpp3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTSpan.h5
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGText.cpp1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGText.h1
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTextPath.cpp3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTextPath.h3
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGTransformableContainer.cpp)38
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h47
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp (renamed from Source/WebCore/rendering/RenderSVGViewportContainer.cpp)41
-rw-r--r--Source/WebCore/rendering/svg/RenderSVGViewportContainer.h (renamed from Source/WebCore/rendering/RenderSVGViewportContainer.h)40
-rw-r--r--Source/WebCore/rendering/svg/SVGImageBufferTools.cpp (renamed from Source/WebCore/rendering/SVGImageBufferTools.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/SVGImageBufferTools.h (renamed from Source/WebCore/rendering/SVGImageBufferTools.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp5
-rw-r--r--Source/WebCore/rendering/svg/SVGInlineFlowBox.h5
-rw-r--r--Source/WebCore/rendering/svg/SVGInlineTextBox.cpp3
-rw-r--r--Source/WebCore/rendering/svg/SVGInlineTextBox.h3
-rw-r--r--Source/WebCore/rendering/svg/SVGMarkerData.h (renamed from Source/WebCore/rendering/SVGMarkerData.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp (renamed from Source/WebCore/rendering/SVGMarkerLayoutInfo.cpp)42
-rw-r--r--Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h (renamed from Source/WebCore/rendering/SVGMarkerLayoutInfo.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGRenderSupport.cpp (renamed from Source/WebCore/rendering/SVGRenderSupport.cpp)9
-rw-r--r--Source/WebCore/rendering/svg/SVGRenderSupport.h (renamed from Source/WebCore/rendering/SVGRenderSupport.h)9
-rw-r--r--Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp (renamed from Source/WebCore/rendering/SVGRenderTreeAsText.cpp)36
-rw-r--r--Source/WebCore/rendering/svg/SVGRenderTreeAsText.h (renamed from Source/WebCore/rendering/SVGRenderTreeAsText.h)28
-rw-r--r--Source/WebCore/rendering/svg/SVGResources.cpp (renamed from Source/WebCore/rendering/SVGResources.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/SVGResources.h (renamed from Source/WebCore/rendering/SVGResources.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCache.cpp (renamed from Source/WebCore/rendering/SVGResourcesCache.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCache.h (renamed from Source/WebCore/rendering/SVGResourcesCache.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCycleSolver.cpp (renamed from Source/WebCore/rendering/SVGResourcesCycleSolver.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h51
-rw-r--r--Source/WebCore/rendering/svg/SVGRootInlineBox.cpp1
-rw-r--r--Source/WebCore/rendering/svg/SVGRootInlineBox.h5
-rw-r--r--Source/WebCore/rendering/svg/SVGShadowTreeElements.cpp (renamed from Source/WebCore/rendering/SVGShadowTreeElements.cpp)34
-rw-r--r--Source/WebCore/rendering/svg/SVGShadowTreeElements.h (renamed from Source/WebCore/rendering/SVGShadowTreeElements.h)34
-rw-r--r--Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp3
-rw-r--r--Source/WebCore/rendering/svg/SVGTextQuery.cpp34
-rw-r--r--Source/WebCore/rendering/svg/SVGTextQuery.h34
-rw-r--r--Source/WebCore/storage/Database.cpp11
-rw-r--r--Source/WebCore/storage/IDBCursorBackendImpl.cpp6
-rw-r--r--Source/WebCore/storage/IDBDatabase.idl2
-rw-r--r--Source/WebCore/storage/IDBDatabaseException.h3
-rw-r--r--Source/WebCore/storage/IDBDatabaseException.idl1
-rw-r--r--Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp16
-rw-r--r--Source/WebCore/svg/SVGElement.cpp1
-rw-r--r--Source/WebCore/svg/SVGElement.h2
-rw-r--r--Source/WebCore/svg/SVGFEBlendElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEColorMatrixElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEComponentTransferElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFECompositeElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEConvolveMatrixElement.h2
-rw-r--r--Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEDisplacementMapElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEGaussianBlurElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEImageElement.h1
-rw-r--r--Source/WebCore/svg/SVGFEMergeElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEMorphologyElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFEOffsetElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFESpecularLightingElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFETileElement.cpp2
-rw-r--r--Source/WebCore/svg/SVGFETurbulenceElement.h1
-rw-r--r--Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp1
-rw-r--r--Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h8
-rw-r--r--Source/WebCore/svg/SVGForeignObjectElement.cpp4
-rw-r--r--Source/WebCore/svg/SVGTextContentElement.cpp1
-rw-r--r--Source/WebCore/svg/graphics/filters/SVGFEImage.cpp2
-rw-r--r--Source/WebCore/svg/graphics/filters/SVGFEImage.h2
-rw-r--r--Source/WebCore/websockets/WebSocketHandshake.cpp17
-rw-r--r--Source/WebCore/wml/WMLInputElement.cpp10
-rw-r--r--Source/WebCore/wml/WMLSelectElement.cpp2
-rw-r--r--Source/WebCore/workers/AbstractWorker.cpp7
-rw-r--r--Source/WebCore/workers/DefaultSharedWorkerRepository.cpp7
-rw-r--r--Source/WebCore/workers/SharedWorker.cpp7
-rw-r--r--Source/WebCore/workers/Worker.cpp12
-rw-r--r--Source/WebCore/workers/WorkerContext.cpp19
-rw-r--r--Source/WebCore/workers/WorkerContext.h7
-rw-r--r--Source/WebCore/workers/WorkerContext.idl4
-rw-r--r--Source/WebCore/workers/WorkerMessagingProxy.cpp1
-rw-r--r--Source/WebCore/xml/DOMParser.cpp11
-rw-r--r--Source/WebCore/xml/XMLHttpRequest.cpp12
-rw-r--r--Source/WebCore/xml/XSLTProcessor.cpp5
657 files changed, 15642 insertions, 9435 deletions
diff --git a/Source/WebCore/Android.derived.jscbindings.mk b/Source/WebCore/Android.derived.jscbindings.mk
index e66ef1b..a049033 100644
--- a/Source/WebCore/Android.derived.jscbindings.mk
+++ b/Source/WebCore/Android.derived.jscbindings.mk
@@ -209,6 +209,7 @@ GEN := \
$(intermediates)/html/JSDOMFormData.h \
$(intermediates)/html/JSDOMSettableTokenList.h \
$(intermediates)/html/JSDOMTokenList.h \
+ $(intermediates)/html/JSDOMURL.h \
$(intermediates)/html/JSDataGridColumn.h \
$(intermediates)/html/JSDataGridColumnList.h \
$(intermediates)/html/JSHTMLAllCollection.h \
diff --git a/Source/WebCore/Android.derived.v8bindings.mk b/Source/WebCore/Android.derived.v8bindings.mk
index 32851f3..eb00a64 100644
--- a/Source/WebCore/Android.derived.v8bindings.mk
+++ b/Source/WebCore/Android.derived.v8bindings.mk
@@ -149,6 +149,7 @@ $(patsubst %.h,%.cpp,$(GEN)): $(intermediates)/bindings/%.cpp : $(intermediates)
GEN := \
$(intermediates)/bindings/V8Blob.h \
$(intermediates)/bindings/V8BlobBuilder.h \
+<<<<<<< HEAD
$(intermediates)/bindings/V8DOMFileSystem.h \
$(intermediates)/bindings/V8DOMFileSystemSync.h \
$(intermediates)/bindings/V8DirectoryEntry.h \
@@ -162,6 +163,13 @@ GEN := \
$(intermediates)/bindings/V8EntryCallback.h \
$(intermediates)/bindings/V8EntrySync.h \
$(intermediates)/bindings/V8ErrorCallback.h \
+=======
+ $(intermediates)/bindings/V8DOMTokenList.h \
+ $(intermediates)/bindings/V8DOMSettableTokenList.h \
+ $(intermediates)/bindings/V8DOMURL.h \
+ $(intermediates)/bindings/V8DataGridColumn.h \
+ $(intermediates)/bindings/V8DataGridColumnList.h \
+>>>>>>> WebKit.org @ r75993
$(intermediates)/bindings/V8File.h \
$(intermediates)/bindings/V8FileCallback.h \
$(intermediates)/bindings/V8FileEntry.h \
diff --git a/Source/WebCore/Android.mk b/Source/WebCore/Android.mk
index a1a56d6..7ae9c44 100644
--- a/Source/WebCore/Android.mk
+++ b/Source/WebCore/Android.mk
@@ -303,7 +303,11 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
html/DOMFormData.cpp \
html/DOMSettableTokenList.cpp \
html/DOMTokenList.cpp \
+<<<<<<< HEAD
html/DateComponents.cpp \
+=======
+ html/DOMURL.cpp \
+>>>>>>> WebKit.org @ r75993
html/DateInputType.cpp \
html/DateTimeInputType.cpp \
html/DateTimeLocalInputType.cpp \
@@ -596,7 +600,6 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
platform/graphics/Path.cpp \
platform/graphics/PathTraversalState.cpp \
platform/graphics/Pattern.cpp \
- platform/graphics/Pen.cpp \
platform/graphics/SegmentedFontData.cpp \
platform/graphics/SimpleFontData.cpp \
platform/graphics/StringTruncator.cpp \
@@ -795,7 +798,6 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
rendering/RenderFieldset.cpp \
rendering/RenderFileUploadControl.cpp \
rendering/RenderFlexibleBox.cpp \
- rendering/RenderForeignObject.cpp \
rendering/RenderFrame.cpp \
rendering/RenderFrameBase.cpp \
rendering/RenderFrameSet.cpp \
@@ -828,6 +830,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
ifeq ($(ENABLE_SVG), true)
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
+<<<<<<< HEAD
rendering/RenderSVGBlock.cpp \
rendering/RenderSVGContainer.cpp \
rendering/RenderSVGGradientStop.cpp \
@@ -851,15 +854,48 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
rendering/RenderSVGTransformableContainer.cpp \
rendering/RenderSVGViewportContainer.cpp \
\
+=======
+ rendering/svg/RenderSVGBlock.cpp \
+ rendering/svg/RenderSVGContainer.cpp \
+ rendering/svg/RenderSVGForeignObject.cpp \
+ rendering/svg/RenderSVGGradientStop.cpp \
+ rendering/svg/RenderSVGHiddenContainer.cpp \
+ rendering/svg/RenderSVGImage.cpp \
+>>>>>>> WebKit.org @ r75993
rendering/svg/RenderSVGInline.cpp \
rendering/svg/RenderSVGInlineText.cpp \
+ rendering/svg/RenderSVGModelObject.cpp \
rendering/svg/RenderSVGPath.cpp \
+ rendering/svg/RenderSVGResource.cpp \
+ rendering/svg/RenderSVGResourceClipper.cpp \
+ rendering/svg/RenderSVGResourceContainer.cpp \
+ rendering/svg/RenderSVGResourceFilter.cpp \
+ rendering/svg/RenderSVGResourceFilterPrimitive.cpp \
+ rendering/svg/RenderSVGResourceGradient.cpp \
+ rendering/svg/RenderSVGResourceLinearGradient.cpp \
+ rendering/svg/RenderSVGResourceMarker.cpp \
+ rendering/svg/RenderSVGResourceMasker.cpp \
+ rendering/svg/RenderSVGResourcePattern.cpp \
+ rendering/svg/RenderSVGResourceRadialGradient.cpp \
+ rendering/svg/RenderSVGResourceSolidColor.cpp \
+ rendering/svg/RenderSVGRoot.cpp \
+ rendering/svg/RenderSVGShadowTreeRootContainer.cpp \
rendering/svg/RenderSVGTSpan.cpp \
rendering/svg/RenderSVGText.cpp \
rendering/svg/RenderSVGTextPath.cpp \
+ rendering/svg/RenderSVGTransformableContainer.cpp \
+ rendering/svg/RenderSVGViewportContainer.cpp \
+ rendering/svg/SVGImageBufferTools.cpp \
rendering/svg/SVGInlineFlowBox.cpp \
rendering/svg/SVGInlineTextBox.cpp \
+ rendering/svg/SVGMarkerLayoutInfo.cpp \
+ rendering/svg/SVGRenderSupport.cpp \
+ rendering/svg/SVGRenderTreeAsText.cpp \
+ rendering/svg/SVGResources.cpp \
+ rendering/svg/SVGResourcesCache.cpp \
+ rendering/svg/SVGResourcesCycleSolver.cpp \
rendering/svg/SVGRootInlineBox.cpp \
+ rendering/svg/SVGShadowTreeElements.cpp
rendering/svg/SVGTextChunk.cpp \
rendering/svg/SVGTextChunkBuilder.cpp \
rendering/svg/SVGTextLayoutAttributes.cpp \
@@ -895,18 +931,6 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
rendering/RenderWordBreak.cpp \
rendering/RootInlineBox.cpp \
-ifeq ($(ENABLE_SVG), true)
-LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
- rendering/SVGImageBufferTools.cpp \
- rendering/SVGMarkerLayoutInfo.cpp \
- rendering/SVGRenderSupport.cpp \
- rendering/SVGRenderTreeAsText.cpp \
- rendering/SVGResources.cpp \
- rendering/SVGResourcesCache.cpp \
- rendering/SVGResourcesCycleSolver.cpp \
- rendering/SVGShadowTreeElements.cpp
-endif
-
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
rendering/ScrollBehavior.cpp \
rendering/ShadowElement.cpp \
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index 8774a09..8050b48 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -49,6 +49,7 @@ SET(WebCore_INCLUDE_DIRECTORIES
"${WEBCORE_DIR}/platform/text/transcoder"
"${WEBCORE_DIR}/plugins"
"${WEBCORE_DIR}/rendering"
+ "${WEBCORE_DIR}/rendering/mathml"
"${WEBCORE_DIR}/rendering/style"
"${WEBCORE_DIR}/rendering/svg"
"${WEBCORE_DIR}/storage"
@@ -197,6 +198,7 @@ SET(WebCore_IDL_FILES
html/DOMFormData.idl
html/DOMSettableTokenList.idl
html/DOMTokenList.idl
+ html/DOMURL.idl
html/HTMLAllCollection.idl
html/HTMLAnchorElement.idl
html/HTMLAppletElement.idl
@@ -995,6 +997,7 @@ SET(WebCore_SOURCES
html/DOMFormData.cpp
html/DOMSettableTokenList.cpp
html/DOMTokenList.cpp
+ html/DOMURL.cpp
html/DataGridColumn.cpp
html/DataGridColumnList.cpp
html/DateComponents.cpp
@@ -1149,8 +1152,10 @@ SET(WebCore_SOURCES
inspector/InjectedScript.cpp
inspector/InjectedScriptHost.cpp
inspector/InspectorApplicationCacheAgent.cpp
+ inspector/InspectorBrowserDebuggerAgent.cpp
inspector/InspectorCSSAgent.cpp
inspector/InspectorClient.cpp
+ inspector/InspectorConsoleAgent.cpp
inspector/InspectorController.cpp
inspector/InspectorDOMAgent.cpp
inspector/InspectorDOMStorageAgent.cpp
@@ -1164,10 +1169,11 @@ SET(WebCore_SOURCES
inspector/InspectorInstrumentation.cpp
inspector/InspectorProfilerAgent.cpp
inspector/InspectorResourceAgent.cpp
- inspector/InspectorStyleSheet.cpp
- inspector/InspectorValues.cpp
+ inspector/InspectorSettings.cpp
inspector/InspectorState.cpp
+ inspector/InspectorStyleSheet.cpp
inspector/InspectorTimelineAgent.cpp
+ inspector/InspectorValues.cpp
inspector/ScriptArguments.cpp
inspector/ScriptBreakpoint.cpp
inspector/ScriptCallFrame.cpp
@@ -1344,7 +1350,6 @@ SET(WebCore_SOURCES
platform/graphics/Path.cpp
platform/graphics/PathTraversalState.cpp
platform/graphics/Pattern.cpp
- platform/graphics/Pen.cpp
platform/graphics/SegmentedFontData.cpp
platform/graphics/SimpleFontData.cpp
platform/graphics/StringTruncator.cpp
@@ -1408,6 +1413,7 @@ SET(WebCore_SOURCES
platform/network/HTTPParsers.cpp
platform/network/NetworkStateNotifier.cpp
platform/network/ProtectionSpace.cpp
+ platform/network/ProxyServer.cpp
platform/network/ResourceErrorBase.cpp
platform/network/ResourceHandle.cpp
platform/network/ResourceRequestBase.cpp
@@ -1688,16 +1694,16 @@ IF (ENABLE_MATHML)
mathml/MathMLInlineContainerElement.cpp
mathml/MathMLMathElement.cpp
mathml/MathMLTextElement.cpp
- mathml/RenderMathMLBlock.cpp
- mathml/RenderMathMLFenced.cpp
- mathml/RenderMathMLFraction.cpp
- mathml/RenderMathMLMath.cpp
- mathml/RenderMathMLOperator.cpp
- mathml/RenderMathMLRoot.cpp
- mathml/RenderMathMLRow.cpp
- mathml/RenderMathMLSquareRoot.cpp
- mathml/RenderMathMLSubSup.cpp
- mathml/RenderMathMLUnderOver.cpp
+ rendering/mathml/RenderMathMLBlock.cpp
+ rendering/mathml/RenderMathMLFenced.cpp
+ rendering/mathml/RenderMathMLFraction.cpp
+ rendering/mathml/RenderMathMLMath.cpp
+ rendering/mathml/RenderMathMLOperator.cpp
+ rendering/mathml/RenderMathMLRoot.cpp
+ rendering/mathml/RenderMathMLRow.cpp
+ rendering/mathml/RenderMathMLSquareRoot.cpp
+ rendering/mathml/RenderMathMLSubSup.cpp
+ rendering/mathml/RenderMathMLUnderOver.cpp
)
ENDIF ()
@@ -1789,48 +1795,48 @@ IF (ENABLE_SVG)
css/SVGCSSParser.cpp
css/SVGCSSStyleSelector.cpp
rendering/PointerEventsHitRules.cpp
- rendering/RenderForeignObject.cpp
- rendering/RenderSVGBlock.cpp
- rendering/RenderSVGContainer.cpp
- rendering/RenderSVGGradientStop.cpp
- rendering/RenderSVGHiddenContainer.cpp
- rendering/RenderSVGImage.cpp
- rendering/RenderSVGModelObject.cpp
- rendering/RenderSVGResource.cpp
- rendering/RenderSVGResourceClipper.cpp
- rendering/RenderSVGResourceContainer.cpp
- rendering/RenderSVGResourceFilter.cpp
- rendering/RenderSVGResourceFilterPrimitive.cpp
- rendering/RenderSVGResourceGradient.cpp
- rendering/RenderSVGResourceLinearGradient.cpp
- rendering/RenderSVGResourceMarker.cpp
- rendering/RenderSVGResourceMasker.cpp
- rendering/RenderSVGResourcePattern.cpp
- rendering/RenderSVGResourceRadialGradient.cpp
- rendering/RenderSVGResourceSolidColor.cpp
- rendering/RenderSVGRoot.cpp
- rendering/RenderSVGShadowTreeRootContainer.cpp
- rendering/RenderSVGTransformableContainer.cpp
- rendering/RenderSVGViewportContainer.cpp
- rendering/SVGImageBufferTools.cpp
- rendering/SVGMarkerLayoutInfo.cpp
- rendering/SVGRenderSupport.cpp
- rendering/SVGRenderTreeAsText.cpp
- rendering/SVGResources.cpp
- rendering/SVGResourcesCache.cpp
- rendering/SVGResourcesCycleSolver.cpp
- rendering/SVGShadowTreeElements.cpp
rendering/style/SVGRenderStyle.cpp
rendering/style/SVGRenderStyleDefs.cpp
+ rendering/svg/RenderSVGBlock.cpp
+ rendering/svg/RenderSVGContainer.cpp
+ rendering/svg/RenderSVGGradientStop.cpp
+ rendering/svg/RenderSVGForeignObject.cpp
+ rendering/svg/RenderSVGHiddenContainer.cpp
+ rendering/svg/RenderSVGImage.cpp
rendering/svg/RenderSVGInline.cpp
rendering/svg/RenderSVGInlineText.cpp
+ rendering/svg/RenderSVGModelObject.cpp
rendering/svg/RenderSVGPath.cpp
+ rendering/svg/RenderSVGResource.cpp
+ rendering/svg/RenderSVGResourceClipper.cpp
+ rendering/svg/RenderSVGResourceContainer.cpp
+ rendering/svg/RenderSVGResourceFilter.cpp
+ rendering/svg/RenderSVGResourceFilterPrimitive.cpp
+ rendering/svg/RenderSVGResourceGradient.cpp
+ rendering/svg/RenderSVGResourceLinearGradient.cpp
+ rendering/svg/RenderSVGResourceMarker.cpp
+ rendering/svg/RenderSVGResourceMasker.cpp
+ rendering/svg/RenderSVGResourcePattern.cpp
+ rendering/svg/RenderSVGResourceRadialGradient.cpp
+ rendering/svg/RenderSVGResourceSolidColor.cpp
+ rendering/svg/RenderSVGRoot.cpp
+ rendering/svg/RenderSVGShadowTreeRootContainer.cpp
rendering/svg/RenderSVGTSpan.cpp
rendering/svg/RenderSVGText.cpp
rendering/svg/RenderSVGTextPath.cpp
+ rendering/svg/RenderSVGTransformableContainer.cpp
+ rendering/svg/RenderSVGViewportContainer.cpp
+ rendering/svg/SVGImageBufferTools.cpp
rendering/svg/SVGInlineFlowBox.cpp
rendering/svg/SVGInlineTextBox.cpp
+ rendering/svg/SVGMarkerLayoutInfo.cpp
+ rendering/svg/SVGRenderSupport.cpp
+ rendering/svg/SVGRenderTreeAsText.cpp
+ rendering/svg/SVGResources.cpp
+ rendering/svg/SVGResourcesCache.cpp
+ rendering/svg/SVGResourcesCycleSolver.cpp
rendering/svg/SVGRootInlineBox.cpp
+ rendering/svg/SVGShadowTreeElements.cpp
rendering/svg/SVGTextChunk.cpp
rendering/svg/SVGTextChunkBuilder.cpp
rendering/svg/SVGTextLayoutAttributes.cpp
@@ -2098,6 +2104,15 @@ ADD_CUSTOM_COMMAND(
LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_DIR}/InspectorBackendDispatcher.cpp ${DERIVED_SOURCES_DIR}/InspectorFrontend.cpp)
+# Generate InjectedScriptSource.h
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${DERIVED_SOURCES_DIR}/InjectedScriptSource.h
+ MAIN_DEPENDENCY inspector/InjectedScriptSource.js
+ COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/inspector/xxd.pl InjectedScriptSource_js ${WEBCORE_DIR}/inspector/InjectedScriptSource.js ${DERIVED_SOURCES_DIR}/InjectedScriptSource.h
+ VERBATIM)
+LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_DIR}/InjectedScriptSource.h)
+
+
MAKE_HASH_TOOLS(${WEBCORE_DIR}/platform/ColorData)
LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_DIR}/ColorData.cpp)
diff --git a/Source/WebCore/CMakeListsWinCE.txt b/Source/WebCore/CMakeListsWinCE.txt
index c33dc16..8733c26 100644
--- a/Source/WebCore/CMakeListsWinCE.txt
+++ b/Source/WebCore/CMakeListsWinCE.txt
@@ -74,6 +74,7 @@ LIST(APPEND WebCore_SOURCES
platform/network/win/CookieJarWin.cpp
platform/network/win/NetworkStateNotifierWin.cpp
+ platform/network/win/ProxyServerWin.cpp
platform/network/win/ResourceHandleWin.cpp
platform/network/win/SocketStreamHandleWin.cpp
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 104e6de..e8fe2cd 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,5648 @@
+2011-01-17 Adam Roben <aroben@apple.com>
+
+ Simplify WKCACFLayerRenderer's API
+
+ createRenderer/destroyRenderer are now hidden behind setHostWindow.
+ WKCACFLayerRendererClient::animationsStarted has been removed, as it
+ was never called. (The work it was supposed to do was already being
+ accomplished by WKCACFLayerRenderer::render telling each layer that
+ animations are starting.)
+
+ Fixes <http://webkit.org/b/52587> WKCACFLayerRenderer is hard to use
+
+ Reviewed by Chris Marrin.
+
+ * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
+ (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Moved the
+ call to setHostWindow here from the WM_CREATE handler. The WM_CREATE
+ handler was causing the Direct3D device to be created, but MSDN says
+ you shouldn't create a device while handling WM_CREATE. Removed
+ no-longer-needed call to createRenderer (setHostWindow does this now)
+ and the never-needed call to setNeedsDisplay (we never draw into the
+ root layer; this was just creating an unnecessary backing store the
+ size of the screen!).
+ (WebCore::MediaPlayerPrivateFullscreenWindow::wndProc): Moved WM_CREATE
+ code, as described above. Removed call to destroyRenderer when handling
+ WM_DESTROY; setHostWindow does this now. Fixed up our WM_PAINT handler
+ to do a synchronous paint and to clear our dirty region, while I was in
+ here.
+
+ * platform/graphics/win/WKCACFLayerRenderer.cpp:
+ (WebCore::WKCACFLayerRenderer::~WKCACFLayerRenderer): Changed to call
+ setHostWindow instead of destroyRenderer; the former calls the latter
+ if needed.
+ (WebCore::WKCACFLayerRenderer::setHostWindow): Moved here from the
+ header file. Destroys our old renderer (i.e., IDirect3DDevice9) if
+ we're losing our window, or creates a renderer if we're gaining a
+ window.
+ (WebCore::WKCACFLayerRenderer::createRenderer): Updated for WKSI function rename.
+ (WebCore::WKCACFLayerRenderer::destroyRenderer): Changed to clear the
+ D3D device from our context before releasing the device.
+
+ * platform/graphics/win/WKCACFLayerRenderer.h: Removed
+ WKCACFLayerRendererClient::animationsStarted. Removed setNeedsDisplay.
+ Make createRenderer, destroyRenderer, and renderSoon private.
+
+2011-01-17 Adam Roben <aroben@apple.com>
+
+ Remove special-cased support for providing content for the root layer
+
+ Clients will just have to provide content through the normal
+ GraphicsLayer channels now!
+
+ Support for <http://webkit.org/b/52582> WebView should paint directly
+ into a GraphicsLayer when in accelerated compositing mode
+
+ Reviewed by Simon Fraser and Chris Marrin.
+
+ * platform/graphics/win/WKCACFLayerRenderer.cpp:
+ (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer): Removed
+ initialization of m_backingStoreDirty, which has itself been removed.
+ (WebCore::WKCACFLayerRenderer::setNeedsDisplay): Moved code to schedule
+ a sync from here to syncCompositingStateSoon. We only need to call
+ renderSoon if we don't call syncCompositingStateSoon; the latter
+ function calls the former.
+ (WebCore::WKCACFLayerRenderer::paint): Removed code to handle
+ m_backingStoreDirty. We don't want to know anything about clients'
+ backing stores.
+ (WebCore::WKCACFLayerRenderer::syncCompositingStateSoon): Added. Code
+ came from setNeedsDisplay.
+
+ * platform/graphics/win/WKCACFLayerRenderer.h:
+ Removed setRootContents[AndDisplay], setBackingStoreDirty, and
+ m_backingStoreDirty. Made paint() public so that clients can force a
+ synchronous render (e.g., when handling WM_PAINT).
+
+2011-01-17 Adam Roben <aroben@apple.com>
+
+ Remove contexts from WKCACFContextFlusher before destroying them
+
+ We aren't really using WKCACFContextFlusher for anything useful at the
+ moment, but that will probably change in the near future.
+
+ I couldn't come up with a way to test this because it isn't possible to
+ resize a window in DumpRenderTree.
+
+ Fixes <http://webkit.org/b/52573> REGRESSION (r75262): Crash beneath
+ WKCACFContextFlusher::flushAllContexts when resizing window on page
+ that uses accelerated compositing
+
+ Reviewed by Simon Fraser.
+
+ * platform/graphics/win/WKCACFLayerRenderer.cpp:
+ (WebCore::WKCACFLayerRenderer::~WKCACFLayerRenderer): Remove our
+ context from WKCACFContextFlusher. (This code was erroneously removed
+ from WKCACFLayerRenderer::destroyRenderer in r75262. This is a more
+ sensible place for it.)
+
+2011-01-17 Adam Roben <aroben@apple.com>
+
+ Don't access the CACFLayerRef's sublayers directly from PlatformCALayer
+
+ There might be a secret extra sublayer (the tile parent layer) that
+ PlatformCALayer doesn't know about. When PlatformCALayer would
+ encounter this, it would try to use the tile parent layer's
+ PlatformCALayer wrapper, which was null, and then would crash. We now
+ ask PlatformCALayerWinInternal for the sublayer list, since that class
+ knows about the tile parent layer and can exclude it from the sublayer
+ list.
+
+ Covered by compositing/tiling/huge-layer-resize.html.
+
+ Fixes <http://webkit.org/b/52597> Crash beneath
+ PlatformCALayer::adoptSublayers when switching out of tiling mode
+ (null-dereference of a PlatformCALayer)
+
+ Reviewed by Darin Adler and Chris Marrin.
+
+ * platform/graphics/ca/win/PlatformCALayerWin.cpp:
+ (PlatformCALayer::adoptSublayers):
+ (printLayer):
+ Changed to use PlatformCALayerWinInternal::getSublayers.
+
+ * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
+ (PlatformCALayerWinInternal::getSublayers): Added. Retrieves the list
+ of PlatformCALayers that represent our sublayers. Significantly, this
+ code knows about the tile parent layer and can thus exclude it.
+
+ * platform/graphics/ca/win/PlatformCALayerWinInternal.h: Added
+ getSublayers.
+
+2011-01-17 Naoki Takano <takano.naoki@gmail.com>
+
+ Reviewed by Kent Tamura.
+
+ [Chromium] Fix popup menu re-positioning when the menu is opened upward, above the corresponding form field.
+ https://bugs.webkit.org/show_bug.cgi?id=51382
+ http://crbug.com/60427
+
+ Calculate correct location of popup window whenever the items in the window change.
+
+ No new tests, because this fix is for Chromium project and hard to test only in WebKit project
+
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupContainer::layoutAndCalculateWidgetRect): New Function to layout and calculate popup widget rect.
+ (WebCore::PopupContainer::showPopup): Move widgetRect calculation logic to calculateWidgetRect().
+ (WebCore::PopupContainer::refresh): Add parameter focusRect to take the location and the size of focus text input field to calculate correct popup window location.
+ * platform/chromium/PopupMenuChromium.h: Append new input parameter for refresh().
+
+2011-01-17 Mark Rowe <mrowe@apple.com>
+
+ Fix the 32-bit build.
+
+ * WebCore.exp.in:
+
+2011-01-17 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Use of invalid hash map key in CSSFontFaceSource::getFontData() with 0-sized remote font
+ https://bugs.webkit.org/show_bug.cgi?id=52598
+
+ Test: fast/css/font-face-zero-hash-key.html
+
+ * css/CSSFontFaceSource.cpp:
+ (WebCore::CSSFontFaceSource::getFontData): Add 1 to the font size to avoid a 0 hash key.
+ * css/CSSSegmentedFontFace.cpp:
+ (WebCore::CSSSegmentedFontFace::getFontData): Ditto.
+
+2011-01-17 David Kilzer <ddkilzer@apple.com>
+
+ <http://webkit.org/b/52596> Add missing DOMDocument/DOMDocumentFragment headers to Xcode project
+
+ Reviewed by Dan Bernstein.
+
+ This fixes two issues:
+
+ Add missing DOMDocumentFragmentPrivate.h and
+ DOMDocumentPrivate.h files to the project. These files were
+ never added to the the project although their *Internal.h
+ counterparts were added in r16548 and r17390.
+
+ Add missing DOMDocumentFragmentInternal.h to the Headers
+ section. It was moved from Headers to "Copy Generated Headers"
+ in r31045, but it should have an entry in both sections.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2011-01-17 Helder Correia <helder@sencha.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Incorrect shadow alpha with pattern fillStyle
+ https://bugs.webkit.org/show_bug.cgi?id=52559
+
+ The shadow color opacity needs to be set on the shadow painter.
+ This is related to bug 52556.
+
+ Test: fast/canvas/canvas-fillPath-pattern-shadow.html
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::fillPath):
+
+2011-01-17 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Andreas Kling.
+
+ [GTK] Port a crash fix from libsoup upstream to the libsoup cache code
+ https://bugs.webkit.org/show_bug.cgi?id=52586
+
+ No new tests. This is just a merge from upstream.
+
+ * platform/network/soup/cache/soup-http-input-stream.c:
+ (webkit_soup_http_input_stream_got_chunk): Properly handle unsigned numbers.
+
+2011-01-17 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Fix some headers with missing or misspelled #ifndef guards
+ https://bugs.webkit.org/show_bug.cgi?id=52545
+
+ No new tests because no new functionality.
+
+ * ForwardingHeaders/runtime/InitializeThreading.h:
+ * editing/SmartReplace.h:
+ * loader/CrossOriginAccessControl.h:
+ * loader/NetscapePlugInStreamLoader.h:
+ * platform/chromium/ClipboardUtilitiesChromium.h:
+ * platform/graphics/cairo/DrawErrorUnderline.h:
+ * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
+ * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
+ * platform/graphics/cg/PDFDocumentImage.h:
+ * platform/win/WebCoreTextRenderer.h:
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: follow-up fix for r52574: do not reuse clear() for navigation.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkPanel.prototype.clear):
+ (WebInspector.NetworkPanel.prototype.mainResourceChanged):
+
+2011-01-17 Sergio Villar Senin <svillar@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [Gtk] No need to content sniff 304 Not Modified responses
+ https://bugs.webkit.org/show_bug.cgi?id=52570
+
+ Makes no sense to wait for the outcome of content sniffing when WebCore
+ is validating resources. If we get a 304 Not Modified it means that we can
+ safely use the cached version of the resource we're asking for.
+
+ No new tests because it does not change functionality, it just
+ calls didReceiveResponse sooner for 304 Not Modified responses.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::gotHeadersCallback):
+
+2011-01-17 Jessie Berlin <jberlin@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ REGRESSION: Assertion failure in FrameLoader::continueLoadAfterWillSubmitForm() when
+ navigating back to an unreachable URL
+ https://bugs.webkit.org/show_bug.cgi?id=52388
+
+ Test: http/tests/navigation/go-back-to-error-page.html
+
+ * history/PageCache.cpp:
+ (WebCore::PageCache::canCachePageContainingThisFrame):
+ Do not cache any error pages (which we can recognize as having substitute data and/or an
+ unreachableURL).
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: fixing typo in r75952.
+
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
+
+2011-01-17 Enrica Casucci <enrica@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Drag and drop support: refactoring of image from link and image from selection
+ https://bugs.webkit.org/show_bug.cgi?id=52496
+
+ This work cleans up the Mac code and makes it more similar to the Windows implementation,
+ avoiding the use of an NSView when the FrameView can be used.
+ The refactoring is a necessary step towards the complete support of drag and drop
+ in WebKit2.
+
+ * page/mac/FrameMac.mm:
+ (WebCore::Frame::imageFromRect): Modified to use FrameView instead of NSView
+ to generate the image for drag.
+
+2011-01-17 Dan Bernstein <mitz@apple.com>
+
+ Rubber-stamped by Mark Rowe.
+
+ Update xcodeproj svn:ignore to include xcuserdata.
+
+ * WebCore.xcodeproj: Modified property svn:ignore.
+ * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj: Modified property svn:ignore.
+
+2011-01-17 Alexey Proskuryakov <ap@apple.com>
+
+ Leopard build fix.
+
+ * page/PrintContext.cpp: GCC complained about shortening a double value to float.
+
+2011-01-17 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52495
+
+ No change in behavior, so no tests.
+
+ * WebCore.exp.in: Export additional methods, as I'm going to use more code from PrintContext.
+
+ * page/PrintContext.cpp:
+ (WebCore::PrintContext::~PrintContext): No need to clear m_pageRects, the object is being
+ destroyed already.
+ (WebCore::PrintContext::pageCount): Changed page count from int to size_t.
+ (WebCore::PrintContext::pageRect): Ditto.
+ (WebCore::PrintContext::computePageRects): Pass allowHorizontalTiling as an argument.
+ PrintContext already has code to calculate scale factor, so it makes sense to make methods
+ that contain it universal (allowHorizontalTiling is always true for Safari).
+ Round page height to an integer, because Mac code does that, and because page height is
+ treated as integer almost everywhere else in code.
+ (WebCore::PrintContext::begin): Allow calling this function multiple times. There is no need
+ to return to screen mode if e.g. "print backgounds" option changes.
+ (WebCore::PrintContext::computeAutomaticScaleFactor): Expose scale factor computation, so
+ that clients don't have to copy it.
+ (WebCore::PrintContext::spoolRect): Add a way to spool a precomputed rect - handy if a request
+ comes from code that doesn't have page number.
+ (WebCore::PrintContext::pageNumberForElement): Page number int -> size_t.
+
+ * page/PrintContext.h: Added comments and FIXMEs. PrintContext needs cleanup, but that
+ depends on deciding how it really needs to work (e.g. whether computePageRects() should
+ cause relayout).
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: unify image data source assignment, add image url
+ to the image view properties list.
+ https://bugs.webkit.org/show_bug.cgi?id=52584
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/ImageView.js:
+ (WebInspector.ImageView.prototype._createContentIfNeeded.onImageLoad):
+ (WebInspector.ImageView.prototype._createContentIfNeeded):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource.prototype.populateImageSource):
+ (WebInspector.Resource.prototype._contentURL):
+ * inspector/front-end/ResourcesPanel.js:
+ (WebInspector.FrameResourceTreeElement.prototype.onattach):
+
+2011-01-17 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: [Extensions API] webInspector.resources.onFinished is not fired for redirected resources
+ Make resource start/finish hanlding more consistent.
+ https://bugs.webkit.org/show_bug.cgi?id=52452
+
+ * inspector/front-end/AuditLauncherView.js: Ignore WebSocket resources when displaying progress indicator
+ (WebInspector.AuditLauncherView.prototype._resetResourceCount):
+ (WebInspector.AuditLauncherView.prototype.resourceStarted):
+ (WebInspector.AuditLauncherView.prototype.resourceFinished):
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager): Factor out resource start/finish logic to _startResource()/_finishResource()
+ (WebInspector.NetworkManager.prototype.identifierForInitialRequest):
+ (WebInspector.NetworkManager.prototype.willSendRequest):
+ (WebInspector.NetworkManager.prototype.markResourceAsCached):
+ (WebInspector.NetworkManager.prototype.didReceiveResponse):
+ (WebInspector.NetworkManager.prototype.didReceiveContentLength):
+ (WebInspector.NetworkManager.prototype.didFinishLoading):
+ (WebInspector.NetworkManager.prototype.didFailLoading):
+ (WebInspector.NetworkManager.prototype.didLoadResourceFromMemoryCache):
+ (WebInspector.NetworkManager.prototype.didCreateWebSocket):
+ (WebInspector.NetworkManager.prototype.willSendWebSocketHandshakeRequest):
+ (WebInspector.NetworkManager.prototype.didReceiveWebSocketHandshakeResponse):
+ (WebInspector.NetworkManager.prototype.didCloseWebSocket):
+ (WebInspector.NetworkManager.prototype._appendRedirect):
+ (WebInspector.NetworkManager.prototype._startResource):
+ (WebInspector.NetworkManager.prototype._finishResource):
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: restore dom and network state upon frontend reuse.
+ https://bugs.webkit.org/show_bug.cgi?id=52574
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::restoreInspectorStateFromCookie):
+ (WebCore::InspectorController::populateScriptObjects):
+ (WebCore::InspectorController::pushDataCollectedOffline):
+ (WebCore::InspectorController::didCommitLoad):
+ * inspector/InspectorController.h:
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager.prototype.reset):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkPanel.prototype.clear):
+ (WebInspector.NetworkPanel.prototype.mainResourceChanged):
+ * inspector/front-end/ResourceTreeModel.js:
+ (WebInspector.ResourceTreeModel):
+ (WebInspector.ResourceTreeModel.prototype.reloadCachedResources):
+ * inspector/front-end/ResourcesPanel.js:
+ (WebInspector.ResourcesPanel.prototype.clear):
+ * inspector/front-end/inspector.js:
+ (WebInspector.frontendReused):
+
+2011-01-17 Csaba Osztrogonác <ossy@webkit.org>
+
+ Unreviewed buildfix after r75944.
+
+ * WebCore.pro:
+
+2011-01-17 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] Extend the Platform Plugin to support full screen video handler
+ https://bugs.webkit.org/show_bug.cgi?id=51249
+
+ Make MediaPlayerPrivateQt support a fullscreen player.
+
+ No new tests because LayoutTests/media/media-fullscreen-inline.html already exists.
+ However, this test failed for Qt (QtMediaPlayer) due to durationchange event getting fired twice.
+ So, still skip it for Qt.
+
+ * WebCore.pro:
+ * features.pri:
+ * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
+ (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
+ (WebCore::MediaPlayerPrivateQt::removeVideoItem):
+ (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
+ * platform/graphics/qt/MediaPlayerPrivateQt.h:
+ (WebCore::MediaPlayerPrivateQt::supportsFullscreen):
+ (WebCore::MediaPlayerPrivateQt::mediaPlayer):
+
+2011-01-17 Anthony Ricaud <rik@webkit.org>
+
+ Reviewed by Kent Tamura.
+
+ [HTML5] Revert display:none on datalist
+ https://bugs.webkit.org/show_bug.cgi?id=52214
+
+ * css/html.css:
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: simplify debugger enabling routine.
+ https://bugs.webkit.org/show_bug.cgi?id=52472
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::restoreDebugger):
+ (WebCore::InspectorController::showAndEnableDebugger):
+ (WebCore::InspectorController::enableDebugger):
+ * inspector/InspectorController.h:
+ * inspector/front-end/DebuggerModel.js:
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype.show):
+ (WebInspector.ScriptsPanel.prototype._toggleDebugging):
+
+2011-01-17 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: refactoring: encapsulate lazy initialization of SourceFrame.
+ https://bugs.webkit.org/show_bug.cgi?id=51738
+
+ Extract content loading logic from SourceView and ScriptView to ContentProvider implementations.
+ Pass ContentProvider in SourceFrame constructor to allow SourceFrame manage it's lazy initialization.
+
+ * inspector/front-end/ScriptView.js:
+ (WebInspector.ScriptView):
+ (WebInspector.SourceFrameContentProviderForScript):
+ (WebInspector.SourceFrameContentProviderForScript.prototype.requestContent.didRequestSource):
+ (WebInspector.SourceFrameContentProviderForScript.prototype.requestContent):
+ (WebInspector.SourceFrameContentProviderForScript.prototype.scripts):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._addScript):
+ (WebInspector.ScriptsPanel.prototype.sourceFrameForScript):
+ (WebInspector.ScriptsPanel.prototype._sourceFrameForResource):
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame):
+ (WebInspector.SourceFrame.prototype.set visible):
+ (WebInspector.SourceFrame.prototype._createTextViewer):
+ (WebInspector.SourceFrame.prototype._breakpointAdded):
+ (WebInspector.SourceFrame.prototype._breakpoints):
+ (WebInspector.SourceFrame.prototype._sourceIDForLine):
+ (WebInspector.SourceFrame.prototype._sourceIDSet):
+ (WebInspector.SourceFrameContentProvider):
+ (WebInspector.SourceFrameContentProvider.prototype.requestContent):
+ (WebInspector.SourceFrameContentProvider.prototype.scripts):
+ * inspector/front-end/SourceView.js:
+ (WebInspector.SourceView):
+ (WebInspector.SourceView.prototype.show):
+ (WebInspector.SourceView.prototype.resize):
+ (WebInspector.SourceView.prototype.performSearch.didFindSearchMatches):
+ (WebInspector.SourceView.prototype.performSearch):
+ (WebInspector.SourceView.prototype.revealLine):
+ (WebInspector.SourceView.prototype.highlightLine):
+ (WebInspector.SourceView.prototype._jumpToSearchResult):
+ (WebInspector.SourceFrameContentProviderForResource):
+ (WebInspector.SourceFrameContentProviderForResource.prototype.requestContent):
+ (WebInspector.SourceFrameContentProviderForResource.prototype.scripts):
+
+2011-01-17 John Knottenbelt <jknotten@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ GeolocationController should call stopUpdating on destruction
+ https://bugs.webkit.org/show_bug.cgi?id=52216
+
+ Test: fast/dom/Geolocation/window-close-crash.html
+
+ * page/GeolocationController.cpp:
+ (WebCore::GeolocationController::~GeolocationController):
+
+2011-01-17 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: Qt build fix.
+
+ * inspector/InspectorInstrumentation.h:
+
+2011-01-16 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: make WebCore use InspectorInstrumentation
+ for instrumentation calls.
+ https://bugs.webkit.org/show_bug.cgi?id=52532
+
+ This change makes WebCore classes issue instrumentation signals
+ by means of InspectorInstrumentation interface. It covered migration
+ for Document, FrameLoader, Database, DOMStorage, etc. It fixed
+ instrumentation handling for Console as well. This all is a part
+ of story described in the bug 52510.
+
+ * dom/Document.cpp:
+ (WebCore::Document::finishedParsing):
+ * dom/Document.h:
+ * dom/ScriptExecutionContext.h:
+ * inspector/InspectorBrowserDebuggerAgent.cpp:
+ (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
+ (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
+ (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
+ (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
+ * inspector/InspectorBrowserDebuggerAgent.h:
+ (WebCore::InspectorBrowserDebuggerAgent::create):
+ * inspector/InspectorConsoleAgent.cpp:
+ (WebCore::InspectorConsoleAgent::stopTiming):
+ (WebCore::InspectorConsoleAgent::count):
+ * inspector/InspectorConsoleAgent.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::~InspectorController):
+ (WebCore::InspectorController::handleMousePress):
+ (WebCore::InspectorController::didClearWindowObjectInWorld):
+ (WebCore::PostWorkerNotificationToFrontendTask::performTask):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorDOMStorageAgent.h:
+ * inspector/InspectorDatabaseAgent.cpp:
+ * inspector/InspectorDatabaseAgent.h:
+ * inspector/InspectorFrontendHost.cpp:
+ * inspector/InspectorFrontendHost.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
+ (WebCore::InspectorInstrumentation::inspectedPageDestroyedImpl):
+ (WebCore::InspectorInstrumentation::mouseDidMoveOverElementImpl):
+ (WebCore::InspectorInstrumentation::handleMousePressImpl):
+ (WebCore::InspectorInstrumentation::mainResourceFiredLoadEventImpl):
+ (WebCore::InspectorInstrumentation::mainResourceFiredDOMContentEventImpl):
+ (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
+ (WebCore::InspectorInstrumentation::didCommitLoadImpl):
+ (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
+ (WebCore::InspectorInstrumentation::consoleCountImpl):
+ (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
+ (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
+ (WebCore::InspectorInstrumentation::consoleMarkTimelineImpl):
+ (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
+ (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
+ (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
+ (WebCore::InspectorInstrumentation::didCreateWorkerImpl):
+ (WebCore::InspectorInstrumentation::didDestroyWorkerImpl):
+ (WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
+ (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl):
+ (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl):
+ (WebCore::InspectorInstrumentation::didCloseWebSocketImpl):
+ (WebCore::InspectorInstrumentation::networkStateChangedImpl):
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::inspectorControllerCreated):
+ (WebCore::InspectorInstrumentation::inspectorControllerDeleted):
+ (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
+ (WebCore::InspectorInstrumentation::inspectedPageDestroyed):
+ (WebCore::InspectorInstrumentation::willInsertDOMNode):
+ (WebCore::InspectorInstrumentation::didInsertDOMNode):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNode):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttr):
+ (WebCore::InspectorInstrumentation::didModifyDOMAttr):
+ (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
+ (WebCore::InspectorInstrumentation::handleMousePress):
+ (WebCore::InspectorInstrumentation::characterDataModified):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
+ (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
+ (WebCore::InspectorInstrumentation::didInstallTimer):
+ (WebCore::InspectorInstrumentation::didRemoveTimer):
+ (WebCore::InspectorInstrumentation::willCallFunction):
+ (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
+ (WebCore::InspectorInstrumentation::willDispatchEvent):
+ (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
+ (WebCore::InspectorInstrumentation::willEvaluateScript):
+ (WebCore::InspectorInstrumentation::willFireTimer):
+ (WebCore::InspectorInstrumentation::willLayout):
+ (WebCore::InspectorInstrumentation::willLoadXHR):
+ (WebCore::InspectorInstrumentation::willPaint):
+ (WebCore::InspectorInstrumentation::willRecalculateStyle):
+ (WebCore::InspectorInstrumentation::identifierForInitialRequest):
+ (WebCore::InspectorInstrumentation::willSendRequest):
+ (WebCore::InspectorInstrumentation::markResourceAsCached):
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
+ (WebCore::InspectorInstrumentation::willReceiveResourceData):
+ (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
+ (WebCore::InspectorInstrumentation::didReceiveContentLength):
+ (WebCore::InspectorInstrumentation::didFinishLoading):
+ (WebCore::InspectorInstrumentation::didFailLoading):
+ (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequest):
+ (WebCore::InspectorInstrumentation::scriptImported):
+ (WebCore::InspectorInstrumentation::mainResourceFiredLoadEvent):
+ (WebCore::InspectorInstrumentation::mainResourceFiredDOMContentEvent):
+ (WebCore::InspectorInstrumentation::frameDetachedFromParent):
+ (WebCore::InspectorInstrumentation::didCommitLoad):
+ (WebCore::InspectorInstrumentation::willWriteHTML):
+ (WebCore::InspectorInstrumentation::didOpenDatabase):
+ (WebCore::InspectorInstrumentation::didUseDOMStorage):
+ (WebCore::InspectorInstrumentation::didCreateWorker):
+ (WebCore::InspectorInstrumentation::didDestroyWorker):
+ (WebCore::InspectorInstrumentation::didCreateWebSocket):
+ (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
+ (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
+ (WebCore::InspectorInstrumentation::didCloseWebSocket):
+ (WebCore::InspectorInstrumentation::networkStateChanged):
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
+ (WebCore::InspectorInstrumentation::addMessageToConsole):
+ (WebCore::InspectorInstrumentation::consoleCount):
+ (WebCore::InspectorInstrumentation::startConsoleTiming):
+ (WebCore::InspectorInstrumentation::stopConsoleTiming):
+ (WebCore::InspectorInstrumentation::consoleMarkTimeline):
+ (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
+ (WebCore::InspectorInstrumentation::inspectorControllerForContext):
+ (WebCore::InspectorInstrumentation::inspectorControllerForFrame):
+ (WebCore::InspectorInstrumentation::inspectorControllerForPage):
+ (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForContext):
+ (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForDocument):
+ (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForFrame):
+ (WebCore::InspectorInstrumentation::inspectorControllerWithFrontendForPage):
+ * inspector/InspectorState.cpp:
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::detachFromParent):
+ (WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
+ (WebCore::FrameLoader::dispatchDidCommitLoad):
+ * page/Chrome.cpp:
+ (WebCore::Chrome::mouseDidMoveOverElement):
+ * page/Console.cpp:
+ (WebCore::Console::addMessage):
+ (WebCore::Console::count):
+ (WebCore::Console::markTimeline):
+ (WebCore::Console::profile):
+ (WebCore::Console::time):
+ (WebCore::Console::timeEnd):
+ (WebCore::Console::group):
+ (WebCore::Console::groupCollapsed):
+ (WebCore::Console::groupEnd):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::sessionStorage):
+ (WebCore::DOMWindow::localStorage):
+ (WebCore::DOMWindow::dispatchLoadEvent):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleMousePressEvent):
+ * page/Page.cpp:
+ (WebCore::Page::~Page):
+ * storage/Database.cpp:
+ (WebCore::Database::openDatabase):
+ * workers/AbstractWorker.cpp:
+ (WebCore::AbstractWorker::onDestroyWorker):
+ * workers/SharedWorker.cpp:
+ (WebCore::SharedWorker::create):
+ * workers/Worker.cpp:
+ (WebCore::Worker::create):
+ * workers/WorkerMessagingProxy.cpp:
+
+2011-01-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed, rolling out r75923.
+
+ GTK guy rolls out the r75914.
+
+ * platform/efl/ScrollViewEfl.cpp:
+ (WebCore::ScrollView::platformInit):
+
+2011-01-17 Helder Correia <helder@sencha.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] fast/canvas/canvas-fillPath-gradient-shadow.html does not pass
+ https://bugs.webkit.org/show_bug.cgi?id=52556
+
+ The shadow color opacity needs to be set on the shadow painter.
+ Additionally, the gradient brush should be transformed.
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::fillPath):
+
+2011-01-17 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Background image rendering is slow
+ https://bugs.webkit.org/show_bug.cgi?id=50527
+
+ When tiling a scaled pixmap in Image::drawPattern, scale the tile
+ first and only then draw it to the target. Do so only when drawing
+ more than one tile.
+
+ Tests in fast/backgrounds/size cover this.
+
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::Image::drawPattern):
+
+2011-01-17 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] [Symbian] Fix building NPAPI support
+ https://bugs.webkit.org/show_bug.cgi?id=51981
+
+ Make sure that npapi.h is always included outside of the extern "C"
+ linkage declaration block.
+
+ No new tests as there is no new functionality.
+
+ * bridge/npruntime.h:
+
+2011-01-17 Philippe Normand <pnormand@igalia.com>
+
+ Unreviewed, rolling out r75914.
+ http://trac.webkit.org/changeset/75914
+ https://bugs.webkit.org/show_bug.cgi?id=49177
+
+ multiple crashes on GTK
+
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::removeChild):
+ (WebCore::ScrollView::wheelEvent):
+ * platform/gtk/MainFrameScrollbarGtk.cpp:
+ (MainFrameScrollbarGtk::attachAdjustment):
+ (MainFrameScrollbarGtk::gtkValueChanged):
+ * platform/gtk/ScrollViewGtk.cpp:
+ (WebCore::ScrollView::platformInit):
+ (WebCore::ScrollView::platformAddChild):
+ (WebCore::ScrollView::platformRemoveChild):
+
+2011-01-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed build fix.
+
+ Bug 49177's patch enabled platformInit() in super class(ScrollView).
+ But, it didn't removed the function in ScrollViewEfl.cpp.
+
+ * platform/efl/ScrollViewEfl.cpp:
+
+2011-01-16 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/8871903> REGRESSION (r75897): Crash with 0-by-0 iframe in scaled WebView
+
+ Avoid use of FloatRect::enclosingBoundingBox(), which can stretch an empty
+ quad to a non-empty rect.
+
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::setWidget):
+ (WebCore::RenderWidget::updateWidgetPosition):
+
+2011-01-16 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] fast/events/scroll-after-click-on-tab-index has been failing on the bots
+ https://bugs.webkit.org/show_bug.cgi?id=49177
+
+ * platform/ScrollView.cpp: Move the platform guards around a little. GTK+
+ now shares the implementation of platformAddChild and platformRemoveChild,
+ but has its own implementation of removeChild, which knows how to inform
+ main frame scrollbars that they no longer control the WebCore scrollbar.
+ * platform/gtk/MainFrameScrollbarGtk.cpp:
+ (MainFrameScrollbarGtk::attachAdjustment): If we are attaching the same adjustment
+ that we already have, bail out early. Apply the value changed signal handler
+ after configuring the adjustment. We don't want our reset of the adjustment to
+ stomp on WebCore values.
+ (MainFrameScrollbarGtk::gtkValueChanged): Do not adjust the value if the WebCore
+ state already matches ours. This prevents some unnecessary recursion
+ * platform/gtk/ScrollViewGtk.cpp:
+ (WebCore::ScrollView::removeChild): Added, special cases main frame scrollbars
+ which need their adjustments detached.
+
+2011-01-13 Yuzo Fujishima <yuzo@google.com>
+
+ Reviewed by Antti Koivisto.
+
+ Fix for Bug 52427 - Inconsistent use of m_cache in CachedResourceLoader
+ https://bugs.webkit.org/show_bug.cgi?id=52427
+
+ In constructor/destructor of CachedResourceLoader, m_cache has been
+ used to call MemoryCache::addCachedResourceLoader/removeCachedResourceLoader
+ while cache() is used everywhere else.
+
+ Actually addCachedResourceLoader/removeCachedResourceLoader need not be called at all.
+ Remove the call sites and make MemoryCache non-friend of CachedResourceLoader.
+
+ No new tests because the behavior remains the same.
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::CachedResourceLoader):
+ (WebCore::CachedResourceLoader::~CachedResourceLoader):
+ * loader/cache/CachedResourceLoader.h:
+ * loader/cache/MemoryCache.cpp:
+ * loader/cache/MemoryCache.h:
+
+2011-01-16 Adam Barth <abarth@webkit.org>
+
+ Rubber-stamped by Eric Seidel.
+
+ Move WebKit into Source
+ https://bugs.webkit.org/show_bug.cgi?id=52530
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.pri:
+ * WebCore.pro:
+
+2011-01-16 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ frame-removed-during-resize.html test crashes (shows up as image-map-2.html crash)
+ https://bugs.webkit.org/show_bug.cgi?id=52549
+
+ Fix regression from r75900; m_widget->setFrameRect() can run script that
+ clears m_widget, so null-check it before calling setBoundsSize().
+
+ Tested by fast/replaced/frame-removed-during-resize.html
+
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::setWidgetGeometry):
+
+2011-01-16 Simon Fraser <simon.fraser@apple.com>
+
+ Keep Leopard build happy.
+
+ * platform/mac/WidgetMac.mm:
+ (WebCore::Widget::setBoundsSize):
+
+2011-01-16 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] plugins/keyboard-events.html fails after r72717
+ https://bugs.webkit.org/show_bug.cgi?id=50050
+
+ * plugins/qt/PluginViewQt.cpp:
+ (WebCore::setXKeyEventSpecificFields): map event text to keycode
+
+2011-01-16 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Issues with iframes and plugins when the WebView is scaled.
+ <rdar://problem/6213380>
+
+ When _scaleWebView has been called on a WebView, iframes
+ in WebKit1 render and hit-test incorrectly, and plug-ins don't scale up.
+ This is caused by AppKit NSViews not playing nicely with the scale
+ applied through style.
+
+ Work around most of these issues by adjusting the bounds size
+ of widgets to allow iframe contents to paint with the correct scale,
+ and fix various places in the code where we relied on coordinate
+ transforms via NSViews (which ignore CSS transforms).
+
+ * WebCore.exp.in:
+ * platform/Widget.cpp:
+ (WebCore::Widget::setBoundsSize):
+ * platform/Widget.h:
+ * platform/mac/WidgetMac.mm:
+ (WebCore::Widget::setBoundsSize):
+ (WebCore::Widget::paint):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame):
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::setWidgetGeometry):
+ (WebCore::RenderWidget::setWidget):
+ (WebCore::RenderWidget::updateWidgetPosition):
+ * rendering/RenderWidget.h:
+
+2011-01-16 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ RenderView needs to take transforms on its layer into account
+ https://bugs.webkit.org/show_bug.cgi?id=52536
+
+ The RenderView's coordinate mapping methods failed to
+ take into account a transform on the RenderView's layer.
+
+ No tests because it's not possible to get a transform
+ on the RenderView's layer through content.
+
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::mapLocalToContainer):
+ (WebCore::RenderView::mapAbsoluteToLocalPoint):
+
+2011-01-15 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r75708.
+ http://trac.webkit.org/changeset/75708
+ https://bugs.webkit.org/show_bug.cgi?id=52521
+
+ Breaks Qt build if mobility is not installed. (Requested by
+ benjaminp on #webkit).
+
+ * WebCore.pro:
+ * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
+ (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
+ * platform/graphics/qt/MediaPlayerPrivateQt.h:
+ (WebCore::MediaPlayerPrivateQt::supportsFullscreen):
+
+2011-01-15 David Kilzer <ddkilzer@apple.com>
+
+ <http://webkit.org/b/52512> REGRESSION(r73818): range.cloneContents() ignores end offset
+
+ Reviewed by Adele Peterson.
+
+ The fix for Bug 50710 in r73799 introduced an off-by-one error
+ when copying nodes to a local NodeVector for processing. A fix
+ was attempted for Bug 50854 in r73818, but instead of stopping
+ at the end offset, it iterates through all the sibling nodes
+ because the loop variable (i) is never incremented. To clean
+ this up, revert back to the code in r73799 and fix the
+ off-by-one error.
+
+ Test: fast/dom/Range/range-clone-contents.html
+
+ * dom/Range.cpp:
+ (WebCore::Range::processContents): Fix the loop that copies
+ nodes to a local NodeVector by restoring the code from r73799
+ and fixing the off-by-one error.
+
+2011-01-15 Adam Barth <abarth@webkit.org>
+
+ Rubber-stamped by Eric Seidel.
+
+ Move WebKit2 into Source
+ https://bugs.webkit.org/show_bug.cgi?id=52438
+
+ * WebCore.pro:
+
+2011-01-15 Joone Hur <joone.hur@collabora.co.uk>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Linux build with FileSystem API enabled fails
+ https://bugs.webkit.org/show_bug.cgi?id=43878
+
+ This patch allows WebKitGtk+ to build with FileSystem API option.
+
+ No new tests because no new functionality.
+
+ * GNUmakefile.am: Included AsyncFileSystem.h,cpp and Excluded duplicated JSFileException.h,cpp.
+ * bindings/js/JSDirectoryEntryCustom.cpp: Included ExceptionCode.h.
+
+2011-01-14 Sam Magnuson <smagnuso@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Compile with QT_NO_GRAPHICSVIEW
+ https://bugs.webkit.org/show_bug.cgi?id=49750
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp:
+ * platform/graphics/qt/GraphicsLayerQt.h:
+ * platform/qt/PlatformMouseEventQt.cpp:
+
+2011-01-14 Tony Chang <tony@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Strip NUL character when copying text on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=52236
+
+ Test: editing/pasteboard/copy-null-characters.html
+
+ * editing/Editor.cpp:
+ (WebCore::Editor::selectedText):
+ * platform/mac/PasteboardMac.mm:
+ (WebCore::Pasteboard::writeSelection): Use editor()->selectedText() which matches the other platforms.
+
+2011-01-14 Yuzo Fujishima <yuzo@google.com>
+
+ Reviewed by Antti Koivisto.
+
+ Rename cache() to memoryCache()
+ https://bugs.webkit.org/show_bug.cgi?id=52433
+
+ No new tests because the behavior remains the same.
+
+ * WebCore.exp.in:
+ * WebCore.order:
+ * history/PageCache.cpp:
+ (WebCore::PageCache::releaseAutoreleasedPagesNow):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::cachedResource):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
+ * loader/archive/cf/LegacyWebArchive.cpp:
+ (WebCore::LegacyWebArchive::create):
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::allClientsRemoved):
+ (WebCore::CachedImage::data):
+ * loader/cache/CachedResource.cpp:
+ (WebCore::CachedResource::~CachedResource):
+ (WebCore::CachedResource::addClientToSet):
+ (WebCore::CachedResource::removeClient):
+ (WebCore::CachedResource::setDecodedSize):
+ (WebCore::CachedResource::setEncodedSize):
+ (WebCore::CachedResource::didAccessDecodedData):
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::CachedResourceLoader):
+ (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
+ (WebCore::CachedResourceLoader::requestResource):
+ (WebCore::CachedResourceLoader::revalidateResource):
+ (WebCore::CachedResourceLoader::loadResource):
+ (WebCore::CachedResourceLoader::clearPreloads):
+ (WebCore::CachedResourceLoader::printPreloadStats):
+ * loader/cache/CachedResourceRequest.cpp:
+ (WebCore::CachedResourceRequest::load):
+ (WebCore::CachedResourceRequest::didFail):
+ (WebCore::CachedResourceRequest::didReceiveResponse):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::memoryCache):
+ * loader/cache/MemoryCache.h:
+
+2011-01-14 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ WebCore part of <rdar://problem/8441312> Crash in -[NSView _invalidateGStatesForTree]
+
+ * WebCore.exp.in: Export RenderWidget::suspendWidgetHierarchyUpdates() and
+ RenderWidget::resumeWidgetHierarchyUpdates().
+ * manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html: Added.
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::setWidgetGeometry): Removed the assertion that widget hierarchy updates
+ are disabled. When this assertion was added, this condition was a subset of the “calling out to
+ plug-in code is forbidden” condition, hence the assertion was valid. The WebKit part of this
+ change now suspends widget hierarchy updates even at times where plug-in code is expected to be
+ called, which invalidates the assertion.
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * rendering/style/StyleRareInheritedData.cpp:
+ * rendering/style/StyleRareNonInheritedData.cpp:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * rendering/style/RenderStyle.cpp:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * editing/EditorCommand.cpp:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * editing/ApplyStyleCommand.cpp:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * css/CSSStyleSelector.cpp:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Unreviewed build fix.
+
+ Fix Qt build after r75837
+ https://bugs.webkit.org/show_bug.cgi?id=52494
+
+ * rendering/InlineFlowBox.h:
+ * rendering/RenderBoxModelObject.h:
+
+2011-01-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by David Levin.
+
+ Do some forward declaration in RenderStyle.h
+ https://bugs.webkit.org/show_bug.cgi?id=52453
+
+ No new tests because no new functionality.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ * css/CSSStyleSelector.cpp:
+ * editing/Editor.cpp:
+ * page/EventHandler.cpp:
+ * rendering/EllipsisBox.cpp:
+ * rendering/InlineBox.cpp:
+ * rendering/InlineTextBox.cpp:
+ * rendering/RenderBlock.cpp:
+ * rendering/RenderBlock.h:
+ * rendering/RenderBox.cpp:
+ * rendering/RenderBox.h:
+ * rendering/RenderEmbeddedObject.cpp:
+ * rendering/RenderFieldset.cpp:
+ * rendering/RenderFileUploadControl.cpp:
+ * rendering/RenderFrameSet.cpp:
+ * rendering/RenderHTMLCanvas.cpp:
+ * rendering/RenderImageResource.cpp:
+ * rendering/RenderInputSpeech.cpp:
+ * rendering/RenderLayer.h:
+ * rendering/RenderLineBoxList.cpp:
+ * rendering/RenderListBox.cpp:
+ * rendering/RenderMediaControlsChromium.cpp:
+ * rendering/RenderObject.cpp:
+ * rendering/RenderObject.h:
+ * rendering/RenderObjectChildList.cpp:
+ * rendering/RenderProgress.cpp:
+ * rendering/RenderScrollbarPart.cpp:
+ * rendering/RenderTable.cpp:
+ * rendering/RenderTable.h:
+ * rendering/RenderTableCell.cpp:
+ * rendering/RenderTableRow.cpp:
+ * rendering/RenderTableSection.cpp:
+ * rendering/RenderTheme.cpp:
+ * rendering/RenderThemeChromiumSkia.cpp:
+ * rendering/RenderThemeChromiumWin.cpp:
+ * rendering/RootInlineBox.cpp:
+ * rendering/style/RenderStyle.cpp:
+ * rendering/style/RenderStyle.h:
+ * rendering/style/StyleRareInheritedData.cpp:
+
+2011-01-14 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Stop instantiating legacy editing positions in AccessibilityRenderObject.cpp, Element.cpp,
+ BreakBlockquoteCommand.cpp, CompositeEditCommand.cpp, and DeleteButtonController.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=52481
+
+ Removed instantiation of legacy editing positions.
+ Calls to Position::Position are replaced by calls to Position's convenience functions.
+
+ Also fixed firstPositionInOrBeforeNode and lastPositionInOrAfterNode so that
+ they instantiate right positions for text nodes.
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::setSelectedTextRange):
+ * dom/Element.cpp:
+ (WebCore::Element::updateFocusAppearance):
+ * editing/BreakBlockquoteCommand.cpp:
+ (WebCore::BreakBlockquoteCommand::doApply):
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::inputText):
+ (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
+ (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
+ (WebCore::CompositeEditCommand::moveParagraphs):
+ (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
+ (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
+ (WebCore::CompositeEditCommand::splitTreeToNode):
+ * editing/DeleteButtonController.cpp:
+ (WebCore::enclosingDeletableElement):
+ * editing/htmlediting.h:
+ (WebCore::firstPositionInOrBeforeNode): Instantiates firstPositionInNode instead of
+ positionBeforeNode for a text node.
+ (WebCore::lastPositionInOrAfterNode): Ditto.
+
+2011-01-14 Helder Correia <helder@sencha.com>
+
+ Reviewed by Simon Fraser.
+
+ Shadow is not drawn when filling a path with a gradient
+ https://bugs.webkit.org/show_bug.cgi?id=51982
+
+ This happens in CG and is related to bug 51869, this time to be fixed
+ in GraphicsContext::fillPath(const Path& path). We need to draw the
+ gradient clipped to the path on a CGLayer first, and then draw the
+ layer on the GraphicsContext.
+
+ Test: fast/canvas/canvas-fillPath-gradient-shadow.html
+
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::fillPath):
+
+2011-01-14 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Layer syncing should go through the compositor
+ https://bugs.webkit.org/show_bug.cgi?id=52486
+
+ Rather than have FrameView go directly to GraphicsLayer to
+ sync pending changes, route the call through RenderLayerCompositor.
+
+ Add a FIXME about an existing issue with flushing and subframes.
+
+ No behavior change, so no tests.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::syncCompositingStateForThisFrame):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::notifySyncRequired):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::scheduleLayerFlush):
+ (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
+ * rendering/RenderLayerCompositor.h:
+ (WebCore::RenderLayerCompositor::notifySyncRequired):
+
+2011-01-14 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Fix parent block calculation when trying to find top most node
+ containing "this" float.
+ https://bugs.webkit.org/show_bug.cgi?id=51711
+
+ Replace use of containingBlock and traverse the parents directly
+ to check for float existence. containingBlock can skip parents and
+ jump to the RenderView directly which will cause floats to not get
+ cleared from intermediate parents.
+
+ Test: fast/block/float/floats-not-cleared-crash.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
+
+2011-01-14 Adam Klein <adamk@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] Replace BackForwardListClient with BackForwardControllerClient/BackForwardList
+ https://bugs.webkit.org/show_bug.cgi?id=42237
+
+ Remove Chromium-specific implementation from WebCore.
+
+ No tests added; this refactor should be covered by existing history-exercising tests.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * history/BackForwardListChromium.cpp: Removed.
+ * history/BackForwardListImpl.h:
+
+2011-01-12 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Fix a crash when accessing speech input from script.
+ https://bugs.webkit.org/show_bug.cgi?id=52325
+
+ Test: fast/speech/speech-input-scripting.html
+
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::parseMappedAttribute): Recreate renderer when speech input is enabled/disabled.
+ * rendering/RenderTextControlSingleLine.cpp: Remove unused code.
+ * rendering/RenderTextControlSingleLine.h:
+ * rendering/TextControlInnerElements.cpp: Take self references before firing events and check for renderer validity after.
+ (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
+ (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
+ (WebCore::InputFieldSpeechButtonElement::detach):
+
+2011-01-14 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Prevent merging of anonymous blocks if one of them is already getting
+ destroyed.
+ https://bugs.webkit.org/show_bug.cgi?id=52402
+
+ Test: fast/block/merge-anonymous-block-remove-child-crash2.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::RenderBlock): initialize m_beingDestroyed to false.
+ (WebCore::RenderBlock::destroy): set m_beingDestroyed to true.
+ (WebCore::canMergeContiguousAnonymousBlocks): do not merge if any or prev or next is being destroyed.
+ (WebCore::RenderBlock::removeChild): remove the hack previously done for preventing oldChild merging with nextBlock's next sibling.
+ * rendering/RenderBlock.h:
+ (WebCore::RenderBlock::beingDestroyed): public function for m_beingDestroyed.
+
+2011-01-14 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed. Follow up to r75791: fix missing dispatch.
+ https://bugs.webkit.org/show_bug.cgi?id=52442
+
+ * inspector/front-end/DebuggerModel.js:
+ (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
+
+2011-01-14 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Issues with contentsScale in GraphicsLayerCA
+ https://bugs.webkit.org/show_bug.cgi?id=52463
+
+ Fix various issues with the recent contentsScale changes:
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::GraphicsLayerCA): Initialize m_contentsScale to 1.
+ (WebCore::GraphicsLayerCA::updateContentsScale): Only do a setNeedsDisplay()
+ if the layer draws content, otherwise we'll create backing store for empty layers.
+ (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Be sure to set contentsScale
+ on the new (tiled or untiled) layer.
+ (WebCore::GraphicsLayerCA::cloneLayer): Clones need contentsScale too.
+
+2011-01-14 Simon Fraser <simon.fraser@apple.com>
+
+ Let Xcode have it's way with the project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2011-01-14 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Refactor some FrameView::syncCompositingState code
+ https://bugs.webkit.org/show_bug.cgi?id=52459
+
+ Refactor some code in FrameView related to synchronizing
+ compositing layer state.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::syncCompositingStateForThisFrame):
+ (WebCore::FrameView::syncCompositingStateRecursive):
+ (WebCore::FrameView::paintContents):
+ * page/FrameView.h:
+
+2011-01-14 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Fix build problem introduced by http://trac.webkit.org/changeset/75713
+ https://bugs.webkit.org/show_bug.cgi?id=30179
+
+ * plugins/symbian/PluginViewSymbian.cpp:
+
+2011-01-14 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Add volume slider to media player
+ https://bugs.webkit.org/show_bug.cgi?id=51532
+
+ * css/mediaControlsGtk.css:
+ (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
+ (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
+ (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::RenderThemeGtk::adjustMediaSliderThumbSize):
+ (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
+ (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
+ (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb):
+ * platform/gtk/RenderThemeGtk.h:
+ * platform/gtk/RenderThemeGtk2.cpp:
+ (WebCore::RenderThemeGtk::paintSliderTrack):
+ (WebCore::RenderThemeGtk::paintSliderThumb):
+ (WebCore::RenderThemeGtk::adjustSliderThumbSize):
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::paintSliderTrack):
+ (WebCore::RenderThemeGtk::paintSliderThumb):
+ (WebCore::RenderThemeGtk::adjustSliderThumbSize):
+
+2011-01-14 Joone Hur <joone.hur@collabora.co.uk>
+
+ Reviewed by David Levin.
+
+ [GTK] Convert use of raw pointers to GOwnPtr in FileSystemGtk.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=52434
+
+ No new tests. This code will be tested when an implementation
+ of beginDragWithFiles is complete.
+
+ * platform/gtk/FileSystemGtk.cpp:
+ (WebCore::filenameToString): Use GOwnPtr instead of gchar pointer.
+ (WebCore::fileSystemRepresentation): Ditto.
+ (WebCore::filenameForDisplay): Ditto.
+ (WebCore::pathGetFileName): Ditto.
+
+2011-01-14 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: breakpoint text snippet in breakpoints sidebar pane disappears after reload.
+ https://bugs.webkit.org/show_bug.cgi?id=52215
+
+ * inspector/front-end/Breakpoint.js:
+ (WebInspector.Breakpoint):
+ (WebInspector.Breakpoint.prototype.populateLabelElement):
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.prototype.get linesCount):
+ (WebInspector.Script.prototype.sourceLine):
+ (WebInspector.Script.prototype.sourceLine.didRequestSource):
+ (WebInspector.Script.prototype.set source):
+ (WebInspector.Script.prototype.requestSource.didGetScriptSource):
+ (WebInspector.Script.prototype.requestSource):
+ * inspector/front-end/ScriptView.js:
+ (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded.didRequestSource):
+ (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame.prototype._addBreakpoint):
+ * inspector/front-end/utilities.js:
+ (String.prototype.findAll):
+
+2011-01-14 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: provide script column offset to frontend.
+ https://bugs.webkit.org/show_bug.cgi?id=52377
+
+ * bindings/js/ScriptDebugServer.cpp:
+ (WebCore::ScriptDebugServer::dispatchDidParseSource):
+ * bindings/js/ScriptSourceCode.h:
+ (WebCore::ScriptSourceCode::ScriptSourceCode):
+ * bindings/v8/DebuggerScript.js:
+ ():
+ * bindings/v8/ScriptDebugServer.cpp:
+ (WebCore::ScriptDebugServer::dispatchDidParseSource):
+ * inspector/Inspector.idl:
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::didParseSource):
+ * inspector/InspectorDebuggerAgent.h:
+ * inspector/ScriptDebugListener.h:
+ * inspector/front-end/DebuggerModel.js:
+ (WebInspector.DebuggerModel.prototype.parsedScriptSource):
+ * inspector/front-end/Script.js:
+ (WebInspector.Script):
+
+2011-01-14 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Unreviewed one line fix for console-xhr-logging test.
+
+ The problem was introduced at r75788.
+
+ * inspector/InspectorBrowserDebuggerAgent.cpp:
+ (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
+
+2011-01-13 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: extract console related functionality into InspectorConsoleAgent
+ https://bugs.webkit.org/show_bug.cgi?id=52282
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/ConsoleMessage.cpp:
+ (WebCore::ConsoleMessage::~ConsoleMessage):
+ * inspector/ConsoleMessage.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorConsoleAgent.cpp: Added.
+ (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
+ (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
+ (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
+ (WebCore::InspectorConsoleAgent::clearConsoleMessages):
+ (WebCore::InspectorConsoleAgent::reset):
+ (WebCore::InspectorConsoleAgent::setFrontend):
+ (WebCore::InspectorConsoleAgent::addMessageToConsole):
+ (WebCore::InspectorConsoleAgent::startTiming):
+ (WebCore::InspectorConsoleAgent::stopTiming):
+ (WebCore::InspectorConsoleAgent::count):
+ (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
+ (WebCore::InspectorConsoleAgent::didReceiveResponse):
+ (WebCore::InspectorConsoleAgent::didFailLoading):
+ (WebCore::InspectorConsoleAgent::addConsoleMessage):
+ * inspector/InspectorConsoleAgent.h: Added.
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::clearConsoleMessages):
+ (WebCore::InspectorController::connectFrontend):
+ (WebCore::InspectorController::disconnectFrontend):
+ (WebCore::InspectorController::didCommitLoad):
+ * inspector/InspectorController.h:
+ (WebCore::InspectorController::consoleAgent):
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
+ (WebCore::InspectorInstrumentation::didFailLoadingImpl):
+ (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::addMessageToConsole):
+ (WebCore::InspectorInstrumentation::count):
+ (WebCore::InspectorInstrumentation::startTiming):
+ (WebCore::InspectorInstrumentation::stopTiming):
+ (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
+ * inspector/InspectorInstrumentation.h:
+ * inspector/InspectorProfilerAgent.cpp:
+ (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
+ (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
+ * inspector/front-end/ConsoleView.js:
+ (WebInspector.ConsoleView):
+ (WebInspector.ConsoleView.prototype.addConsoleMessage):
+ (WebInspector.ConsoleView.prototype.updateConsoleMessageExpiredCount):
+ (WebInspector.ConsoleView.prototype.consoleMessagesCleared):
+ * inspector/front-end/inspector.js:
+ * page/Console.cpp:
+ (WebCore::Console::addMessage):
+ (WebCore::Console::count):
+ (WebCore::Console::profile):
+ (WebCore::Console::time):
+ (WebCore::Console::timeEnd):
+ (WebCore::Console::group):
+ (WebCore::Console::groupCollapsed):
+ (WebCore::Console::groupEnd):
+ * page/Console.h:
+ * page/Console.idl:
+
+2011-01-14 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: do not use this as protocol message
+ dispatcher in models / agents.
+ https://bugs.webkit.org/show_bug.cgi?id=52442
+
+ Models should never for InspectorBackend.registerDomainDispatcher("foo", this).
+ There should be a clear way to tell whether method is being called
+ from within front-end or by the backend.
+
+ * inspector/front-end/DOMAgent.js:
+ (WebInspector.DOMAgent):
+ (WebInspector.DOMAgent.prototype.nodeForId):
+ (WebInspector.DOMAgent.prototype._bindNodes):
+ (WebInspector.DOMAgent.prototype._removeBreakpoints):
+ (WebInspector.DOMDispatcher):
+ (WebInspector.DOMDispatcher.prototype.setDocument):
+ (WebInspector.DOMDispatcher.prototype.attributesUpdated):
+ (WebInspector.DOMDispatcher.prototype.characterDataModified):
+ (WebInspector.DOMDispatcher.prototype.setChildNodes):
+ (WebInspector.DOMDispatcher.prototype.setDetachedRoot):
+ (WebInspector.DOMDispatcher.prototype.childNodeCountUpdated):
+ (WebInspector.DOMDispatcher.prototype.childNodeInserted):
+ (WebInspector.DOMDispatcher.prototype.childNodeRemoved):
+ (WebInspector.DOMDispatcher.prototype.didCommitLoad):
+ (WebInspector.ApplicationCacheDispatcher):
+ (WebInspector.ApplicationCacheDispatcher.prototype.getApplicationCachesAsync):
+ (WebInspector.ApplicationCacheDispatcher.prototype.updateApplicationCacheStatus):
+ (WebInspector.ApplicationCacheDispatcher.prototype.updateNetworkState):
+ * inspector/front-end/DOMStorage.js:
+ (WebInspector.DOMStorageDispatcher):
+ (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
+ (WebInspector.DOMStorageDispatcher.prototype.selectDOMStorage):
+ (WebInspector.DOMStorageDispatcher.prototype.updateDOMStorage):
+ * inspector/front-end/Database.js:
+ (WebInspector.Database.prototype.executeSql):
+ (WebInspector.DatabaseDispatcher):
+ (WebInspector.DatabaseDispatcher.prototype.addDatabase):
+ (WebInspector.DatabaseDispatcher.prototype.selectDatabase):
+ (WebInspector.DatabaseDispatcher.prototype.sqlTransactionSucceeded):
+ (WebInspector.DatabaseDispatcher.prototype.sqlTransactionFailed):
+ * inspector/front-end/DebuggerModel.js:
+ (WebInspector.DebuggerModel):
+ (WebInspector.DebuggerModel.prototype._pausedScript):
+ (WebInspector.DebuggerModel.prototype._resumedScript):
+ (WebInspector.DebuggerModel.prototype._parsedScriptSource):
+ (WebInspector.DebuggerModel.prototype._failedToParseScriptSource):
+ (WebInspector.DebuggerDispatcher):
+ (WebInspector.DebuggerDispatcher.prototype.pausedScript):
+ (WebInspector.DebuggerDispatcher.prototype.resumedScript):
+ (WebInspector.DebuggerDispatcher.prototype.parsedScriptSource):
+ (WebInspector.DebuggerDispatcher.prototype.failedToParseScriptSource):
+ * inspector/front-end/FileSystemView.js:
+ (WebInspector.FileSystemDispatcher):
+ (WebInspector.FileSystemDispatcher.prototype.getFileSystemPathsAsync):
+ (WebInspector.FileSystemDispatcher.prototype.didGetFileSystemPath):
+ (WebInspector.FileSystemDispatcher.prototype.didGetFileSystemError):
+ (WebInspector.FileSystemDispatcher.prototype.didGetFileSystemDisabled):
+ * inspector/front-end/ProfilesPanel.js:
+ (WebInspector.ProfilesPanel):
+ (WebInspector.ProfilesPanel.prototype._addProfileHeader):
+ (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
+ (WebInspector.ProfilesPanel.prototype._addHeapSnapshotChunk):
+ (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot):
+ (WebInspector.ProfilesPanel.prototype._setRecordingProfile):
+ (WebInspector.ProfilerDispatcher):
+ (WebInspector.ProfilerDispatcher.prototype.profilerWasEnabled):
+ (WebInspector.ProfilerDispatcher.prototype.profilerWasDisabled):
+ (WebInspector.ProfilerDispatcher.prototype.resetProfiles):
+ (WebInspector.ProfilerDispatcher.prototype.addProfileHeader):
+ (WebInspector.ProfilerDispatcher.prototype.addHeapSnapshotChunk):
+ (WebInspector.ProfilerDispatcher.prototype.finishHeapSnapshot):
+ (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
+ (WebInspector.ProfileSidebarTreeElement.prototype.ondelete):
+ * inspector/front-end/ResourceTreeModel.js:
+ (WebInspector.ResourceTreeModel):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel):
+ (WebInspector.TimelinePanel.prototype._timelineProfilerWasStarted):
+ (WebInspector.TimelinePanel.prototype._timelineProfilerWasStopped):
+ (WebInspector.TimelinePanel.prototype._addRecordToTimeline):
+ (WebInspector.TimelineDispatcher):
+ (WebInspector.TimelineDispatcher.prototype.timelineProfilerWasStarted):
+ (WebInspector.TimelineDispatcher.prototype.timelineProfilerWasStopped):
+ (WebInspector.TimelineDispatcher.prototype.addRecordToTimeline):
+
+2011-01-14 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt][V8] Unreviewed buildfix after r75788.
+
+ * inspector/InspectorBrowserDebuggerAgent.cpp:
+
+2011-01-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Extract BrowserDebuggerAgent from InspectorController, InspectorDOMAgent and InspectorDebugger agent.
+ We have some methods of Debugger which are related to DOM.
+ Lets extract these methods to BrowserDebugger agent.
+
+ http://bugs.webkit.org/show_bug.cgi?id=52294
+
+ * CMakeLists.txt:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBrowserDebuggerAgent.cpp: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::~InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::discardBindings):
+ (WebCore::InspectorBrowserDebuggerAgent::setEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::didInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::didRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
+ (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
+ (WebCore::InspectorBrowserDebuggerAgent::hasBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints):
+ (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
+ (WebCore::InspectorBrowserDebuggerAgent::setXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
+ (WebCore::InspectorBrowserDebuggerAgent::clearForPageNavigation):
+ * inspector/InspectorBrowserDebuggerAgent.h: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::create):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::restoreStickyBreakpoints):
+ (WebCore::InspectorController::restoreStickyBreakpoint):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::discardBindings):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::didRemoveDOMNode):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
+
+2011-01-14 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: redirected resources not handled properly in Network panel
+ https://bugs.webkit.org/show_bug.cgi?id=52292
+
+ * inspector/Inspector.idl: Do not pass isMainResource to identifierForInitialRequest() (it's useless, as we may hit provisional load)
+ * inspector/InspectorInstrumentation.cpp: Ditto.
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
+ * inspector/InspectorResourceAgent.cpp: Ditto.
+ (WebCore::InspectorResourceAgent::identifierForInitialRequest):
+ * inspector/InspectorResourceAgent.h: Ditto.
+ * inspector/InspectorInstrumentation.cpp: Ditto.
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): Fix main resource detection.
+ * inspector/front-end/AuditsPanel.js: WebInspector.networkResources now returns array, not map.
+ * inspector/front-end/ConsoleView.js: User WebInspector.resourceById() to get resource
+ (WebInspector.ConsoleMessage.prototype._formatMessage):
+ * inspector/front-end/ExtensionServer.js: Ditto.
+ (WebInspector.ExtensionServer.prototype._onRevealAndSelectResource):
+ (WebInspector.ExtensionServer.prototype._onGetResourceContent):
+ * inspector/front-end/HAREntry.js: WebInspector.networkResources now returns array, not map
+ (WebInspector.HARLog.prototype.build):
+ (WebInspector.HARLog.prototype._convertResource):
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager): Use appendResource, not refreshResource, when adding a new resource.
+ (WebInspector.NetworkManager.prototype.identifierForInitialRequest):
+ (WebInspector.NetworkManager.prototype.willSendRequest):
+ (WebInspector.NetworkManager.prototype.didLoadResourceFromMemoryCache):
+ (WebInspector.NetworkManager.prototype.setInitialContent):
+ (WebInspector.NetworkManager.prototype.didCommitLoadForFrame):
+ (WebInspector.NetworkManager.prototype.didCreateWebSocket):
+ (WebInspector.NetworkManager.prototype._createResource): always register resource URL with ResourceTreeModel
+ (WebInspector.NetworkManager.prototype._appendRedirect):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkPanel):
+ (WebInspector.NetworkPanel.prototype.get resources):
+ (WebInspector.NetworkPanel.prototype.resourceById):
+ (WebInspector.NetworkPanel.prototype.appendResource): Add resource as new iff appendResource was added.
+ (WebInspector.NetworkPanel.prototype.refreshResource): ditto.
+ (WebInspector.NetworkPanel.prototype.mainResourceChanged): Clear console upon arrival of new main resource.
+ * inspector/front-end/ResourceTreeModel.js: Expose unbindResourceURL, bind resources automatically upon creation.
+ (WebInspector.ResourceTreeModel.prototype._clearResources):
+ (WebInspector.ResourceTreeModel.prototype.unbindResourceURL):
+ (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
+ (WebInspector.ResourceTreeModel.prototype.createResource):
+ * inspector/front-end/inspector.js:
+ (WebInspector.resourceById):
+
+2011-01-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r75783.
+ http://trac.webkit.org/changeset/75783
+ https://bugs.webkit.org/show_bug.cgi?id=52439
+
+ a bit strange but the same patch have broken mac builds at
+ linking stage. (Requested by loislo2 on #webkit).
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBrowserDebuggerAgent.cpp: Removed.
+ * inspector/InspectorBrowserDebuggerAgent.h: Removed.
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::restoreStickyBreakpoints):
+ (WebCore::InspectorController::restoreStickyBreakpoint):
+ (WebCore::InspectorController::setEventListenerBreakpoint):
+ (WebCore::InspectorController::removeEventListenerBreakpoint):
+ (WebCore::InspectorController::hasEventListenerBreakpoint):
+ (WebCore::InspectorController::setXHRBreakpoint):
+ (WebCore::InspectorController::removeXHRBreakpoint):
+ (WebCore::InspectorController::hasXHRBreakpoint):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::discardBindings):
+ (WebCore::InspectorDOMAgent::setDOMBreakpoint):
+ (WebCore::InspectorDOMAgent::removeDOMBreakpoint):
+ (WebCore::InspectorDOMAgent::shouldBreakOnNodeInsertion):
+ (WebCore::InspectorDOMAgent::shouldBreakOnNodeRemoval):
+ (WebCore::InspectorDOMAgent::shouldBreakOnAttributeModification):
+ (WebCore::InspectorDOMAgent::descriptionForDOMEvent):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::didRemoveDOMNode):
+ (WebCore::InspectorDOMAgent::hasBreakpoint):
+ (WebCore::InspectorDOMAgent::updateSubtreeBreakpoints):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
+
+2011-01-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Extract BrowserDebuggerAgent from InspectorController, InspectorDOMAgent and InspectorDebugger agent.
+ We have some methods of Debugger which are related to DOM.
+ Lets extract these methods to BrowserDebugger agent.
+
+ http://bugs.webkit.org/show_bug.cgi?id=52294
+
+ * CMakeLists.txt:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBrowserDebuggerAgent.cpp: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::~InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::discardBindings):
+ (WebCore::InspectorBrowserDebuggerAgent::setEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::didInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::didRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
+ (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
+ (WebCore::InspectorBrowserDebuggerAgent::hasBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints):
+ (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
+ (WebCore::InspectorBrowserDebuggerAgent::setXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
+ (WebCore::InspectorBrowserDebuggerAgent::clearForPageNavigation):
+ * inspector/InspectorBrowserDebuggerAgent.h: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::create):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::restoreStickyBreakpoints):
+ (WebCore::InspectorController::restoreStickyBreakpoint):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::discardBindings):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::didRemoveDOMNode):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
+
+2011-01-14 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: build fix.
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+2011-01-14 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: extract InspectorSettings from InspectorState,
+ simplify it.
+ https://bugs.webkit.org/show_bug.cgi?id=52429
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/InspectorClient.h:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectorStartsAttached):
+ (WebCore::InspectorController::setInspectorStartsAttached):
+ (WebCore::InspectorController::setInspectorAttachedHeight):
+ (WebCore::InspectorController::inspectorAttachedHeight):
+ (WebCore::InspectorController::setMonitoringXHREnabled):
+ (WebCore::InspectorController::restoreDebugger):
+ (WebCore::InspectorController::restoreProfiler):
+ (WebCore::InspectorController::ensureSettingsLoaded):
+ (WebCore::InspectorController::enableProfiler):
+ (WebCore::InspectorController::disableProfiler):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ * inspector/InspectorController.h:
+ * inspector/InspectorSettings.cpp: Added.
+ (WebCore::InspectorSettings::InspectorSettings):
+ (WebCore::InspectorSettings::getBoolean):
+ (WebCore::InspectorSettings::setBoolean):
+ (WebCore::InspectorSettings::getLong):
+ (WebCore::InspectorSettings::setLong):
+ (WebCore::InspectorSettings::registerBoolean):
+ (WebCore::InspectorSettings::registerLong):
+ * inspector/InspectorSettings.h: Added.
+ * inspector/InspectorState.cpp:
+ (WebCore::InspectorState::InspectorState):
+ (WebCore::InspectorState::setValue):
+ (WebCore::InspectorState::setObject):
+ (WebCore::InspectorState::registerBoolean):
+ (WebCore::InspectorState::registerString):
+ (WebCore::InspectorState::registerLong):
+ (WebCore::InspectorState::registerObject):
+ (WebCore::InspectorState::Property::create):
+ * inspector/InspectorState.h:
+ (WebCore::InspectorState::setBoolean):
+ (WebCore::InspectorState::setString):
+ (WebCore::InspectorState::setLong):
+
+2011-01-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r75774.
+ http://trac.webkit.org/changeset/75774
+ https://bugs.webkit.org/show_bug.cgi?id=52431
+
+ gtk builds were broken (Requested by loislo2 on #webkit).
+
+ * CMakeLists.txt:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBrowserDebuggerAgent.cpp: Removed.
+ * inspector/InspectorBrowserDebuggerAgent.h: Removed.
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::restoreStickyBreakpoints):
+ (WebCore::InspectorController::restoreStickyBreakpoint):
+ (WebCore::InspectorController::setEventListenerBreakpoint):
+ (WebCore::InspectorController::removeEventListenerBreakpoint):
+ (WebCore::InspectorController::hasEventListenerBreakpoint):
+ (WebCore::InspectorController::setXHRBreakpoint):
+ (WebCore::InspectorController::removeXHRBreakpoint):
+ (WebCore::InspectorController::hasXHRBreakpoint):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::discardBindings):
+ (WebCore::InspectorDOMAgent::setDOMBreakpoint):
+ (WebCore::InspectorDOMAgent::removeDOMBreakpoint):
+ (WebCore::InspectorDOMAgent::shouldBreakOnNodeInsertion):
+ (WebCore::InspectorDOMAgent::shouldBreakOnNodeRemoval):
+ (WebCore::InspectorDOMAgent::shouldBreakOnAttributeModification):
+ (WebCore::InspectorDOMAgent::descriptionForDOMEvent):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::didRemoveDOMNode):
+ (WebCore::InspectorDOMAgent::hasBreakpoint):
+ (WebCore::InspectorDOMAgent::updateSubtreeBreakpoints):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
+
+2011-01-12 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Extract BrowserDebuggerAgent from InspectorController, InspectorDOMAgent and InspectorDebugger agent.
+ We have some methods of Debugger which are related to DOM.
+ Lets extract these methods to BrowserDebugger agent.
+
+ http://bugs.webkit.org/show_bug.cgi?id=52294
+
+ * CMakeLists.txt:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * inspector/CodeGeneratorInspector.pm:
+ * inspector/Inspector.idl:
+ * inspector/InspectorBrowserDebuggerAgent.cpp: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::~InspectorBrowserDebuggerAgent):
+ (WebCore::InspectorBrowserDebuggerAgent::discardBindings):
+ (WebCore::InspectorBrowserDebuggerAgent::setEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeEventListenerBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::didInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::didRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode):
+ (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr):
+ (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent):
+ (WebCore::InspectorBrowserDebuggerAgent::hasBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints):
+ (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded):
+ (WebCore::InspectorBrowserDebuggerAgent::setXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::removeXHRBreakpoint):
+ (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest):
+ (WebCore::InspectorBrowserDebuggerAgent::clearForPageNavigation):
+ * inspector/InspectorBrowserDebuggerAgent.h: Added.
+ (WebCore::InspectorBrowserDebuggerAgent::create):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::inspectedPageDestroyed):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::enableDebuggerFromFrontend):
+ (WebCore::InspectorController::disableDebugger):
+ (WebCore::InspectorController::restoreStickyBreakpoints):
+ (WebCore::InspectorController::restoreStickyBreakpoint):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::discardBindings):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::didRemoveDOMNode):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
+ (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
+ (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
+
+2011-01-13 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Implement form validation message UI
+ https://bugs.webkit.org/show_bug.cgi?id=48980
+
+ * Add four internal pseudo selectors:
+ - -webkit-validation-bubble
+ - -webkit-validation-bubble-message
+ - -webkit-validation-bubble-top-outer-arrow
+ - -webkit-validation-bubble-top-inner-arrow
+
+ * Implement ValidationMessage functions
+ Show the message for <the number of characters> / 20.0 seconds.
+
+ No new tests because the feature is disabled by default for now and the
+ new behavior is strongly timing-dependent.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::canShareStyleWithElement):
+ Do not share a style with elements with different shadowPseudoId().
+ * css/html.css: Define appearance for the internal selectors.
+ (::-webkit-validation-bubble):
+ (::-webkit-validation-bubble-message):
+ (::-webkit-validation-bubble-top-outer-arrow):
+ (::-webkit-validation-bubble-top-inner-arrow):
+ * dom/Node.cpp:
+ (WebCore::Node::createRendererIfNeeded):
+ Allow to add shadow renderers even if canHaveChildren() returns false.
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::detach):
+ Remove m_validationMessage immediately because we can't use
+ hideVisibleValidationMessage(), which calls a ValidationMessage function later.
+ (WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
+ - Don't create ValidationMessage if the message is empty.
+ - Remove the check for message equality.
+ (WebCore::HTMLFormControlElement::hideVisibleValidationMessage):
+ Don't remove m_validationMessage immediately. We shouldn't make the
+ element needsLayout() state in this context.
+ * html/ValidationMessage.cpp:
+ (WebCore::ValidationMessage::~ValidationMessage):
+ hideMessage() -> deleteBubbleTree() renaming.
+ (WebCore::ValidationMessage::setMessage): Implemented.
+ (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
+ Added. This updates the validation message and starts the timer to hide it.
+ (WebCore::ElementWithPseudoId):
+ Added to help implementations of styled shadow nodes.
+ (WebCore::ValidationMessage::buildBubbleTree): Added.
+ (WebCore::ValidationMessage::requestToHideMessage): Added.
+ (WebCore::ValidationMessage::deleteBubbleTree):
+ Renamed from hideMessage(), and implemented.
+ * html/ValidationMessage.h: Add declarations.
+
+2011-01-13 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ <rdar://problem/8827065> REGRESSION (r71884): Cross-origin XHR fails if willSendRequest changes the URL
+ https://bugs.webkit.org/show_bug.cgi?id=52419
+
+ Test: http/tests/loading/cross-origin-XHR-willLoadRequest.html
+
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::init): Complete r74453 by ensuring that m_request is only set after
+ willSendRequest(). Otherwise, willSendRequest() ends up calling into
+ ThreadableDocumentRequest::willSendRequest(), which cancels the request.
+
+2011-01-13 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Mark Rowe.
+
+ Don’t try to compile InjectedScriptSource.js into WebCore.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2011-01-13 Mike Thole <mthole@apple.com>
+
+ Reviewed by Darin Adler and Brady Eidson.
+
+ The pageScaleFactor() should be saved/restored along with the scroll position
+ https://bugs.webkit.org/show_bug.cgi?id=52406
+ <rdar://problem/8714412>
+
+ * history/HistoryItem.cpp:
+ (WebCore::HistoryItem::HistoryItem): Initialize m_pageScaleFactor.
+ (WebCore::HistoryItem::pageScaleFactor): Added getter.
+ (WebCore::HistoryItem::setPageScaleFactor): Added setter.
+ (WebCore::HistoryItem::encodeBackForwardTreeNode): Encode m_pageScaleFactor.
+ (WebCore::HistoryItem::decodeBackForwardTree): Decode m_pageScaleFactor.
+ * history/HistoryItem.h:
+ * loader/HistoryController.cpp:
+ (WebCore::HistoryController::saveScrollPositionAndViewStateToItem): Save the page scale factor...
+ (WebCore::HistoryController::restoreScrollPositionAndViewState): ...and restore it here.
+
+2011-01-13 Evan Martin <evan@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] drop backwards iteration in Linux complex text code
+ https://bugs.webkit.org/show_bug.cgi?id=52403
+
+ ComplexTextController previously supported iterating through the text in
+ both directions, but this resulted in duplicate code for each path.
+ Instead, by being more careful about flipping signs where appropriate,
+ we can refactor the code into one code path.
+
+ No tests, just a refactoring; should be covered by existing tests.
+
+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
+ (WebCore::ComplexTextController::ComplexTextController):
+ (WebCore::ComplexTextController::reset):
+ (WebCore::ComplexTextController::nextScriptRun):
+ * platform/graphics/chromium/ComplexTextControllerLinux.h:
+ * platform/graphics/chromium/FontLinux.cpp:
+ (WebCore::glyphIndexForXPositionInScriptRun):
+ (WebCore::Font::selectionRectForComplexText):
+
+2011-01-13 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Flip input[type=range] to use the new shadow DOM model.
+ https://bugs.webkit.org/show_bug.cgi?id=52317
+
+ This is a straight-up flip, minimal change to the logic, which will be
+ refactored in a follow-up patch.
+
+ Covered by existing tests.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::initForStyleResolve): Changed to use either
+ host or parent node to find parent.
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::updateType): Added logic for destroying/creating
+ shadow DOM subtree.
+ * html/InputType.cpp:
+ (WebCore::InputType::createShadowSubtree): Added empty decl.
+ (WebCore::InputType::destroyShadowSubtree): Added a method to destroy
+ shadow subtree.
+ * html/InputType.h: Added defs.
+ * html/RangeInputType.cpp:
+ (WebCore::RangeInputType::createShadowSubtree): Added a virtual method to create
+ slider thumb.
+ * html/RangeInputType.h: Adde def.
+ * html/shadow/SliderThumbElement.cpp: Added temporary RenderSliderThumb class
+ to handle cascading appearance.
+ (WebCore::RenderSliderThumb::RenderSliderThumb): Added.
+ (WebCore::RenderSliderThumb::layout): Moved here the logic from
+ RenderSlider::createThumbStyle.
+ (WebCore::SliderThumbElement::createRenderer): Added virtual method to
+ create RenderSliderThumb instance.
+ (WebCore::SliderThumbElement::defaultEventHandler): Changed to use HTMLDivElement
+ as base class.
+ (WebCore::SliderThumbElement::detach): Ditto.
+ * html/shadow/SliderThumbElement.h:
+ (WebCore::SliderThumbElement::SliderThumbElement): Ditto.
+ (WebCore::SliderThumbElement::create): Ditto.
+ (WebCore::toSliderThumbElement): Added a casting helper.
+ * rendering/MediaControlElements.cpp:
+ (WebCore::MediaControlInputElement::attach): Added handling of shadow DOM,
+ since the whole method is hand-rolled.
+ (WebCore::MediaControlInputElement::updateStyle): Ditto.
+ * rendering/RenderSlider.cpp:
+ (WebCore::RenderSlider::~RenderSlider): Removed unneeded code.
+ (WebCore::RenderSlider::thumbRect): Changed to use sliderThumbElement helper.
+ (WebCore::RenderSlider::layout): Ditto.
+ (WebCore::RenderSlider::sliderThumbElement): Added a temporary helper to access
+ SliderThumbElement.
+ (WebCore::RenderSlider::mouseEventIsInThumb): Changed to use sliderThumbElement helper.
+ (WebCore::RenderSlider::mouseEventOffsetToThumb): Ditto.
+ (WebCore::RenderSlider::setValueForPosition): Ditto.
+ (WebCore::RenderSlider::positionForOffset): Ditto.
+ (WebCore::RenderSlider::currentPosition): Ditto.
+ (WebCore::RenderSlider::trackSize): Ditto.
+ (WebCore::RenderSlider::forwardEvent): Ditto.
+ (WebCore::RenderSlider::inDragMode): Ditto.
+ * rendering/RenderSlider.h: Added def.
+
+2011-01-13 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Rename RGBA32Buffer to ImageFrame
+ https://bugs.webkit.org/show_bug.cgi?id=52363
+
+ RGBA32Buffer is a terrible misnomer. ImageFrame is vastly
+ more accurate. More cleanup to come.
+
+ * WebCore.pro:
+ * platform/graphics/ImageSource.cpp:
+ (WebCore::ImageSource::createFrameAtIndex):
+ (WebCore::ImageSource::frameDurationAtIndex):
+ (WebCore::ImageSource::frameIsCompleteAtIndex):
+ * platform/graphics/qt/ImageDecoderQt.cpp:
+ (WebCore::ImageDecoderQt::frameBufferAtIndex):
+ (WebCore::ImageDecoderQt::internalReadImage):
+ (WebCore::ImageDecoderQt::internalHandleCurrentImage):
+ * platform/graphics/qt/ImageDecoderQt.h:
+ * platform/graphics/wince/ImageWinCE.cpp:
+ (WebCore::ImageFrame::asNewNativeImage):
+ * platform/image-decoders/ImageDecoder.cpp:
+ (WebCore::ImageFrame::ImageFrame):
+ (WebCore::ImageFrame::operator=):
+ (WebCore::ImageFrame::clear):
+ (WebCore::ImageFrame::zeroFill):
+ (WebCore::ImageFrame::copyReferenceToBitmapData):
+ (WebCore::ImageFrame::copyBitmapData):
+ (WebCore::ImageFrame::setSize):
+ (WebCore::ImageFrame::hasAlpha):
+ (WebCore::ImageFrame::setHasAlpha):
+ (WebCore::ImageFrame::setColorProfile):
+ (WebCore::ImageFrame::setStatus):
+ (WebCore::ImageFrame::width):
+ (WebCore::ImageFrame::height):
+ * platform/image-decoders/ImageDecoder.h:
+ (WebCore::ImageFrame::ImageFrame):
+ * platform/image-decoders/bmp/BMPImageDecoder.cpp:
+ (WebCore::BMPImageDecoder::frameBufferAtIndex):
+ (WebCore::BMPImageDecoder::decode):
+ * platform/image-decoders/bmp/BMPImageDecoder.h:
+ * platform/image-decoders/bmp/BMPImageReader.cpp:
+ (WebCore::BMPImageReader::decodeBMP):
+ * platform/image-decoders/bmp/BMPImageReader.h:
+ (WebCore::BMPImageReader::setBuffer):
+ * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
+ (WebCore::ImageFrame::asNewNativeImage):
+ * platform/image-decoders/cg/ImageDecoderCG.cpp:
+ (WebCore::getPtrAsPixelData):
+ (WebCore::ImageFrame::copyReferenceToBitmapData):
+ (WebCore::ImageFrame::copyBitmapData):
+ (WebCore::ImageFrame::setSize):
+ (WebCore::ImageFrame::asNewNativeImage):
+ * platform/image-decoders/gif/GIFImageDecoder.cpp:
+ (WebCore::GIFImageDecoder::frameBufferAtIndex):
+ (WebCore::GIFImageDecoder::clearFrameBufferCache):
+ (WebCore::GIFImageDecoder::haveDecodedRow):
+ (WebCore::GIFImageDecoder::frameComplete):
+ (WebCore::GIFImageDecoder::initFrameBuffer):
+ * platform/image-decoders/gif/GIFImageDecoder.h:
+ * platform/image-decoders/gif/GIFImageReader.cpp:
+ (GIFImageReader::read):
+ * platform/image-decoders/gif/GIFImageReader.h:
+ (GIFFrameReader::GIFFrameReader):
+ * platform/image-decoders/haiku/ImageDecoderHaiku.cpp:
+ (WebCore::ImageFrame::asNewNativeImage):
+ * platform/image-decoders/ico/ICOImageDecoder.cpp:
+ (WebCore::ICOImageDecoder::frameBufferAtIndex):
+ (WebCore::ICOImageDecoder::decode):
+ * platform/image-decoders/ico/ICOImageDecoder.h:
+ * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
+ (WebCore::JPEGImageDecoder::frameBufferAtIndex):
+ (WebCore::JPEGImageDecoder::outputScanlines):
+ (WebCore::JPEGImageDecoder::jpegComplete):
+ (WebCore::JPEGImageDecoder::decode):
+ * platform/image-decoders/jpeg/JPEGImageDecoder.h:
+ * platform/image-decoders/openvg/ImageDecoderOpenVG.cpp:
+ (WebCore::ImageFrame::asNewNativeImage):
+ * platform/image-decoders/png/PNGImageDecoder.cpp:
+ (WebCore::PNGImageDecoder::frameBufferAtIndex):
+ (WebCore::PNGImageDecoder::rowAvailable):
+ (WebCore::PNGImageDecoder::pngComplete):
+ * platform/image-decoders/png/PNGImageDecoder.h:
+ (WebCore::PNGImageDecoder::isComplete):
+ * platform/image-decoders/qt/ImageFrameQt.cpp: Copied from Source/WebCore/platform/image-decoders/qt/RGBA32BufferQt.cpp.
+ (WebCore::ImageFrame::ImageFrame):
+ (WebCore::ImageFrame::operator=):
+ (WebCore::ImageFrame::clear):
+ (WebCore::ImageFrame::zeroFill):
+ (WebCore::ImageFrame::copyBitmapData):
+ (WebCore::ImageFrame::setSize):
+ (WebCore::ImageFrame::asNewNativeImage):
+ (WebCore::ImageFrame::hasAlpha):
+ (WebCore::ImageFrame::setHasAlpha):
+ (WebCore::ImageFrame::setColorProfile):
+ (WebCore::ImageFrame::setStatus):
+ (WebCore::ImageFrame::setPixmap):
+ (WebCore::ImageFrame::width):
+ (WebCore::ImageFrame::height):
+ * platform/image-decoders/qt/RGBA32BufferQt.cpp: Removed.
+ * platform/image-decoders/skia/ImageDecoderSkia.cpp:
+ (WebCore::ImageFrame::ImageFrame):
+ (WebCore::ImageFrame::operator=):
+ (WebCore::ImageFrame::clear):
+ (WebCore::ImageFrame::zeroFill):
+ (WebCore::ImageFrame::copyBitmapData):
+ (WebCore::ImageFrame::setSize):
+ (WebCore::ImageFrame::asNewNativeImage):
+ (WebCore::ImageFrame::hasAlpha):
+ (WebCore::ImageFrame::setHasAlpha):
+ (WebCore::ImageFrame::setColorProfile):
+ (WebCore::ImageFrame::setStatus):
+ (WebCore::ImageFrame::width):
+ (WebCore::ImageFrame::height):
+ * platform/image-decoders/webp/WEBPImageDecoder.cpp:
+ (WebCore::WEBPImageDecoder::frameBufferAtIndex):
+ (WebCore::WEBPImageDecoder::decode):
+ * platform/image-decoders/webp/WEBPImageDecoder.h:
+ * platform/image-decoders/wx/ImageDecoderWx.cpp:
+ (WebCore::ImageFrame::asNewNativeImage):
+
+2011-01-13 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Transferring nodes between documents should be aware of the shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=52399
+
+ No visible change in behavior at the moment.
+
+ Once https://bugs.webkit.org/show_bug.cgi?id=52317 lands, the following
+ tests should no longer crash:
+ * fast/css/pseudo-in-range-invalid-value.html
+ * fast/css/pseudo-in-range.html
+ * fast/forms/form-collection-elements.html
+ * fast/forms/range-keyoperation.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::adoptNode): Changed to use Node::setDocumentRecursively.
+ * dom/Node.cpp:
+ (WebCore::Node::setDocumentRecursively): Added new method, taking existing
+ logic and adding shadow DOM traversal.
+ (WebCore::Node::traverseNextNode): Style fix.
+ (WebCore::Node::traverseNextSibling): Ditto.
+ (WebCore::Node::traversePreviousNode): Ditto.
+ (WebCore::Node::traversePreviousNodePostOrder): Ditto.
+ (WebCore::Node::checkReplaceChild): Changed to use setDocumentRecursively.
+ (WebCore::Node::checkAddChild): Ditto.
+ * dom/Node.h: Added def.
+
+2011-01-12 Enrica Casucci <enrica@apple.com>
+
+ Reviewed by Darin Adler.
+
+ WebKit2: Add support for drag and drop
+ https://bugs.webkit.org/show_bug.cgi?id=52343
+ <rdar://problem/7660558>
+
+ This patch contains the changes required to support dropping content
+ in WebKit on the Mac. The DragData class has been extended to provide
+ additional context from the application (keyboard state, modal windows, etc.)
+ as well as information of the drag pasteboard being used.
+ The support for WebKit as drag source will be added with a separate patch.
+
+ * WebCore.exp.in:
+ * page/DragController.cpp:
+ (WebCore::DragController::dragIsMove): Added DragData parameter.
+ (WebCore::DragController::tryDocumentDrag): Modified call to dragIsMove.
+ (WebCore::DragController::concludeEditDrag): Same as above.
+ * page/DragController.h: Added parameter to isCopyKeyDown.
+ * page/mac/DragControllerMac.mm:
+ The following methods have been modified to use the information stored
+ in the DragData class.
+ (WebCore::DragController::isCopyKeyDown):
+ (WebCore::DragController::dragOperation):
+ * platform/DragData.h:
+ (WebCore::DragData::flags):
+ * platform/DragData.cpp: Added default flags parameter to the constructor.
+ * platform/mac/DragDataMac.mm:
+ (WebCore::DragData::DragData): Added constructor that receives the name of the pasteboard to use.
+ (WebCore::DragData::canSmartReplace):
+ (WebCore::DragData::containsColor):
+ (WebCore::DragData::containsFiles):
+ (WebCore::DragData::asFilenames):
+ (WebCore::DragData::containsPlainText):
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ All the following files have been modified to add the DragData
+ parameter to isCopyKeyDown. I plan to improve this in the future
+ and make isCopyKeyDown not platform specific.
+ * page/android/DragControllerAndroid.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/brew/DragControllerBrew.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/chromium/DragControllerChromium.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/efl/DragControllerEfl.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/gtk/DragControllerGtk.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/haiku/DragControllerHaiku.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/mac/DragControllerMac.mm:
+ (WebCore::DragController::isCopyKeyDown):
+ (WebCore::DragController::dragOperation):
+ * page/qt/DragControllerQt.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/win/DragControllerWin.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+ * page/wx/DragControllerWx.cpp:
+ (WebCore::DragController::isCopyKeyDown):
+
+2011-01-13 David Kilzer <ddkilzer@apple.com>
+
+ Add missing MathMLElementFactory.h and MathMLNames.h to Xcode project
+
+ Not reviewed.
+
+ * WebCore.xcodeproj/project.pbxproj: Add missing headers. Note
+ that the corresponding source files were originally added to the
+ project in r48559.
+
+2011-01-12 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Use GC3D types in WebGLRenderingContext and related WebGL classes
+ https://bugs.webkit.org/show_bug.cgi?id=51908
+
+ * html/canvas/WebGLActiveInfo.h:
+ (WebCore::WebGLActiveInfo::create):
+ (WebCore::WebGLActiveInfo::type):
+ (WebCore::WebGLActiveInfo::size):
+ (WebCore::WebGLActiveInfo::WebGLActiveInfo):
+ * html/canvas/WebGLBuffer.cpp:
+ (WebCore::WebGLBuffer::associateBufferDataImpl):
+ (WebCore::WebGLBuffer::associateBufferData):
+ (WebCore::WebGLBuffer::associateBufferSubDataImpl):
+ (WebCore::WebGLBuffer::associateBufferSubData):
+ (WebCore::WebGLBuffer::byteLength):
+ (WebCore::WebGLBuffer::getCachedMaxIndex):
+ (WebCore::WebGLBuffer::setCachedMaxIndex):
+ (WebCore::WebGLBuffer::setTarget):
+ * html/canvas/WebGLBuffer.h:
+ (WebCore::WebGLBuffer::getTarget):
+ * html/canvas/WebGLFramebuffer.cpp:
+ (WebCore::WebGLFramebuffer::setAttachment):
+ (WebCore::WebGLFramebuffer::getAttachment):
+ (WebCore::WebGLFramebuffer::getWidth):
+ (WebCore::WebGLFramebuffer::getHeight):
+ (WebCore::WebGLFramebuffer::getColorBufferFormat):
+ (WebCore::WebGLFramebuffer::initializeRenderbuffers):
+ * html/canvas/WebGLFramebuffer.h:
+ * html/canvas/WebGLProgram.cpp:
+ (WebCore::WebGLProgram::cacheActiveAttribLocations):
+ (WebCore::WebGLProgram::numActiveAttribLocations):
+ (WebCore::WebGLProgram::getActiveAttribLocation):
+ (WebCore::WebGLProgram::isUsingVertexAttrib0):
+ * html/canvas/WebGLProgram.h:
+ (WebCore::WebGLProgram::getLinkCount):
+ * html/canvas/WebGLRenderbuffer.h:
+ (WebCore::WebGLRenderbuffer::setInternalFormat):
+ (WebCore::WebGLRenderbuffer::getInternalFormat):
+ (WebCore::WebGLRenderbuffer::setSize):
+ (WebCore::WebGLRenderbuffer::getWidth):
+ (WebCore::WebGLRenderbuffer::getHeight):
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::initializeNewContext):
+ (WebCore::WebGLRenderingContext::sizeInBytes):
+ (WebCore::WebGLRenderingContext::activeTexture):
+ (WebCore::WebGLRenderingContext::bindAttribLocation):
+ (WebCore::WebGLRenderingContext::bindBuffer):
+ (WebCore::WebGLRenderingContext::bindFramebuffer):
+ (WebCore::WebGLRenderingContext::bindRenderbuffer):
+ (WebCore::WebGLRenderingContext::bindTexture):
+ (WebCore::WebGLRenderingContext::blendColor):
+ (WebCore::WebGLRenderingContext::blendEquation):
+ (WebCore::WebGLRenderingContext::blendEquationSeparate):
+ (WebCore::WebGLRenderingContext::blendFunc):
+ (WebCore::WebGLRenderingContext::blendFuncSeparate):
+ (WebCore::WebGLRenderingContext::bufferData):
+ (WebCore::WebGLRenderingContext::bufferSubData):
+ (WebCore::WebGLRenderingContext::checkFramebufferStatus):
+ (WebCore::WebGLRenderingContext::clear):
+ (WebCore::WebGLRenderingContext::clearColor):
+ (WebCore::WebGLRenderingContext::clearDepth):
+ (WebCore::WebGLRenderingContext::clearStencil):
+ (WebCore::WebGLRenderingContext::colorMask):
+ (WebCore::WebGLRenderingContext::copyTexImage2D):
+ (WebCore::WebGLRenderingContext::copyTexSubImage2D):
+ (WebCore::WebGLRenderingContext::createShader):
+ (WebCore::WebGLRenderingContext::cullFace):
+ (WebCore::WebGLRenderingContext::deleteBuffer):
+ (WebCore::WebGLRenderingContext::depthFunc):
+ (WebCore::WebGLRenderingContext::depthMask):
+ (WebCore::WebGLRenderingContext::depthRange):
+ (WebCore::WebGLRenderingContext::disable):
+ (WebCore::WebGLRenderingContext::disableVertexAttribArray):
+ (WebCore::WebGLRenderingContext::validateElementArraySize):
+ (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
+ (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
+ (WebCore::WebGLRenderingContext::validateRenderingState):
+ (WebCore::WebGLRenderingContext::drawArrays):
+ (WebCore::WebGLRenderingContext::drawElements):
+ (WebCore::WebGLRenderingContext::enable):
+ (WebCore::WebGLRenderingContext::enableVertexAttribArray):
+ (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
+ (WebCore::WebGLRenderingContext::framebufferTexture2D):
+ (WebCore::WebGLRenderingContext::frontFace):
+ (WebCore::WebGLRenderingContext::generateMipmap):
+ (WebCore::WebGLRenderingContext::getActiveAttrib):
+ (WebCore::WebGLRenderingContext::getActiveUniform):
+ (WebCore::WebGLRenderingContext::getAttachedShaders):
+ (WebCore::WebGLRenderingContext::getAttribLocation):
+ (WebCore::WebGLRenderingContext::getBufferParameter):
+ (WebCore::WebGLRenderingContext::getError):
+ (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
+ (WebCore::WebGLRenderingContext::getParameter):
+ (WebCore::WebGLRenderingContext::getProgramParameter):
+ (WebCore::WebGLRenderingContext::getRenderbufferParameter):
+ (WebCore::WebGLRenderingContext::getShaderParameter):
+ (WebCore::WebGLRenderingContext::getTexParameter):
+ (WebCore::WebGLRenderingContext::getUniform):
+ (WebCore::WebGLRenderingContext::getUniformLocation):
+ (WebCore::WebGLRenderingContext::getVertexAttrib):
+ (WebCore::WebGLRenderingContext::getVertexAttribOffset):
+ (WebCore::WebGLRenderingContext::hint):
+ (WebCore::WebGLRenderingContext::isBuffer):
+ (WebCore::WebGLRenderingContext::isEnabled):
+ (WebCore::WebGLRenderingContext::isFramebuffer):
+ (WebCore::WebGLRenderingContext::isProgram):
+ (WebCore::WebGLRenderingContext::isRenderbuffer):
+ (WebCore::WebGLRenderingContext::isShader):
+ (WebCore::WebGLRenderingContext::isTexture):
+ (WebCore::WebGLRenderingContext::lineWidth):
+ (WebCore::WebGLRenderingContext::linkProgram):
+ (WebCore::WebGLRenderingContext::pixelStorei):
+ (WebCore::WebGLRenderingContext::polygonOffset):
+ (WebCore::WebGLRenderingContext::readPixels):
+ (WebCore::WebGLRenderingContext::renderbufferStorage):
+ (WebCore::WebGLRenderingContext::sampleCoverage):
+ (WebCore::WebGLRenderingContext::scissor):
+ (WebCore::WebGLRenderingContext::stencilFunc):
+ (WebCore::WebGLRenderingContext::stencilFuncSeparate):
+ (WebCore::WebGLRenderingContext::stencilMask):
+ (WebCore::WebGLRenderingContext::stencilMaskSeparate):
+ (WebCore::WebGLRenderingContext::stencilOp):
+ (WebCore::WebGLRenderingContext::stencilOpSeparate):
+ (WebCore::WebGLRenderingContext::texImage2DBase):
+ (WebCore::WebGLRenderingContext::texImage2DImpl):
+ (WebCore::WebGLRenderingContext::texImage2D):
+ (WebCore::WebGLRenderingContext::texParameter):
+ (WebCore::WebGLRenderingContext::texParameterf):
+ (WebCore::WebGLRenderingContext::texParameteri):
+ (WebCore::WebGLRenderingContext::texSubImage2DBase):
+ (WebCore::WebGLRenderingContext::texSubImage2DImpl):
+ (WebCore::WebGLRenderingContext::texSubImage2D):
+ (WebCore::WebGLRenderingContext::uniform1f):
+ (WebCore::WebGLRenderingContext::uniform1fv):
+ (WebCore::WebGLRenderingContext::uniform1i):
+ (WebCore::WebGLRenderingContext::uniform1iv):
+ (WebCore::WebGLRenderingContext::uniform2f):
+ (WebCore::WebGLRenderingContext::uniform2fv):
+ (WebCore::WebGLRenderingContext::uniform2i):
+ (WebCore::WebGLRenderingContext::uniform2iv):
+ (WebCore::WebGLRenderingContext::uniform3f):
+ (WebCore::WebGLRenderingContext::uniform3fv):
+ (WebCore::WebGLRenderingContext::uniform3i):
+ (WebCore::WebGLRenderingContext::uniform3iv):
+ (WebCore::WebGLRenderingContext::uniform4f):
+ (WebCore::WebGLRenderingContext::uniform4fv):
+ (WebCore::WebGLRenderingContext::uniform4i):
+ (WebCore::WebGLRenderingContext::uniform4iv):
+ (WebCore::WebGLRenderingContext::uniformMatrix2fv):
+ (WebCore::WebGLRenderingContext::uniformMatrix3fv):
+ (WebCore::WebGLRenderingContext::uniformMatrix4fv):
+ (WebCore::WebGLRenderingContext::vertexAttrib1f):
+ (WebCore::WebGLRenderingContext::vertexAttrib1fv):
+ (WebCore::WebGLRenderingContext::vertexAttrib2f):
+ (WebCore::WebGLRenderingContext::vertexAttrib2fv):
+ (WebCore::WebGLRenderingContext::vertexAttrib3f):
+ (WebCore::WebGLRenderingContext::vertexAttrib3fv):
+ (WebCore::WebGLRenderingContext::vertexAttrib4f):
+ (WebCore::WebGLRenderingContext::vertexAttrib4fv):
+ (WebCore::WebGLRenderingContext::vertexAttribPointer):
+ (WebCore::WebGLRenderingContext::viewport):
+ (WebCore::WebGLRenderingContext::getBooleanParameter):
+ (WebCore::WebGLRenderingContext::getBooleanArrayParameter):
+ (WebCore::WebGLRenderingContext::getFloatParameter):
+ (WebCore::WebGLRenderingContext::getIntParameter):
+ (WebCore::WebGLRenderingContext::getLongParameter):
+ (WebCore::WebGLRenderingContext::getUnsignedLongParameter):
+ (WebCore::WebGLRenderingContext::getWebGLFloatArrayParameter):
+ (WebCore::WebGLRenderingContext::getWebGLIntArrayParameter):
+ (WebCore::WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid):
+ (WebCore::WebGLRenderingContext::getBoundFramebufferColorFormat):
+ (WebCore::WebGLRenderingContext::validateTextureBinding):
+ (WebCore::WebGLRenderingContext::validateSize):
+ (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
+ (WebCore::WebGLRenderingContext::validateTexFuncLevel):
+ (WebCore::WebGLRenderingContext::validateTexFuncParameters):
+ (WebCore::WebGLRenderingContext::validateTexFuncData):
+ (WebCore::WebGLRenderingContext::validateDrawMode):
+ (WebCore::WebGLRenderingContext::validateStencilFunc):
+ (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
+ (WebCore::WebGLRenderingContext::validateBlendEquation):
+ (WebCore::WebGLRenderingContext::validateBlendFuncFactors):
+ (WebCore::WebGLRenderingContext::validateCapability):
+ (WebCore::WebGLRenderingContext::validateUniformParameters):
+ (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
+ (WebCore::WebGLRenderingContext::validateBufferDataParameters):
+ (WebCore::WebGLRenderingContext::vertexAttribfImpl):
+ (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
+ (WebCore::WebGLRenderingContext::simulateVertexAttrib0):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState):
+ * html/canvas/WebGLShader.cpp:
+ (WebCore::WebGLShader::create):
+ (WebCore::WebGLShader::WebGLShader):
+ * html/canvas/WebGLShader.h:
+ (WebCore::WebGLShader::getType):
+ * html/canvas/WebGLTexture.cpp:
+ (WebCore::WebGLTexture::setTarget):
+ (WebCore::WebGLTexture::setParameteri):
+ (WebCore::WebGLTexture::setParameterf):
+ (WebCore::WebGLTexture::setLevelInfo):
+ (WebCore::WebGLTexture::generateMipmapLevelInfo):
+ (WebCore::WebGLTexture::getInternalFormat):
+ (WebCore::WebGLTexture::getType):
+ (WebCore::WebGLTexture::getWidth):
+ (WebCore::WebGLTexture::getHeight):
+ (WebCore::WebGLTexture::isNPOT):
+ (WebCore::WebGLTexture::mapTargetToIndex):
+ (WebCore::WebGLTexture::computeLevelCount):
+ (WebCore::WebGLTexture::update):
+ (WebCore::WebGLTexture::getLevelInfo):
+ * html/canvas/WebGLTexture.h:
+ (WebCore::WebGLTexture::LevelInfo::setInfo):
+ * html/canvas/WebGLUniformLocation.cpp:
+ (WebCore::WebGLUniformLocation::create):
+ (WebCore::WebGLUniformLocation::WebGLUniformLocation):
+ (WebCore::WebGLUniformLocation::location):
+ * html/canvas/WebGLUniformLocation.h:
+ * platform/graphics/GraphicsContext3D.h: Map GC3Dboolean to bool instead of unsigned char.
+
+2011-01-13 Jian Li <jianli@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Change createObjectURL and revokeObjectURL to put under webkitURL.
+ https://bugs.webkit.org/show_bug.cgi?id=52257
+
+ Note that we add "webkit" vendor prefix to URL that is introduced in
+ the latest File API spec.
+
+ For the time being, we implement webkitURL as a readonly attribute
+ instead of a constructor so that we will not expose prototype property,
+ as required by the spec.
+
+ * 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:
+ * html/DOMURL.cpp: Added.
+ * html/DOMURL.h: Added.
+ * html/DOMURL.idl: Added.
+ * inspector/front-end/NetworkPanel.js:
+ * inspector/front-end/utilities.js:
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::webkitURL):
+ * page/DOMWindow.h:
+ * page/DOMWindow.idl:
+ * workers/WorkerContext.cpp:
+ (WebCore::WorkerContext::webkitURL):
+ * workers/WorkerContext.h:
+ * workers/WorkerContext.idl:
+
+2011-01-13 Emil Eklund <eae@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Setting outerText should convert CR/LF to <br>
+ https://bugs.webkit.org/show_bug.cgi?id=52268
+
+ Make set outerText support line breaks (sharing the text to fragment code
+ with setInnerText) and handle empty text nodes the same way IE does.
+
+ Test: fast/dom/set-outer-text.html
+
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::textToFragment): Shared between setInnerText and setOuterText
+ (WebCore::HTMLElement::setInnerText): Split out text parsing code.
+ (WebCore::mergeWithNextTextNode): Split out text node merging code.
+ (WebCore::HTMLElement::setOuterText): Added support for line breaks.
+ * html/HTMLElement.h:
+
+2011-01-13 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Relax the ESSL valid charset a little bit to include " ' `
+ https://bugs.webkit.org/show_bug.cgi?id=52396
+
+ * html/canvas/WebGLRenderingContext.cpp:
+
+>>>>>>> .r75740
+2011-01-13 Adrienne Walker <enne@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ [chromium] Attempt to fix crash in tiled compositor memcpy
+ https://bugs.webkit.org/show_bug.cgi?id=52379
+
+ * platform/graphics/chromium/LayerTilerChromium.cpp:
+ (WebCore::LayerTilerChromium::update):
+
+2011-01-13 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Unreviewed, rolling out r75725.
+ http://trac.webkit.org/changeset/75725
+ https://bugs.webkit.org/show_bug.cgi?id=52317
+
+ Caused crashes in layout tests.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::initForStyleResolve):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::updateType):
+ * html/InputType.cpp:
+ * html/InputType.h:
+ * html/RangeInputType.cpp:
+ * html/RangeInputType.h:
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::defaultEventHandler):
+ (WebCore::SliderThumbElement::detach):
+ * html/shadow/SliderThumbElement.h:
+ (WebCore::SliderThumbElement::SliderThumbElement):
+ (WebCore::SliderThumbElement::create):
+ * rendering/MediaControlElements.cpp:
+ (WebCore::MediaControlInputElement::attach):
+ (WebCore::MediaControlInputElement::updateStyle):
+ * rendering/RenderSlider.cpp:
+ (WebCore::RenderSlider::~RenderSlider):
+ (WebCore::RenderSlider::styleDidChange):
+ (WebCore::RenderSlider::createThumbStyle):
+ (WebCore::RenderSlider::thumbRect):
+ (WebCore::RenderSlider::layout):
+ (WebCore::RenderSlider::updateFromElement):
+ (WebCore::RenderSlider::mouseEventIsInThumb):
+ (WebCore::RenderSlider::mouseEventOffsetToThumb):
+ (WebCore::RenderSlider::setValueForPosition):
+ (WebCore::RenderSlider::positionForOffset):
+ (WebCore::RenderSlider::currentPosition):
+ (WebCore::RenderSlider::trackSize):
+ (WebCore::RenderSlider::forwardEvent):
+ (WebCore::RenderSlider::inDragMode):
+ * rendering/RenderSlider.h:
+
+2011-01-12 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Flip input[type=range] to use the new shadow DOM model.
+ https://bugs.webkit.org/show_bug.cgi?id=52317
+
+ This is a straight-up flip, minimal change to the logic, which will be
+ refactored in a follow-up patch.
+
+ Covered by existing tests.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::initForStyleResolve): Changed to use either
+ host or parent node to find parent.
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::updateType): Added logic for destroying/creating
+ shadow DOM subtree.
+ * html/InputType.cpp:
+ (WebCore::InputType::createShadowSubtree): Added empty decl.
+ (WebCore::InputType::destroyShadowSubtree): Added a method to destroy
+ shadow subtree.
+ * html/InputType.h: Added defs.
+ * html/RangeInputType.cpp:
+ (WebCore::RangeInputType::createShadowSubtree): Added a virtual method to create
+ slider thumb.
+ * html/RangeInputType.h: Adde def.
+ * html/shadow/SliderThumbElement.cpp: Added temporary RenderSliderThumb class
+ to handle cascading appearance.
+ (WebCore::RenderSliderThumb::RenderSliderThumb): Added.
+ (WebCore::RenderSliderThumb::layout): Moved here the logic from
+ RenderSlider::createThumbStyle.
+ (WebCore::SliderThumbElement::createRenderer): Added virtual method to
+ create RenderSliderThumb instance.
+ (WebCore::SliderThumbElement::defaultEventHandler): Changed to use HTMLDivElement
+ as base class.
+ (WebCore::SliderThumbElement::detach): Ditto.
+ * html/shadow/SliderThumbElement.h:
+ (WebCore::SliderThumbElement::SliderThumbElement): Ditto.
+ (WebCore::SliderThumbElement::create): Ditto.
+ (WebCore::toSliderThumbElement): Added a casting helper.
+ * rendering/MediaControlElements.cpp:
+ (WebCore::MediaControlInputElement::attach): Added handling of shadow DOM,
+ since the whole method is hand-rolled.
+ (WebCore::MediaControlInputElement::updateStyle): Ditto.
+ * rendering/RenderSlider.cpp:
+ (WebCore::RenderSlider::~RenderSlider): Removed unneeded code.
+ (WebCore::RenderSlider::thumbRect): Changed to use sliderThumbElement helper.
+ (WebCore::RenderSlider::layout): Ditto.
+ (WebCore::RenderSlider::sliderThumbElement): Added a temporary helper to access
+ SliderThumbElement.
+ (WebCore::RenderSlider::mouseEventIsInThumb): Changed to use sliderThumbElement helper.
+ (WebCore::RenderSlider::mouseEventOffsetToThumb): Ditto.
+ (WebCore::RenderSlider::setValueForPosition): Ditto.
+ (WebCore::RenderSlider::positionForOffset): Ditto.
+ (WebCore::RenderSlider::currentPosition): Ditto.
+ (WebCore::RenderSlider::trackSize): Ditto.
+ (WebCore::RenderSlider::forwardEvent): Ditto.
+ (WebCore::RenderSlider::inDragMode): Ditto.
+ * rendering/RenderSlider.h: Added def.
+
+2011-01-13 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ <rdar://problem/8098442> Crash in Widget::setFrameRect()
+ https://bugs.webkit.org/show_bug.cgi?id=52375
+
+ Test: plugins/destroy-on-setwindow.html
+
+ * platform/mac/WidgetMac.mm:
+ (WebCore::Widget::setFrameRect): Protect the Widget from being deleted as a result of calling
+ out to the view.
+ (WebCore::Widget::getOuterView): Coding style fix.
+ (WebCore::Widget::paint): Protect the Widget from being deleted as a result of calling out to
+ the views. This is precautionary, since this function does not applear to access member variables
+ after such calls.
+ * platform/wx/WidgetWx.cpp:
+ (WebCore::Widget::setFrameRect): Protect the Widget from being deleted as a result of calling
+ out to the platform widget.
+
+2011-01-13 Csaba Osztrogonác <ossy@webkit.org>
+
+ Unreviewed buildfix after r75715.
+
+ * WebCore.pri:
+ * WebCore.pro:
+
+2011-01-13 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: Qt build fix.
+
+ * WebCore.pri:
+
+2011-01-12 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: embed injected script into the backend.
+ https://bugs.webkit.org/show_bug.cgi?id=52312
+
+ InjectedScript belongs to the backend of the system and
+ should be exposed by means of protocol, not InjectedScriptAccess.
+ This patch makes injected script a part of the backend.
+ It introduces single manual generation step (xxd -i) that should be
+ automated by the build scripts for all the platforms.
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSInjectedScriptHostCustom.cpp:
+ (WebCore::InjectedScriptHost::injectedScriptFor):
+ * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
+ (WebCore::InjectedScriptHost::injectedScriptFor):
+ * inspector/InjectedScriptHost.cpp:
+ (WebCore::InjectedScriptHost::injectedScriptSource):
+ * inspector/InjectedScriptHost.h:
+ * inspector/Inspector.idl:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::restoreInspectorStateFromCookie):
+ * inspector/InspectorState.cpp:
+ (WebCore::InspectorState::InspectorState):
+ * inspector/InspectorState.h:
+ * inspector/front-end/InjectedScript.js: Removed.
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector.doLoadedDone.propertyNamesCallback):
+ (WebInspector.doLoadedDone):
+ * inspector/xxd.pl: Added.
+
+2011-01-13 Mikhail Naganov <mnaganov@chromium.org>
+
+ Reviewed by Timothy Hatcher.
+
+ Web Inspector: Cleanup after r75613 -- make all UI-facing strings
+ to be passed directly to WebInspector.UIString
+
+ https://bugs.webkit.org/show_bug.cgi?id=52365
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/ApplicationCacheItemsView.js:
+ (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
+ (WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
+ * inspector/front-end/AuditRules.js:
+ (WebInspector.AuditRules.GzipRule.prototype.doRun):
+ (WebInspector.AuditRules.CookieSizeRule.prototype.processCookies):
+ (WebInspector.AuditRules.StaticCookielessRule.prototype.processCookies):
+ * inspector/front-end/BreakpointsSidebarPane.js:
+ (WebInspector.EventListenerBreakpointsSidebarPane):
+ (WebInspector.EventListenerBreakpointsSidebarPane.prototype._createCategory):
+ * inspector/front-end/CookieItemsView.js:
+ (WebInspector.CookieItemsView.prototype._updateWithCookies):
+ * inspector/front-end/ImageView.js:
+ (WebInspector.ImageView.prototype._createContentIfNeeded.onImageLoad):
+ (WebInspector.ImageView.prototype._createContentIfNeeded):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkTimeCalculator.prototype.formatValue):
+ (WebInspector.NetworkTransferTimeCalculator.prototype.formatValue):
+ (WebInspector.NetworkTransferDurationCalculator.prototype.formatValue):
+ * inspector/front-end/ProfileDataGridTree.js:
+ (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
+ (WebInspector.ProfileDataGridNode.prototype.get data):
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource.Type.toUIString):
+ (WebInspector.Resource.Type.toString):
+ * inspector/front-end/TimelineOverviewPane.js:
+ (WebInspector.TimelineOverviewCalculator.prototype.formatValue):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel):
+ (WebInspector.TimelineCalculator.prototype.formatValue):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._generateAggregatedInfo):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
+ (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
+ * inspector/front-end/utilities.js:
+ ():
+
+2011-01-13 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Need a way to inform the application when a Netscape plugin is created.
+ https://bugs.webkit.org/show_bug.cgi?id=30179
+
+ Added "c" style static method for the application to hook up for
+ receiving notifications when a plugin is created.
+
+ * plugins/symbian/PluginViewSymbian.cpp:
+ (qtwebkit_setPluginCreatedCallback):
+ (WebCore::PluginView::platformStart):
+
+2011-01-13 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Use a black background color for the video element on Qt Mobile
+ https://bugs.webkit.org/show_bug.cgi?id=52252
+
+ Use black as the background color for the video element on Qt Mobile.
+
+ * css/themeQtMobile.css:
+ (video):
+
+2011-01-13 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Use a big central media play control button for video element
+ https://bugs.webkit.org/show_bug.cgi?id=52315
+
+ When ChromeClient::requiresFullscreenForVideoPlayback() returns true,
+ all other control buttons for the video element are hidden, except
+ a big centralized play button.
+
+ No new tests because no client implements requiresFullscreenForVideoPlayback yet.
+
+ * WebCore.pri:
+ * css/mediaControlsQtFullscreen.css: Added.
+ (audio):
+ (audio::-webkit-media-controls-panel):
+ (video::-webkit-media-controls-panel):
+ (video:-webkit-full-page-media::-webkit-media-controls-panel):
+ (audio::-webkit-media-controls-mute-button):
+ (video::-webkit-media-controls-mute-button):
+ (audio::-webkit-media-controls-play-button):
+ (video::-webkit-media-controls-play-button):
+ (audio::-webkit-media-controls-timeline-container):
+ (video::-webkit-media-controls-timeline-container):
+ (audio::-webkit-media-controls-current-time-display):
+ (video::-webkit-media-controls-current-time-display):
+ (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
+ (audio::-webkit-media-controls-timeline):
+ (video::-webkit-media-controls-timeline):
+ (audio::-webkit-media-controls-volume-slider-container):
+ (video::-webkit-media-controls-volume-slider-container):
+ (audio::-webkit-media-controls-volume-slider):
+ (video::-webkit-media-controls-volume-slider):
+ (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
+ (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
+ (audio::-webkit-media-controls-fullscreen-button):
+ (video::-webkit-media-controls-fullscreen-button):
+ (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
+ (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
+ (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::extraMediaControlsStyleSheet):
+
+2011-01-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Paint toggle buttons inconsistent when the object state is indeterminate
+ https://bugs.webkit.org/show_bug.cgi?id=52361
+
+ Check whether the object state is indeterminate to set the flag
+ GTK_STATE_FLAG_INCONSISTENT before rendering check and radio
+ buttons.
+
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::paintToggle):
+
+2011-01-13 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Extend the Platform Plugin to support full screen video handler
+ https://bugs.webkit.org/show_bug.cgi?id=51249
+
+ Make MediaPlayerPrivateQt support a fullscreen player.
+
+ No new tests because LayoutTests/media/media-fullscreen-inline.html already exists.
+ However, this test failed for Qt (QtMediaPlayer) due to durationchange event getting fired twice.
+ So, still skip it for Qt.
+
+ * WebCore.pro:
+ * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
+ (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
+ (WebCore::MediaPlayerPrivateQt::removeVideoItem):
+ (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
+ * platform/graphics/qt/MediaPlayerPrivateQt.h:
+ (WebCore::MediaPlayerPrivateQt::supportsFullscreen):
+ (WebCore::MediaPlayerPrivateQt::mediaPlayer):
+
+2011-01-13 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Dave Hyatt.
+
+ <rdar://problem/8858548> Disable inheritance of text emphasis marks to ruby text
+ https://bugs.webkit.org/show_bug.cgi?id=52359
+
+ Test: fast/ruby/text-emphasis.html
+
+ * css/html.css:
+ (rt):
+
+2011-01-13 Csaba Osztrogonác <ossy@webkit.org>
+
+ Rubber-stamped by David Levin.
+
+ Trivial fix after r75682.
+
+ * loader/FrameLoader.cpp: Remove accidentally committed debug code.
+ (WebCore::FrameLoader::shouldClose):
+
+2011-01-12 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ REGRESSION(r69831): focus() in onkeypress discards input (affects chaseonline.chase.com)
+ https://bugs.webkit.org/show_bug.cgi?id=52241
+
+ The bug was caused by RenderTextControl::selection's creating a Range with m_insertText
+ which is a shadow DOM div as both start and end containers. Fixed the bug by traversing
+ through the descendents of m_innerText and using the right start and end containers to
+ create a Range.
+
+ Test: fast/forms/focus-change-on-keypress.html
+
+ * rendering/RenderTextControl.cpp:
+ (WebCore::setContainerAndOffsetForRange): Added; a helper function.
+ (WebCore::RenderTextControl::selection): See above.
+
+2011-01-12 Kenichi Ishibashi <bashi@google.com>
+
+ Reviewed by Kent Tamura.
+
+ M_formElementsWithFormAttribute not cleared when FormAssociatedElement is inserted with a null m_form and then removed.
+ https://bugs.webkit.org/show_bug.cgi?id=51905
+
+ Calls unregisterFormElementWithFormAttribute() when 'form' attribute
+ is removed.
+
+ Tests: fast/forms/form-associated-element-crash.html
+ fast/forms/form-associated-element-crash2.html
+
+ * html/FormAssociatedElement.cpp:
+ (WebCore::FormAssociatedElement::formAttributeChanged):
+
+2011-01-12 Kenichi Ishibashi <bashi@google.com>
+
+ Reviewed by Kent Tamura.
+
+ M_formElementsWithFormAttribute not cleared when Node is moved to another document.
+ https://bugs.webkit.org/show_bug.cgi?id=51418
+
+ Calls unregisterFormElementWithFormAttribute() when form associated elements
+ are moved to another document.
+
+ Test: fast/forms/change-form-element-document-crash.html
+
+ * html/FormAssociatedElement.cpp:
+ (WebCore::FormAssociatedElement::willMoveToNewOwnerDocument): Added.
+ * html/FormAssociatedElement.h: Added willMoveToNewOwnerDocument().
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::willMoveToNewOwnerDocument): Added.
+ * html/HTMLFormControlElement.h: Added willMoveToNewOwnerDocument().
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::willMoveToNewOwnerDocument): Added.
+ * html/HTMLObjectElement.h: Added willMoveToNewOwnerDocument().
+ * html/HTMLPlugInImageElement.h: Moves willMoveToNewOwnerDocument() to protected.
+
+2011-01-12 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Stop instantiating legacy editing positions in ApplyBlockElementCommand and ApplyStyleCommand
+ https://bugs.webkit.org/show_bug.cgi?id=52250
+
+ Removed instantiation of legacy editing positions.
+ Calls to Position::Position are replaced by calls to Position's convenience functions.
+
+ Also added firstPositionInOrBeforeNode and lastPositionInOrAfterNode,
+ which are functions that return firstPositionInNode and lastPositionInNode respectively
+ when the specified node can have children for editing purpose and return positionBeforeNode
+ and positionAfterNode respectively otherwise. They can be used to guarantee that we never
+ create a bogus position like [img, 0] or [br, 0].
+
+ No tests are added since this is a cleanup.
+
+ * editing/ApplyBlockElementCommand.cpp:
+ (WebCore::ApplyBlockElementCommand::formatSelection):
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::applyBlockStyle):
+ (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
+ (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
+ (WebCore::ApplyStyleCommand::removeInlineStyle):
+ (WebCore::ApplyStyleCommand::nodeFullySelected):
+ (WebCore::ApplyStyleCommand::nodeFullyUnselected):
+ (WebCore::ApplyStyleCommand::splitTextAtStart):
+ (WebCore::ApplyStyleCommand::splitTextAtEnd):
+ (WebCore::ApplyStyleCommand::splitTextElementAtStart):
+ (WebCore::ApplyStyleCommand::splitTextElementAtEnd):
+ (WebCore::ApplyStyleCommand::isValidCaretPositionInTextNode):
+ (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
+ (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
+ (WebCore::ApplyStyleCommand::computedFontSize):
+ (WebCore::ApplyStyleCommand::joinChildTextNodes):
+ * editing/ApplyStyleCommand.h:
+ * editing/htmlediting.h:
+ (WebCore::firstPositionInOrBeforeNode): Added.
+ (WebCore::lastPositionInOrAfterNode): Added.
+
+2011-01-12 Sam Weinig <sam@webkit.org>
+
+ Another build fix.
+
+ * platform/mac/WheelEventMac.mm:
+ (WebCore::phaseForEvent):
+
+2011-01-12 Sam Weinig <sam@webkit.org>
+
+ Fix build.
+
+ * platform/mac/WheelEventMac.mm:
+ (WebCore::phaseForEvent):
+
+2011-01-12 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Remove premature optimization from SchemeRegistry
+ https://bugs.webkit.org/show_bug.cgi?id=52283
+
+ As far as I can tell, this optimization isn't necessary. I'm slightly
+ unsure which benchmarks to run to demonstrate this numerically, but
+ none of the benchmarks Chromium tracks were affected by adding a
+ similar check for "display-isolated" schemes.
+
+ * platform/SchemeRegistry.cpp:
+ (WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
+
+2011-01-12 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Add-on for https://bugs.webkit.org/show_bug.cgi?id=52309
+ Expose fixed layout through WebKit SPI
+ -and corresponding-
+ <rdar://problem/8844464>
+
+ And now with getters!
+ * WebCore.exp.in:
+
+2011-01-12 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52337
+ PlatformWheelEvent should know about the scroll phase on the Mac
+
+ Add a phase parameter on Mac PlatformWheelEvents.
+
+ * platform/PlatformWheelEvent.h:
+ (WebCore::PlatformWheelEvent::PlatformWheelEvent):
+ (WebCore::PlatformWheelEvent::phase):
+ * platform/mac/WheelEventMac.mm:
+ (WebCore::phaseForEvent):
+ (WebCore::PlatformWheelEvent::PlatformWheelEvent):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ A couple of lines of the patch for https://bugs.webkit.org/show_bug.cgi?id=52321
+ were omitted.
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ Getting rid of an assert that was causing build failures that turns out not to be needed.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintsWithTransform):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ Another fix for Gtk
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintsWithTransform):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ Fix for Gtk and Windows builds
+
+ * page/Frame.cpp:
+ (WebCore::Frame::scalePage):
+ * page/Frame.h:
+ * platform/graphics/ca/win/PlatformCALayerWin.cpp:
+ (PlatformCALayer::contentsScale):
+ (PlatformCALayer::setContentsScale):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ UNreviewed.
+
+ Fix for the Windows build
+
+ * platform/graphics/ca/win/PlatformCALayerWin.cpp:
+ (contentsScale):
+ (setContentsScale):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ Another build fix
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::clampedContentsScaleForScale):
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (PlatformCALayer::setContentsScale):
+
+2011-01-11 Matthew Delaney <mdelaney@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Max area bound needed in creation of IOSurface in ImageBufferCG.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=52172
+
+ Tests: fast/canvas/canvas-large-dimensions.html
+
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::ImageBuffer):
+
+2011-01-12 Daniel Bates <dbates@rim.com>
+ And Benjamin C Meyer <bmeyer@rim.com>
+
+ Build fix when building with Inspector disabled
+ https://bugs.webkit.org/show_bug.cgi?id=52313
+
+ After changeset 75604 <http://trac.webkit.org/changeset/75604> it's not
+ possible to build when the Inspector is disabled.
+
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::updateApplicationCacheStatus): Fix build breakage when building
+ with Inspector disabled and Offline Web Applications enabled by moving macro guard condition
+ ENABLE(INSPECTOR) && ENABLE(OFFLINE_WEB_APPLICATIONS) into function body. This makes us also
+ consistent with the form we use for InspectorInstrumentation::networkStateChanged() and other
+ InspectorInstrumentation functions.
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::didReceiveData): Fix build breakage when building with Inspector
+ disabled by adding ENABLE(INSPECTOR) guard around code that references the instance variable
+ ApplicationCacheGroup::m_currentResourceIdentifier as this variable only exists when building
+ with the Inspector.
+ (WebCore::ApplicationCacheGroup::didFinishLoading): Ditto.
+ (WebCore::ApplicationCacheGroup::didFail): Ditto.
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Unreviewed.
+
+ Fix a build issue from http://trac.webkit.org/changeset/75639.
+
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::contentsScale):
+ (WebCore::GraphicsLayer::setContentsScale):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Reviewed by Kevin Decker.
+
+ Pages with accelerated layers lose subpixel-AA and become blurry when a scale factor is applied
+ rdar://problem/8824974
+
+ This prevents the rootLayer (with the WebKit rendered content) from going becoming
+ a tiled layer when zoomed, and when there is other layered content on the page.
+ This speeds up zooming a lot and avoids some buggy behavior in CA with a very large
+ number of layers.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paintsWithTransform):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::paintingGoesToWindow):
+
+2011-01-12 Chris Marrin <cmarrin@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Pages with accelerated layers lose subpixel-AA and become blurry when a scale factor is applied
+ rdar://problem/8824974
+
+ When scaled, WebKit renders the page content at the scaled up size, so there are no
+ scaling artifacts. But content drawn into a layer's backing store does not scale up.
+ This is made worse by the fact that the root page contents become layered when there
+ are other accelerated compositing layers present (video, plugins, etc.).
+
+ Plumb scaling factor from Frame::scalePage() down into all layers with content. It
+ eventually calls CALayer::setContentsScale which renders to a backing store whose dimensions
+ are scaled, causing them to render larger and appear pixel perfect at the scaled
+ page size.
+
+ * page/Frame.cpp:
+ (WebCore::Frame::updateContentsScale):
+ (WebCore::Frame::scalePage):
+ * page/Frame.h:
+ * platform/graphics/GraphicsLayer.h:
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::setContentsScale):
+ (WebCore::GraphicsLayerCA::clampedContentsScaleForScale):
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ (WebCore::GraphicsLayerCA::contentsScale):
+ * platform/graphics/ca/PlatformCALayer.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (PlatformCALayer::contentsScale):
+ (PlatformCALayer::setContentsScale):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateContentsScale):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::createGraphicsLayer):
+ (WebCore::RenderLayerBacking::updateForegroundLayer):
+ (WebCore::RenderLayerBacking::updateMaskLayer):
+ (WebCore::RenderLayerBacking::updateContentsScale):
+ * rendering/RenderLayerBacking.h:
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateContentsScale):
+ * rendering/RenderLayerCompositor.h:
+
+2011-01-12 Stephen White <senorblanco@chromium.org>
+
+ Reviewed by James Robinson.
+
+ Fix DrawingBuffer issues for depth/stencil, extensions, etc.
+ https://bugs.webkit.org/show_bug.cgi?id=52310
+
+ 1) GL_TEXTURE is not a valid argument to glFramebufferTexture2D()
+ (should be GL_TEXTURE_2D).
+ 2) Support for the multisampling extension was being checked after
+ the DrawingBuffer constructor was called, which calls multisample()
+ to check for the extension.
+ 3) If depth or stencil is set, the corresponding framebuffers must
+ be created in the DrawingBuffer constructor.
+ 4) GL_DEPTH_STENCIL is not a valid framebuffer internal type in
+ GLES2. Must use GL_OES_DEPTH24_STENCIL8, and check for the
+ OES_packed_depth_stencil extension.
+
+ * platform/graphics/chromium/DrawingBufferChromium.cpp:
+ (WebCore::DrawingBuffer::DrawingBuffer):
+ Record the extension support in the constructor. Create all the
+ secondary drawing buffers (for multisampling, depth/stencil).
+ * platform/graphics/gpu/DrawingBuffer.cpp:
+ (WebCore::DrawingBuffer::create):
+ Check for the extensions before calling the DrawingBuffer constructor.
+ (WebCore::DrawingBuffer::createSecondaryBuffers):
+ Refactor creation of the secondary buffers from DrawingBufferMac.mm to
+ here.
+ (WebCore::DrawingBuffer::reset):
+ Use DEPTH24_STENCIL8 format, not DEPTH_STENCIL. Use
+ DEPTH_COMPONENT16, not DEPTH_COMPONENT.
+ Use GL_TEXTURE_2D, not GL_TEXTURE (for glFramebufferTexture2D).
+ * platform/graphics/gpu/DrawingBuffer.h:
+ Refactor createSecondaryBuffers(). Add extension support arguments to
+ constructor. Add support for packed_depth_stencil extension.
+ * platform/graphics/gpu/mac/DrawingBufferMac.mm:
+ (WebCore::DrawingBuffer::DrawingBuffer):
+ Record extension support in constructor. Refactor out creation of
+ secondary buffers.
+
+2011-01-12 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=52309 Expose
+ fixed layout through WebKit SPI
+ -and corresponding-
+ <rdar://problem/8844464>
+
+ Export symbols for ScrollView::setUseFixedLayout() and
+ ScrollView::setFixedLayoutSize()
+ * WebCore.exp.in:
+
+2011-01-12 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Search input field doesn't have cancel button
+
+ Add a cancel button to the search field and make it customizable
+ by the client. For now, use the close dialog button associated
+ with the application's style as the default.
+
+ Unskip a bunch of search field related tests that pass now:
+
+ fast/forms/search-cancel-button-mouseup.html
+ fast/forms/search-rtl.html
+ fast/forms/search-abs-pos-cancel-button.html
+ fast/forms/search-styled.html
+ fast/forms/search-transformed.html
+ fast/forms/search-zoomed.html
+ fast/forms/search-cancel-button-style-sharing.html
+ fast/forms/search-display-none-cancel-button.html
+ fast/forms/search-placeholder-value-changed.html
+ fast/repaint/search-field-cancel.html
+ fast/forms/search-cancel-button-events.html
+
+ https://bugs.webkit.org/show_bug.cgi?id=42887
+
+ * platform/graphics/qt/ImageQt.cpp:
+ (loadResourcePixmap):
+ * platform/qt/RenderThemeQt.cpp:
+ (WebCore::RenderThemeQt::isControlStyled):
+ (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
+ (WebCore::RenderThemeQt::paintSearchField):
+ (WebCore::RenderThemeQt::adjustSearchFieldStyle):
+ (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
+ (WebCore::RenderThemeQt::convertToPaintingRect):
+ (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
+ * platform/qt/RenderThemeQt.h:
+
+2011-01-12 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: cookie table is multiplied after repeated switching to cookies tab in network item view
+ Only create cookiesTable is it hasn't been done yet.
+ https://bugs.webkit.org/show_bug.cgi?id=52303
+
+ * inspector/front-end/ResourceCookiesView.js:
+ (WebInspector.ResourceCookiesView.prototype.show):
+
+2011-01-12 Koan-Sin Tan <koansin.tan@gmail.com>
+
+ Reviewed by Martin Robinson.
+
+ [Gtk] WebKitGtk+ doesn't build on Mac OS X 10.6
+ https://bugs.webkit.org/show_bug.cgi?id=50867
+
+ * config.h: Don't disallow ctype for (OS(DARWIN) && PLATFORM(GTK))
+ Many GTK+ related files include <libintl.h> or <glib/gi18n-lib.h>.
+ On Mac, <libintl.h> includes <xlocale.h>. <xclocale.h> includes
+ <xlocale/_ctype.h>, which uses isacii().
+ * platform/UUID.cpp:
+ (WebCore::createCanonicalUUIDString): For OS(DARWIN) && !PLATFORM(CF)
+ use the Chromium Linux UUID generation.
+
+2011-01-12 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ [CSS Gradients] One color stop should not paint anything for linear-gradient
+ https://bugs.webkit.org/show_bug.cgi?id=52259
+
+ Share color stop parsing code between linear and radial gradients.
+ Consider the gradient invalid if it has less than two color stops.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseLinearGradient):
+ (WebCore::CSSParser::parseRadialGradient):
+ (WebCore::CSSParser::parseGradientColorStops):
+ * css/CSSParser.h:
+
+2011-01-12 Mikhail Naganov <mnaganov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Fix inconsistencies in Inspector strings found by the new check-inspector-strings script.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52295
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/BreakpointsSidebarPane.js:
+ (WebInspector.EventListenerBreakpointsSidebarPane):
+ * inspector/front-end/ProfilesPanel.js:
+ (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource.Type.toString):
+ * inspector/front-end/ResourcesPanel.js:
+ (WebInspector.ResourceRevisionTreeElement):
+ * inspector/front-end/utilities.js:
+ ():
+
+2011-01-12 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Fix WML compilation on Mac.
+
+ * wml/WMLInputElement.cpp:
+ (WebCore::WMLInputElement::setValue):
+ (WebCore::WMLInputElement::setValueForUser):
+ (WebCore::WMLInputElement::initialize):
+ (WebCore::WMLInputElement::validateInputMask):
+ * wml/WMLSelectElement.cpp:
+ (WebCore::WMLSelectElement::listBoxSelectItem):
+
+2011-01-12 Justin Schuh <jschuh@chromium.org>
+
+ Unreviewed build fix for debug strict compiles.
+
+ Use fprintf for debug statements instead of fwrite, which caused compile failures
+ in debug strict mode because of failure to check the fwrite return value.
+
+ No behavior changed.
+
+ * rendering/CounterNode.cpp:
+ (WebCore::showTreeAndMark):
+
+2010-12-29 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ inspector/timeline-network-resource.html fails when run twice
+ https://bugs.webkit.org/show_bug.cgi?id=37394
+
+ Send didReceiveResponse notification to the timeline agent from ResourceLoadNotifier
+ instead of ResourceLoader::didReceiveResponse to cover the cases when resources
+ are loaded from memory cache.
+
+ Network notifications are now sent to InspectorInstrumentation which dispatches
+ them to interested agents and InspectorController.
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorApplicationCacheAgent.cpp:
+ (WebCore::InspectorApplicationCacheAgent::didReceiveManifestResponse):
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::InspectorController):
+ (WebCore::InspectorController::didCommitLoad):
+ (WebCore::InspectorController::willSendRequest):
+ (WebCore::InspectorController::didReceiveResponse):
+ (WebCore::InspectorController::didFailLoading):
+ (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
+ * inspector/InspectorController.h:
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
+ (WebCore::InspectorInstrumentation::willSendRequestImpl):
+ (WebCore::InspectorInstrumentation::markResourceAsCachedImpl):
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
+ (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
+ (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl):
+ (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
+ (WebCore::InspectorInstrumentation::didFailLoadingImpl):
+ (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
+ (WebCore::InspectorInstrumentation::scriptImportedImpl):
+ (WebCore::InspectorInstrumentation::retrieveResourceAgent):
+ * inspector/InspectorInstrumentation.h:
+ (WebCore::InspectorInstrumentation::identifierForInitialRequest):
+ (WebCore::InspectorInstrumentation::willSendRequest):
+ (WebCore::InspectorInstrumentation::markResourceAsCached):
+ (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
+ (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
+ (WebCore::InspectorInstrumentation::didReceiveContentLength):
+ (WebCore::InspectorInstrumentation::didFinishLoading):
+ (WebCore::InspectorInstrumentation::didFailLoading):
+ (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequest):
+ (WebCore::InspectorInstrumentation::scriptImported):
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::InspectorResourceAgent::identifierForInitialRequest):
+ * inspector/InspectorResourceAgent.h:
+ * inspector/InspectorTimelineAgent.cpp:
+ (WebCore::InspectorTimelineAgent::willSendResourceRequest):
+ * inspector/InspectorTimelineAgent.h:
+ * inspector/TimelineRecordFactory.cpp:
+ (WebCore::TimelineRecordFactory::createResourceSendRequestData):
+ * inspector/TimelineRecordFactory.h:
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager.prototype.identifierForInitialRequest):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype.addRecordToTimeline):
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::loadedResourceFromMemoryCache):
+ * loader/ResourceLoadNotifier.cpp:
+ (WebCore::ResourceLoadNotifier::didReceiveResponse):
+ (WebCore::ResourceLoadNotifier::didFailToLoad):
+ (WebCore::ResourceLoadNotifier::assignIdentifierToInitialRequest):
+ (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
+ (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
+ (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
+ (WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
+ (WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):
+ * loader/ResourceLoader.cpp:
+ (WebCore::ResourceLoader::didReceiveResponse):
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::createResourceHandle):
+ (WebCore::ApplicationCacheGroup::didReceiveResponse):
+ (WebCore::ApplicationCacheGroup::didReceiveData):
+ (WebCore::ApplicationCacheGroup::didFinishLoading):
+ (WebCore::ApplicationCacheGroup::didFail):
+ * loader/appcache/ApplicationCacheGroup.h:
+ * workers/DefaultSharedWorkerRepository.cpp:
+ (WebCore::SharedWorkerScriptLoader::notifyFinished):
+ * workers/Worker.cpp:
+ (WebCore::Worker::notifyFinished):
+ * workers/WorkerContext.cpp:
+ (WebCore::WorkerContext::importScripts):
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::didFinishLoading):
+
+2011-01-12 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: do not replace all tabs with spaces when editing script source
+ https://bugs.webkit.org/show_bug.cgi?id=52291
+
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame.prototype.setContent):
+ (WebInspector.SourceFrame.prototype._editLine):
+
+2011-01-11 Jeremy Orlow <jorlow@chromium.org>
+
+ Reviewed by Nate Chapin.
+
+ Enforce READ_ONLY transactions in IndexedDB
+ https://bugs.webkit.org/show_bug.cgi?id=52229
+
+ Add READ_ONLY_ERR and return it whenever delete or put
+ are called. Note that IDBCursor's delete and update
+ are simply aliases for delete/put, which is why no
+ extra code is required to handle those cases.
+
+ Test: storage/indexeddb/transaction-read-only.html
+
+ * dom/ExceptionCode.cpp:
+ * storage/IDBCursorBackendImpl.cpp:
+ (WebCore::IDBCursorBackendImpl::deleteFunction):
+ * storage/IDBDatabase.idl:
+ * storage/IDBDatabaseException.h:
+ * storage/IDBDatabaseException.idl:
+ * storage/IDBObjectStoreBackendImpl.cpp:
+ (WebCore::IDBObjectStoreBackendImpl::put):
+ (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
+ (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
+
+2011-01-11 Philippe Normand <pnormand@igalia.com>
+
+ Reviewed by Eric Seidel.
+
+ [GTK] minimal build breaks in RenderThemeGtk3
+ https://bugs.webkit.org/show_bug.cgi?id=52202
+
+ * platform/gtk/RenderThemeGtk3.cpp: Added VIDEO guards around
+ initMediaColors().
+
+2011-01-11 Philippe Normand <pnormand@igalia.com>
+
+ Reviewed by Eric Carlson.
+
+ [GStreamer] PlatformVideoWindowMac implementation
+ https://bugs.webkit.org/show_bug.cgi?id=50770
+
+ This new implementation will be used on Mac OS to display the
+ fullscreen video window with the GStreamer-based media player.
+
+ * platform/graphics/gstreamer/GStreamerGWorld.cpp:
+ (WebCore::gstGWorldSyncMessageCallback):
+ * platform/graphics/gstreamer/PlatformVideoWindow.h:
+ (WebCore::PlatformVideoWindow::window):
+ * platform/graphics/gstreamer/PlatformVideoWindowMac.mm:
+ (PlatformVideoWindow::PlatformVideoWindow):
+ (PlatformVideoWindow::~PlatformVideoWindow):
+ (PlatformVideoWindow::prepareForOverlay):
+
+2011-01-11 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Dan Bernstein.
+
+ Webkit crashes when a gradient is applied using the first-line pseudo element
+ https://bugs.webkit.org/show_bug.cgi?id=52225
+
+ When a pseudostyle references images, we fail to register/unregister
+ the relevant RenderObjects as clients of the image in the style.
+ For gradients, this caused a crash.
+
+ This patch fixes the crash by returning a null gradient image in this
+ situation.
+
+ Test: fast/gradients/gradient-on-pseudoelement-crash.html
+
+ * css/CSSGradientValue.cpp:
+ (WebCore::CSSGradientValue::image):
+
+2011-01-11 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r71562): servePendingRequests() no longer called when
+ resources are done loading.
+ https://bugs.webkit.org/show_bug.cgi?id=52264
+ <rdar://problem/8767429>
+
+ In r71562, servePendingRequests() is no longer called in Loader's
+ didFinishLoading(), didFail() and didReceiveResponse() methods. Since
+ r71562 was intended only as a refactoring, these calls should be
+ restored. At least one WebKit-based Mac OS X application relies on this
+ for correct behavior.
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::loadDone): Call
+ resourceLoadScheduler()->servePendingRequests().
+
+2011-01-11 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Add Document::setContent()
+ https://bugs.webkit.org/show_bug.cgi?id=52085
+
+ Add a method to Document to set the whole content at once.
+ This removes the hack of the insert method in the xml parser
+ and is a predecessor to feed the xml parser with raw data.
+
+ * dom/Document.cpp:
+ (WebCore::Document::setContent):
+ * dom/Document.h:
+ * dom/XMLDocumentParser.cpp:
+ (WebCore::XMLDocumentParser::insert): Added ASSERT_NOT_REACHED().
+ * loader/cache/CachedFont.cpp:
+ (WebCore::CachedFont::ensureSVGFontData): Use setContent.
+ * xml/DOMParser.cpp:
+ (WebCore::DOMParser::parseFromString): Ditto.
+ * xml/XMLHttpRequest.cpp:
+ (WebCore::XMLHttpRequest::responseXML): Ditto.
+ * xml/XSLTProcessor.cpp:
+ (WebCore::XSLTProcessor::createDocumentFromSource): Ditto.
+
+2011-01-11 Brent Fulgham <bfulgham@webkit.org>
+
+ Unreviewed build fix.
+
+ * platform/graphics/cairo/PathCairo.cpp:
+ (WebCore::Path::addArc): Switch to MathExtra's piFloat define,
+ rather than M_PI which is not always available.
+
+2011-01-11 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
+
+ Reviewed by Adam Barth.
+
+ Use plug-in DB for extensions to MIME type convertion
+
+ Plugins extension to MIME type conversion was not used in the
+ frameLoader. This was causing some fallback to be use which as the side
+ effect of loosing all the <OBJECT> parameters or <EMBED> attributes.
+ This patch ensure that we try to convert the extension to MIME type
+ using the plugin database beofre using this fallback.
+
+ Attribute lost with Flash plugin without mime type set
+ https://bugs.webkit.org/show_bug.cgi?id=50657
+
+ Test: plugins/no-mime-with-valid-extension.html
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::defaultObjectContentType): Use PluginDatabase for MIME
+
+2011-01-11 James Simonsen <simonjam@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ [Web Timing] Rename sslHandshakeStart to secureConnectionStart
+ https://bugs.webkit.org/show_bug.cgi?id=52239
+
+ * page/PerformanceTiming.cpp:
+ (WebCore::PerformanceTiming::secureConnectionStart):
+ * page/PerformanceTiming.h:
+ * page/PerformanceTiming.idl:
+
+2011-01-11 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Introduce the notion of a "display-isolated" URL scheme for use by
+ Chrome-internal URLs
+ https://bugs.webkit.org/show_bug.cgi?id=50182
+
+ This patch actually makes the display-isolated schemes display
+ isolated. The behavior should be the same as the previous iteration of
+ this patch, but re-organized a bit because reading the access white
+ list is expensive.
+
+ * page/SecurityOrigin.cpp:
+ (WebCore::SecurityOrigin::isAccessToURLWhiteListed):
+ (WebCore::SecurityOrigin::canDisplay):
+ * page/SecurityOrigin.h:
+ * platform/SchemeRegistry.cpp:
+ * platform/SchemeRegistry.h:
+
+2011-01-11 Mihai Parparita <mihaip@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Scroll event should be fired asynchronously
+ https://bugs.webkit.org/show_bug.cgi?id=45631
+
+ Tests: fast/events/fire-scroll-event.html
+ fast/events/fire-scroll-event-element.html
+ fast/events/scroll-event-phase.html
+
+ Makes scroll events fire asynchronously to be in compliance with the
+ CSSOM View Module and consistent with Gecko, Opera and (to some degree)
+ IE.
+
+ Implemented via the EventQueue class added by r74062 (EventQueue now
+ has a convenience enqueueScrollEvent method).
+
+ * dom/EventQueue.cpp:
+ (WebCore::EventQueue::enqueueScrollEvent):
+ (WebCore::EventQueue::pendingEventTimerFired):
+ * dom/EventQueue.h:
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::sendScrollEvent):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollToOffset):
+ * rendering/RenderListBox.cpp:
+ (WebCore::RenderListBox::valueChanged):
+
+2011-01-11 Patrick Gansterer <paroga@webkit.org>
+
+ Unreviewed WinCE build fix for r75523.
+
+ * platform/wince/DragDataWinCE.cpp: Added missing include.
+
+2011-01-11 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ RefPtr the FrameView to prevent scrollbar from getting deleted inside
+ its scroll event.
+ https://bugs.webkit.org/show_bug.cgi?id=52238
+
+ Test: scrollbars/scrollable-iframe-remove-crash.html
+
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::scrollTo):
+
+2011-01-08 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Make pseudo-style resolution less hard-coded when used to select a shadow node
+ https://bugs.webkit.org/show_bug.cgi?id=46595
+
+ Essentially implements the plumbing for the XBL2 pseudo attribute:
+ http://dev.w3.org/2006/xbl2/#the-pseudo-attribute
+
+ Test: fast/css/unknown-pseudo-element-matching.html
+
+ * css/CSSGrammar.y: Changed to handle specifier_list structure with the
+ CSSParser::updateSpecifierWithElementName helper, added logic to
+ keep unknown pseudo-element selectors at the top of the selector chain,
+ so that we can easily check for them and grab them, and also because
+ they would either not match anything or act as a descendant selector
+ (descendant into a shadow DOM subtree that is), not a specifier.
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::updateSpecifiersWithElementName): Generalized/combined
+ the logic adding element name to selectors and added the special case
+ to handle unknown pseudo-element selectors.
+ * css/CSSParser.h: Added def.
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::pseudoId): Removed any mention of PseudoSliderThumb/SLIDER_THUMB.
+ (WebCore::nameToPseudoTypeMap): Ditto.
+ (WebCore::CSSSelector::extractPseudoType): Ditto.
+ * css/CSSSelector.h: Added a new ShadowDescendant relation type,
+ removed PseudoSliderThumb def.
+ (WebCore::CSSSelector::isUnknownPseudoElement): Added a helper method.
+ * css/CSSSelectorList.cpp:
+ (WebCore::SelectorHasUnknownPseudoElementFunctor::operator()): Added a functor
+ to check for an unknown pseudo-element in the list.
+ (WebCore::CSSSelectorList::hasUnknownPseudoElements): Added.
+ * css/CSSSelectorList.h: Added a def.
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSRuleSet::getPseudoRules): Added accessor to pseudo-element hash.
+ (WebCore::CSSStyleSelector::matchRules): Added matching pseudo elements.
+ (WebCore::CSSStyleSelector::SelectorChecker::checkSelector): Added handling
+ of ShadowDescendant relation.
+ (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Enabled handling
+ of unknown pseudo-element selectors.
+ (WebCore::CSSRuleSet::addRule): Added populating unknown pseudo-element hash.
+ * css/html.css:
+ (input[type="range"]::-webkit-slider-thumb): Added previously-hard-coded
+ display:block.
+ * dom/Element.h:
+ (WebCore::Element::shadowPseudoId): Added new virtual method to allow
+ elements to provide the value of pseudo-element selector they would match.
+ * dom/Node.cpp:
+ (WebCore::Node::querySelector): Added checking for unknown pseudo-element selectors,
+ so that we can throw a SYNTAX_ERR if found.
+ (WebCore::Node::querySelectorAll): Ditto.
+ * html/shadow/SliderThumbElement.h:
+ (WebCore::SliderThumbElement::shadowPseudoId): Added to return "-webkit-slider-thumb";
+ * rendering/RenderSlider.cpp:
+ (WebCore::RenderSlider::createThumbStyle): Changed to use the new styleForElement logic.
+ * rendering/style/RenderStyleConstants.h: Removed SLIDER_THUMB.
+
+2011-01-11 Dean Jackson <dino@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52233
+
+ WebKitCSSMatrix constructor should accept 'none'
+ as a valid string parameter.
+
+ * css/WebKitCSSMatrix.cpp:
+ (WebCore::WebKitCSSMatrix::setMatrixValue):
+
+2011-01-11 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Set all RenderBlocks as replaced when an inline display type is specified
+ https://bugs.webkit.org/show_bug.cgi?id=50858
+
+ When a RenderBlock is created for an element with a specified display:inline style,
+ it should always be treated as inline-block. This situations often comes up for form
+ controls. Previously, RenderBlock::styleWillChange set the replaced flag for display
+ values of inline-block, inline-table, and inline-table and a number of subclasses of
+ RenderBlock set the replaced flag in styleDidChange for a display:inline. However
+ sometimes new subclasses would miss this step leading to bugs (such as with RenderDetails).
+ This patch sets the replaced flag for all inline display types in RenderBlock::styleWillChange.
+
+ Code cleanup only, no change in behavior so no new tests.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::styleWillChange):
+ * rendering/RenderButton.cpp:
+ (WebCore::RenderButton::styleDidChange):
+ * rendering/RenderFieldset.cpp:
+ * rendering/RenderFieldset.h:
+ * rendering/RenderFileUploadControl.cpp:
+ (WebCore::RenderFileUploadControl::styleDidChange):
+ * rendering/RenderListBox.cpp:
+ * rendering/RenderListBox.h:
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::styleDidChange):
+ * rendering/RenderSlider.cpp:
+ (WebCore::RenderSlider::styleDidChange):
+ * rendering/RenderTextControl.cpp:
+ (WebCore::RenderTextControl::styleDidChange):
+
+2011-01-11 Dimitri Glazkov <dglazkov@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ REGRESSION(r71934) Can't type in search edit field on skin-one.com
+ https://bugs.webkit.org/show_bug.cgi?id=52195
+
+ Restored the original behavior, where the selectstart event is not
+ dispatched when selection changes inside of the shadow DOM.
+
+ * dom/Node.cpp:
+ (WebCore::determineDispatchBehavior): Moved EventDispatchBehavior-determining
+ logic into a helper function, also added a check to keep selectstart
+ events inside of the shadow DOM.
+ (WebCore::Node::dispatchGenericEvent): Changed to use the helper function.
+
+2011-01-11 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Provide plugin coordinates to windowless plugins on Symbian.
+ https://bugs.webkit.org/show_bug.cgi?id=52213
+
+ * plugins/symbian/PluginViewSymbian.cpp:
+ (WebCore::PluginView::setNPWindowIfNeeded):
+
+2011-01-10 Zhenyao Mo <zmo@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Need to consider UNPACK_ALIGNMENT in GraphicsContext3D::texImage2DResourceSafe
+ https://bugs.webkit.org/show_bug.cgi?id=52068
+
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::copyTexImage2D): Use computeImageSizeInBytes.
+ (WebCore::WebGLRenderingContext::copyTexSubImage2D): Ditto.
+ (WebCore::WebGLRenderingContext::readPixels): Ditto, and fix a bug on generating the wrong error.
+ (WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
+ (WebCore::WebGLRenderingContext::validateTexFuncData): Use computeImageSizeInBytes.
+ * platform/graphics/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3D::texImage2DResourceSafe): Add a new parameter alignment.
+ (WebCore::GraphicsContext3D::computeFormatAndTypeParameters): Add more supported format/type.
+ (WebCore::GraphicsContext3D::computeImageSizeInBytes): Added.
+ * platform/graphics/GraphicsContext3D.h:
+
+2011-01-10 Enrica Casucci <enrica@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Paste and drag and drop use different code paths to interact with the pasteboard.
+ https://bugs.webkit.org/show_bug.cgi?id=52093
+ The change consists in a refactoring of the code to have only one class that
+ deals with the pasteboard on Mac.
+
+ No new tests. A test is already available for this
+ (editing/pasteboard/drag-image-to-contenteditable-in-iframe.html) but had incorrect results.
+
+ * WebCore.exp.in:
+ * loader/EmptyClients.h: Added two Mac only methods to call into WebKit to use functionality
+ that is in NSURLExtras.
+ (WebCore::EmptyEditorClient::canonicalizeURL):
+ (WebCore::EmptyEditorClient::canonicalizeURLString):
+ * page/DragController.cpp:
+ The following methods have been changed to pass a pointer to the Frame object
+ to the DragData class.
+ (WebCore::documentFragmentFromDragData):
+ (WebCore::DragController::performDrag):
+ (WebCore::DragController::dispatchTextInputEventFor):
+ (WebCore::DragController::concludeEditDrag):
+ * page/EditorClient.h: Added two Mac only methods to call into WebKit to use functionality
+ that is in NSURLExtras.
+ The following files have been modified to pass the Frame object to the DragData method calls.
+ * page/chromium/DragControllerChromium.cpp:
+ (WebCore::DragController::dragOperation):
+ * page/gtk/DragControllerGtk.cpp:
+ (WebCore::DragController::dragOperation):
+ * page/mac/DragControllerMac.mm:
+ (WebCore::DragController::dragOperation):
+ * page/qt/DragControllerQt.cpp:
+ (WebCore::DragController::dragOperation):
+ * page/win/DragControllerWin.cpp:
+ (WebCore::DragController::dragOperation):
+ * platform/DragData.h: Removed Mac specific constructor and reference to PasteboardHelper class.
+ * platform/Pasteboard.h: Added public constructor to create a Pasteboard object from an NSPasteboard.
+ The following files were all modified to match the new parameters of the methods listed.
+ * platform/android/DragDataAndroid.cpp:
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ * platform/chromium/DragDataChromium.cpp:
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::asFragment):
+ * platform/gtk/DragDataGtk.cpp:
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ * platform/haiku/DragDataHaiku.cpp:
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ * platform/mac/DragDataMac.mm:
+ (WebCore::DragData::DragData):
+ (WebCore::DragData::asPlainText):
+ (WebCore::insertablePasteboardTypes):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ * platform/mac/PasteboardMac.mm:
+ (WebCore::Pasteboard::getBestURL):
+ (WebCore::Pasteboard::asURL):
+ * platform/qt/DragDataQt.cpp:
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+ * platform/win/DragDataWin.cpp:
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsCompatibleContent):
+ (WebCore::DragData::asFragment):
+ * platform/wince/DragDataWinCE.cpp:
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::asFragment):
+ * platform/wx/DragDataWx.cpp:
+ (WebCore::DragData::asPlainText):
+ (WebCore::DragData::containsURL):
+ (WebCore::DragData::asURL):
+ (WebCore::DragData::asFragment):
+
+2011-01-11 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ RefPtr text node in setOuterText since calling appendData
+ on a text node can fire away dom event listener which might
+ remove the text node from underneath.
+ https://bugs.webkit.org/show_bug.cgi?id=52163
+
+ Test: fast/dom/text-node-append-data-remove-crash.html
+
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::setOuterText):
+
+2011-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Add support for <meter> element
+ https://bugs.webkit.org/show_bug.cgi?id=48713
+
+ * GNUmakefile.am: Enable meter element.
+
+2011-01-11 Csaba Osztrogonác <ossy@webkit.org>
+
+ Unreviewed buildfix.
+
+ [Qt][V8] Add missing include for debug build.
+
+ * loader/cache/CachedResourceLoader.cpp:
+
+2011-01-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: redirects are lost from the network panel upon navigation.
+ https://bugs.webkit.org/show_bug.cgi?id=52210
+
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager.prototype.didCommitLoadForFrame):
+
+2011-01-11 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Remove uses of QFuture since it isn't supported on all platforms.
+ https://bugs.webkit.org/show_bug.cgi?id=51204
+
+ * platform/network/qt/QtNAMThreadSafeProxy.cpp:
+ (WebCore::QtNAMThreadSafeProxy::QtNAMThreadSafeProxy):
+ (WebCore::QtNAMThreadSafeProxy::localCookiesForUrl):
+ (WebCore::QtNAMThreadSafeProxy::localWillLoadFromCache):
+ * platform/network/qt/QtNAMThreadSafeProxy.h:
+ (WebCore::QtNAMThreadSafeProxy::cookiesForUrl):
+ (WebCore::QtNAMThreadSafeProxy::willLoadFromCache):
+
+2011-01-11 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: recreate script view after live edit.
+ https://bugs.webkit.org/show_bug.cgi?id=51751
+
+ * inspector/front-end/Script.js:
+ (WebInspector.Script.prototype.set source):
+ * inspector/front-end/ScriptView.js:
+ (WebInspector.ScriptView):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
+ (WebInspector.ScriptsPanel.prototype.editScriptSource):
+ (WebInspector.ScriptsPanel.prototype.viewRecreated):
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame.prototype._doEditLine):
+
+2011-01-11 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: frameDetachedFromParent notification handler is missing in NetworkManager.
+ https://bugs.webkit.org/show_bug.cgi?id=52205
+
+ * inspector/front-end/NetworkManager.js:
+ (WebInspector.NetworkManager.prototype.frameDetachedFromParent):
+
+2011-01-11 Alexander Pavlov <apavlov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: "Audit present state" always disabled
+ https://bugs.webkit.org/show_bug.cgi?id=52199
+
+ Removed all traces of resource tracking checks, as we have it no more.
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/AuditLauncherView.js:
+ (WebInspector.AuditLauncherView.prototype._createLauncherUI):
+ * inspector/front-end/AuditsPanel.js:
+
+2011-01-11 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: move delayed search implementation to SourceFrame.
+ https://bugs.webkit.org/show_bug.cgi?id=51753
+
+ * inspector/front-end/SourceFrame.js:
+ (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
+ (WebInspector.SourceFrame.prototype.findSearchMatches):
+ (WebInspector.SourceFrame.prototype.cancelFindSearchMatches):
+ * inspector/front-end/SourceView.js:
+ (WebInspector.SourceView.prototype.hide):
+ (WebInspector.SourceView.prototype.searchCanceled):
+ (WebInspector.SourceView.prototype.performSearch.didFindSearchMatches):
+ (WebInspector.SourceView.prototype.performSearch):
+
+2011-01-11 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: innerFirstChild has a side effect which should be called explicitly.
+
+ If a node is a frame's owner then innerFirstChild method
+ subscribes DOMAgent instance to the frame's doc's events.
+ I think this should be done explicitly when we meet with
+ the node for the first time. As I understand it happens
+ in buildArrayForContainerChildren method.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52204
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::startListeningFrameDoc):
+ (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
+ (WebCore::InspectorDOMAgent::innerFirstChild):
+ * inspector/InspectorDOMAgent.h:
+
+2011-01-11 Adam Roben <aroben@apple.com>
+
+ Delete WKCACFLayer.{cpp,h}
+
+ These have been unused since r75262
+
+ * platform/graphics/win/WKCACFLayer.cpp: Removed.
+ * platform/graphics/win/WKCACFLayer.h: Removed.
+
+2011-01-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: [regression] Cookies view does not allow columns resize.
+ https://bugs.webkit.org/show_bug.cgi?id=51877
+
+ * inspector/front-end/CookieItemsView.js:
+ (WebInspector.CookieItemsView.prototype._updateWithCookies):
+
+2011-01-11 Noel Gordon <noel.gordon@gmail.com>
+
+ Reviewed by James Robinson.
+
+ [chromium] canvas.toDataURL("image/jpeg") should composite onto black.
+ https://bugs.webkit.org/show_bug.cgi?id=51237
+
+ The Canvas specification requires that the canvas image is composited using
+ the Porter-Duff operator source-over onto a black background; the resultant
+ image should be JPEG encoded and returned as a dataURL. To composite image
+ A and background B, for any Porter-Duff operator, produce pixels I with
+
+ I = c(A)F(A) + c(B)F(B)
+
+ where, F(X) is the fraction [0.0-1.0] contributed to the composite by image
+ X, and c(X) are the premultiplied RGB color components of image X. Note by
+ definition, c(B) = 0 since the background is black, so I = c(A)F(A). Since
+ F(A) = 1 in Porter-Duff operator source-over, the composited pixels satisfy
+ I = c(A). Hence, to conform to the Canvas spec, pass the premultiplied RGB
+ color components of the canvas image to the JPEG encoder.
+
+ Covered by canvas/philip/tests/toDataURL.jpeg.alpha.html
+
+ * platform/image-encoders/skia/JPEGImageEncoder.cpp:
+ (WebCore::preMultipliedBGRAtoRGB): Use Porter-Duff source-over black.
+
+2011-01-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Chromium DevTools: get rid of APU-related code in WebKit/chromium.
+ https://bugs.webkit.org/show_bug.cgi?id=52152
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::restoreInspectorStateFromCookie):
+ (WebCore::InspectorController::setInjectedScriptSource):
+ * inspector/InspectorState.cpp:
+ (WebCore::InspectorState::InspectorState):
+ * inspector/InspectorState.h:
+ * inspector/front-end/inspector.js:
+
+2011-01-11 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: [REGRESSION] Load timing is requested
+ for all resources (not only for the main one).
+ https://bugs.webkit.org/show_bug.cgi?id=51749
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::willSendRequest):
+ * loader/ResourceLoadNotifier.cpp:
+ (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
+
+2011-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] GRefPtr should not be used with Gtk widgets
+ https://bugs.webkit.org/show_bug.cgi?id=51241
+
+ GRefPtr breaks the widget life-cycle, the main problem is
+ that GRefPtr calls g_object_unref() when it's destroyed,
+ which is undesirable for widgets. In gtk+ widgets are created with
+ a floating reference and when added to a container, the container
+ takes the ownership of the widget consuming the floating
+ reference. So you don't usually need to call g_object_ref/unref on
+ widgets (only for some operations like reparent a widget) and
+ toplevel widgets are destroyed with gtk_widget_destroy().
+
+ * platform/ContextMenuItem.h:
+ * platform/gtk/ContextMenuGtk.cpp:
+ (WebCore::ContextMenu::ContextMenu):
+ (WebCore::ContextMenu::~ContextMenu):
+ (WebCore::ContextMenu::setPlatformDescription):
+ * platform/gtk/ContextMenuItemGtk.cpp:
+ (WebCore::ContextMenuItem::ContextMenuItem):
+ (WebCore::ContextMenuItem::releasePlatformDescription):
+ (WebCore::ContextMenuItem::type):
+ (WebCore::ContextMenuItem::action):
+ (WebCore::ContextMenuItem::setAction):
+ (WebCore::ContextMenuItem::title):
+ (WebCore::ContextMenuItem::setTitle):
+ (WebCore::ContextMenuItem::platformSubMenu):
+ (WebCore::ContextMenuItem::setSubMenu):
+ (WebCore::ContextMenuItem::setChecked):
+ (WebCore::ContextMenuItem::setEnabled):
+
+2010-10-10 David Hyatt <hyatt@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ https://bugs.webkit.org/show_bug.cgi?id=51119, transformed
+ elements not responding properly to :hover after r73385.
+ Just use the entire document area as the hit test area,
+ since there appears to be a rounding bug/issues with relying
+ on float math when mapping the hit test area into
+ transformed coordinates.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hitTest):
+
+2011-01-10 Stephen White <senorblanco@chromium.org>
+
+ Reviewed by James Robinson.
+
+ Fix canvas->canvas draws on the GPU path.
+ https://bugs.webkit.org/show_bug.cgi?id=52141
+
+ Two problems: according to the canvas spec, both source and
+ destination rects can have negative width or height, but this shouldn't
+ cause the image to be flipped. So we need to normalize the rects (in
+ the software path, this is done by BitmapImage*::draw). Secondly, in
+ the FBO->FBO path, the image needs to be flipped vertically, since it
+ is drawn upside down. We were doing this by flipping the destination
+ rect, but this doesn't work if the source rect is not the entire image,
+ since we extract the wrong part of the image. Fixed by flipping the
+ source rect instead (and flipping it within the image buffer's height,
+ not the source rect's height).
+
+ Covered by fast/canvas/drawImage-with-negative-source-destination.html.
+
+
+ * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
+ Put normalizeRect() in global scope.
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::draw):
+ Fix as above: normalize both source and dest rects, and flip the
+ source rect instead of the dest rect.
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::normalizeRect):
+ Put normalizeRect() in global scope.
+
+2011-01-10 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Csaba Osztrogonác.
+
+ [Qt] Baseline qt_minimal configuration
+ https://bugs.webkit.org/show_bug.cgi?id=51313
+
+ No new tests as there is no new functionality.
+
+ * platform/graphics/qt/GraphicsLayerQt.cpp: Fix the location of the
+ QT_NO_ANIMATION guard.
+
+ * platform/qt/WheelEventQt.cpp:
+ (WebCore::PlatformWheelEvent::applyDelta): Fix the location of the
+ QT_NO_WHEELEVENT guard.
+
+2011-01-10 Joe Mason <jmason@rim.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ WebSockets: unbounded buffer growth when server sends bad data
+ https://bugs.webkit.org/show_bug.cgi?id=51253
+
+ Fail a websocket handshake after 1024 bytes without a newline, or if it
+ contains a null byte before the first newline.
+
+ Tests: http/tests/websocket/tests/handshake-fail-by-maxlength.html
+ http/tests/websocket/tests/handshake-fail-by-prepended-null.html
+
+ * websockets/WebSocketHandshake.cpp:
+ (WebCore::WebSocketHandshake::readStatusLine):
+
+2011-01-10 Adam Barth <abarth@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Introduce the notion of a "display-isolated" URL scheme for use by
+ Chrome-internal URLs
+ https://bugs.webkit.org/show_bug.cgi?id=50182
+
+ This patch adds the basic plumbing for display-isolated URL schemes.
+ Originally, this patch also had the functional change, but I've split
+ that off into a separate patch because the original patch caused a
+ performance regression.
+
+ * page/SecurityOrigin.cpp:
+ (WebCore::SecurityOrigin::canDisplay):
+ * platform/SchemeRegistry.cpp:
+ (WebCore::displayIsolatedURLSchemes):
+ (WebCore::SchemeRegistry::registerURLSchemeAsLocal):
+ (WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
+ (WebCore::SchemeRegistry::localSchemes):
+ (WebCore::SchemeRegistry::deprecatedShouldTreatURLAsLocal):
+ (WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
+ (WebCore::SchemeRegistry::registerURLSchemeAsDisplayIsolated):
+ (WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
+ * platform/SchemeRegistry.h:
+
+2011-01-10 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52095
+ REGRESSION (r75277): 2 test cases (<1%) had incorrect layout
+
+ Fixes tests:
+ fullscreen/full-screen-remove-ancestor.html
+ fullscreen/full-screen-remove.html
+
+ Previously, the above tests were failing because DRT dumped the contents of their
+ <script> tags, though all the explicit tests were passing. This was caused by
+ the document's render tree being left in an inconsistent state when a full screen
+ element's ancestor was removed from the DOM.
+
+ In nodeWillBeRemoved(), match the code in webkitDidExitFullScreen().
+ Don't detach the documentElement, but rather simply call recalcStyle(Force).
+
+ * dom/Document.cpp:
+ (WebCore::Document::nodeWillBeRemoved):
+ * rendering/RenderFullScreen.cpp:
+ (RenderFullScreen::setAnimating): #if ENABLED -> # if USE
+ * rendering/RenderFullScreen.h:
+ (WebCore::RenderFullScreen::RenderFullScreen): RenderFullScreen should be an anonymous renderer.
+
+2011-01-10 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Remove use of deprecated GTK+ methods before the 1.3.10 release
+ https://bugs.webkit.org/show_bug.cgi?id=52173
+
+ No new tests. This is only a build fix.
+
+ * platform/gtk/GRefPtrGtk.cpp: Guard the GdkCursor specialization against GTK+ 3.x.
+ In GTK+ 3.x, GdkCursor is just a GObject.
+ * platform/gtk/GRefPtrGtk.h: Ditto.
+
+2011-01-10 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Moved Collector.* => Heap.*, since the file contains a class named "Heap".
+
+ * ForwardingHeaders/runtime/Collector.h: Removed.
+ * ForwardingHeaders/runtime/Heap.h: Copied from WebCore/ForwardingHeaders/runtime/Collector.h.
+ * WebCore.vcproj/WebCore.vcproj:
+ * bindings/js/GCController.cpp:
+ * bindings/js/ScriptGCEvent.cpp:
+
+2011-01-10 Leonid Ebril <leonid.ebril@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=51879
+
+ Set the PluginQuirkDontSetNullWindowHandleOnDestroy for Adobe Lite
+ plugin if Flash 10 or newer (for Symbian platform), setting a nulled
+ window handler on destroy crashes WebKit.
+
+ * plugins/symbian/PluginPackageSymbian.cpp:
+ (WebCore::PluginPackage::fetchInfo):
+ (WebCore::PluginPackage::determineQuirks):
+
+2011-01-10 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Remove unecessary RenderThemeGtk and WidgetRenderingContext code
+ https://bugs.webkit.org/show_bug.cgi?id=52170
+
+ Remove unnecessary code from RenderThemeGtk3 and RenderThemeGtk now that the
+ GtkStyleContext port is complete. Also remove WidgetRenderingContextGtk3 and
+ move WidgetRenderingRenderingContextGtk2 to WidgetRenderingContext and make it
+ GTK+ 2.x only. Some methods have been moved to RenderThemeGtk2 since they are
+ GTK+ 2.x only now.
+
+ No new tests. This should not change functionality.
+
+ * GNUmakefile.am: Remove WidgetRenderingContextGtk3 and gtk3drawing.c
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::RenderThemeGtk::RenderThemeGtk):
+ (WebCore::gtkIconState): Made this method static. It isn't used outside RenderThemeGtk.
+ (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration): Updated to refelct gtkIconState change.
+ (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): Ditto.
+ (WebCore::RenderThemeGtk::paintMediaButton): Ditto
+ * platform/gtk/RenderThemeGtk.h: Move a few methods which are now GTK+ 2.x only.
+ * platform/gtk/RenderThemeGtk2.cpp:
+ (WebCore::RenderThemeGtk::platformInit): Added this platform initialization method
+ that is only used for GTK+ 2.x at the moment.
+ (WebCore::RenderThemeGtk::~RenderThemeGtk): Added.
+ (WebCore::getGtkStateType): Made this method static.
+ (WebCore::RenderThemeGtk::getIndicatorMetrics): Moved this here from RenderThemeGtk.
+ (WebCore::setToggleSize): Updated to reflect changes to getGtkStateType.
+ (WebCore::RenderThemeGtk::paintButton): Ditto.
+ (WebCore::RenderThemeGtk::paintSliderTrack): Ditto.
+ (WebCore::RenderThemeGtk::paintSliderThumb): Ditto.
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::gtkScrollbarStyle): Moved to the top of the file.
+ (WebCore::RenderThemeGtk::platformInit): Added.
+ (WebCore::RenderThemeGtk::~RenderThemeGtk): Added.
+ (WebCore::RenderThemeGtk::initMediaColors): Changed to use the GtkStyleContext API to
+ fetch these colors. This was the last dependency on the old API.
+ * platform/gtk/WidgetRenderingContext.cpp: Renamed from Source/WebCore/platform/gtk/WidgetRenderingContextGtk2.cpp.
+ * platform/gtk/WidgetRenderingContext.h: Made GTK+ 2.x only.
+ * platform/gtk/WidgetRenderingContextGtk3.cpp: Removed.
+ * platform/gtk/gtk3drawing.c: Removed.
+ * platform/gtk/gtkdrawing.h: Made GTK+ 2.x only.
+
+2011-01-10 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Navigator.cookiesEnabled return true for Qt even if there is no cookie jar
+ https://bugs.webkit.org/show_bug.cgi?id=52081
+
+ Test for the availability of cookie jar to return if cookies are enabled or not.
+
+ * platform/qt/CookieJarQt.cpp:
+ (WebCore::cookiesEnabled):
+
+2011-01-10 W. James MacLean <wjmaclean@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ [chromium] Enable reuse of RenderSurface for drawing.
+ https://bugs.webkit.org/show_bug.cgi?id=51928
+
+ Modifies RenderSurfaceChromium::prepareContentsTexture to avoid trying to 'reserve' a texture
+ that is already reserved, should an attempt be made to re-select a previously drawn render surface
+ in order to continue drawing to it. This use case appears when compositing into an offscreen texture.
+
+ Covered by existing test (compositing/geometry/fixed-position.html) when offscreen compositing enabled.
+
+ * platform/graphics/chromium/LayerTexture.h:
+ (WebCore::LayerTexture::isReserved):
+ * platform/graphics/chromium/RenderSurfaceChromium.cpp:
+ (WebCore::RenderSurfaceChromium::prepareContentsTexture):
+ * platform/graphics/chromium/TextureManager.cpp:
+ (WebCore::TextureManager::isProtected):
+ * platform/graphics/chromium/TextureManager.h:
+
+2011-01-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Port combo box painting to GtkStyleContext
+ https://bugs.webkit.org/show_bug.cgi?id=51828
+
+ Use GtkStyleContext API to paint combo boxes when building with
+ GTK+ 3.x. Method paintButton() has been factored out and the new
+ static method renderButton() is used by both paintButton() and
+ paintMenuList().
+
+ No new tests. This should not change functionality.
+
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::adjustRepaintRect):
+ (WebCore::renderButton):
+ (WebCore::RenderThemeGtk::paintButton):
+ (WebCore::getComboBoxMetrics):
+ (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
+ (WebCore::RenderThemeGtk::popupInternalPaddingRight):
+ (WebCore::RenderThemeGtk::popupInternalPaddingTop):
+ (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
+ (WebCore::RenderThemeGtk::paintMenuList):
+
+2011-01-10 Evan Martin <evan@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] simplify complex glyph positioning code
+ https://bugs.webkit.org/show_bug.cgi?id=52159
+
+ Before, we had roughly same code duplicated for RTL and LTR.
+ Now, use the same code for both directions by being careful about
+ flipping signs where appropriate.
+
+ * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
+ (WebCore::ComplexTextController::shapeGlyphs):
+ (WebCore::ComplexTextController::setGlyphXPositions):
+
+2011-01-10 Alejandro G. Castro <alex@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Fix gtk2 compilation for master
+ https://bugs.webkit.org/show_bug.cgi?id=51885
+
+ * platform/gtk/GtkVersioning.h: Replaced the 2.24.0 check with
+ 2.23.0 to avoid using the old symbols in the 2.23 releases. Added
+ support for gdk_pixmap_get_size before the 2.23.4.
+ * platform/gtk/WidgetRenderingContextGtk2.cpp:
+ (WebCore::WidgetRenderingContext::WidgetRenderingContext):
+ Replaced the old gdk_drawable_get_size with gdk_pixmap_get_size.
+
+2011-01-10 Ryosuke Niwa <rniwa@webkit.org>
+
+ Unreviewed; build fix for r75385.
+
+ * rendering/mathml/RenderMathMLFraction.cpp:
+ (WebCore::RenderMathMLFraction::paint):
+
+2011-01-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r75341.
+ http://trac.webkit.org/changeset/75341
+ https://bugs.webkit.org/show_bug.cgi?id=52157
+
+ Regressions on several pixel tests (Requested by jorlow on
+ #webkit).
+
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::fillPath):
+
+2011-01-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Port check and radio button painting to GtkStyleContext
+ https://bugs.webkit.org/show_bug.cgi?id=51815
+
+ Use GtkStyleContext API to paint check and radio buttons when
+ building with GTK+ 3.x.
+
+ No new tests. This should not change functionality.
+
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::adjustRepaintRect):
+ (WebCore::setToggleSize):
+ (WebCore::paintToggle):
+ (WebCore::RenderThemeGtk::setCheckboxSize):
+ (WebCore::RenderThemeGtk::paintCheckbox):
+ (WebCore::RenderThemeGtk::setRadioSize):
+ (WebCore::RenderThemeGtk::paintRadio):
+
+2011-01-10 François Sausset <sausset@gmail.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ MathML: vertical alignment & bar thickness adjustments of fractions.
+ https://bugs.webkit.org/show_bug.cgi?id=50018
+
+ The fraction bar thickness default value should follow the w3c MathML 3 recommendation:
+ http://www.w3.org/TR/MathML3/chapter3.html#presm.mfrac
+ The vertical alignment of the fraction bar should be more accurate, specially with operators (+,=,...).
+
+ Test: mathml/presentation/fractions.xhtml
+
+ * rendering/mathml/RenderMathMLFraction.cpp:
+ (WebCore::RenderMathMLFraction::RenderMathMLFraction):
+ (WebCore::RenderMathMLFraction::updateFromElement):
+ (WebCore::RenderMathMLFraction::layout):
+ (WebCore::RenderMathMLFraction::paint):
+ (WebCore::RenderMathMLFraction::baselinePosition):
+ * rendering/mathml/RenderMathMLFraction.h:
+
+2011-01-10 Antti Koivisto <antti@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52044
+ REGRESSION(r74807): No-store is ignored within a document
+
+ Don't use cached resources with Cache-control: no-store (unless cache policy is CachePolicyHistoryBuffer).
+ This matches a behavior that got lost in r74807.
+
+ Test: http/tests/misc/script-no-store.html
+ (by Alexey Proskuryakov)
+
+ * loader/cache/CachedResourceLoader.cpp:
+ (WebCore::CachedResourceLoader::determineRevalidationPolicy):
+
+2011-01-10 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Laszlo Gombos.
+
+ [WIN] Add ProxyServerWin.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=52031
+
+ Add stub implementation to fix ENABLE_NETSCAPE_PLUGIN_API on WinCE.
+
+ * CMakeLists.txt:
+ * CMakeListsWinCE.txt:
+ * platform/network/win/ProxyServerWin.cpp: Added.
+ (WebCore::proxyServersForURL):
+
+2011-01-10 Alejandro G. Castro <alex@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [cairo] Rendering a lot of arcs on top of each other causes time
+ outs in some tests
+ https://bugs.webkit.org/show_bug.cgi?id=50869
+
+ We avoid the situation where we have to render the same arc
+ multiple times over itself. Now it renders just one oval and
+ moves to the end angle.
+
+ * platform/graphics/cairo/PathCairo.cpp:
+ (WebCore::Path::addArc):
+
+2011-01-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Port text input control painting to GtkStyleContext
+ https://bugs.webkit.org/show_bug.cgi?id=51870
+
+ Use GtkStyleContext API to paint text input controls when building
+ with GTK+ 3.x.
+
+ No new tests. This should not change functionality.
+
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::adjustRepaintRect):
+ (WebCore::RenderThemeGtk::paintTextField):
+
+2011-01-09 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Forward declare some headers where possible
+ https://bugs.webkit.org/show_bug.cgi?id=52133
+
+ No new tests because no new functionality.
+
+ * css/CSSValue.h:
+ * dom/BeforeLoadEvent.h:
+ * dom/Event.cpp:
+ * dom/Event.h:
+ * dom/StyledElement.cpp:
+ * dom/StyledElement.h:
+ * loader/DocumentLoader.h:
+ * loader/FrameLoader.h:
+ * page/Frame.h:
+ * platform/graphics/GraphicsContext.cpp:
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/filters/FEBlend.cpp:
+ * platform/graphics/filters/FEColorMatrix.cpp:
+ * platform/graphics/filters/FEComponentTransfer.cpp:
+ * platform/graphics/filters/FEComposite.cpp:
+ * platform/graphics/filters/FEConvolveMatrix.cpp:
+ * platform/graphics/filters/FEDiffuseLighting.cpp:
+ * platform/graphics/filters/FEDisplacementMap.cpp:
+ * platform/graphics/filters/FEFlood.cpp:
+ * platform/graphics/filters/FEGaussianBlur.cpp:
+ * platform/graphics/filters/FEMerge.cpp:
+ * platform/graphics/filters/FEMorphology.cpp:
+ * platform/graphics/filters/FEOffset.cpp:
+ * platform/graphics/filters/FESpecularLighting.cpp:
+ * platform/graphics/filters/FETile.cpp:
+ * platform/graphics/filters/FETurbulence.cpp:
+ * platform/graphics/filters/FilterEffect.cpp:
+ * platform/graphics/filters/FilterEffect.h:
+ * platform/graphics/filters/SourceAlpha.cpp:
+ * platform/graphics/filters/SourceGraphic.cpp:
+ * svg/SVGElement.cpp:
+ * svg/SVGElement.h:
+ * svg/SVGFEBlendElement.cpp:
+ * svg/SVGFEColorMatrixElement.cpp:
+ * svg/SVGFEComponentTransferElement.cpp:
+ * svg/SVGFECompositeElement.cpp:
+ * svg/SVGFEConvolveMatrixElement.cpp:
+ * svg/SVGFEConvolveMatrixElement.h:
+ * svg/SVGFEDiffuseLightingElement.cpp:
+ * svg/SVGFEDisplacementMapElement.cpp:
+ * svg/SVGFEGaussianBlurElement.cpp:
+ * svg/SVGFEImageElement.h:
+ * svg/SVGFEMergeElement.cpp:
+ * svg/SVGFEMorphologyElement.cpp:
+ * svg/SVGFEOffsetElement.cpp:
+ * svg/SVGFESpecularLightingElement.cpp:
+ * svg/SVGFETileElement.cpp:
+ * svg/SVGFETurbulenceElement.h:
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+ * svg/SVGTextContentElement.cpp:
+ * svg/graphics/filters/SVGFEImage.cpp:
+ * svg/graphics/filters/SVGFEImage.h:
+
+2011-01-10 Adam Roben <aroben@apple.com>
+
+ Windows build fix after r75313
+
+ * WebCore.vcproj/build-generated-files.sh: Updated for the change in
+ this script's path.
+
+2011-01-10 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: make properties on Array's prototype non-enumerable.
+ https://bugs.webkit.org/show_bug.cgi?id=51776
+
+ * inspector/front-end/utilities.js:
+ ():
+
+2011-01-10 Yael Aharon <yael.aharon@nokia.com>
+
+ Reviewed by Simon Fraser.
+
+ Specificity of negated selectors apparently miscalculated
+ https://bugs.webkit.org/show_bug.cgi?id=41206
+
+ Give negated selectors the specificity of the selector they are negating.
+ This is the same as the behavior of other browsers.
+
+ Test: fast/css/pseudo-not.html
+
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::specificityForOneSelector):
+
+2011-01-10 Adam Roben <aroben@apple.com>
+
+ Windows build fix after r75353
+
+ * WebCore.vcproj/WebCoreCommon.vsprops: Added rendering/mathml to the
+ include path.
+
+2011-01-10 John Knottenbelt <jknotten@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ [Chromium] Remove non-client-based Geolocation code
+ https://bugs.webkit.org/show_bug.cgi?id=50921
+
+ Code clean up, covered by existing tests.
+
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * platform/chromium/ChromiumBridge.h:
+ * platform/chromium/GeolocationServiceChromium.cpp: Removed.
+ * platform/chromium/GeolocationServiceChromium.h: Removed.
+
+2011-01-10 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: protocol related change. Rename stepIntoStatement, stepOutOfFunction, stepOverStatement.
+ stepIntoStatement => stepInto
+ stepOutOfFunction => stepOut
+ stepOverStatement => stepOver
+
+ https://bugs.webkit.org/show_bug.cgi?id=52142
+
+ * inspector/Inspector.idl:
+ * inspector/InspectorDebuggerAgent.cpp:
+ (WebCore::InspectorDebuggerAgent::stepOver):
+ (WebCore::InspectorDebuggerAgent::stepInto):
+ (WebCore::InspectorDebuggerAgent::stepOut):
+ * inspector/InspectorDebuggerAgent.h:
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._stepOverClicked):
+ (WebInspector.ScriptsPanel.prototype._stepIntoClicked):
+ (WebInspector.ScriptsPanel.prototype._stepOutClicked):
+
+2011-01-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Port progressbar painting to GtkStyleContext
+ https://bugs.webkit.org/show_bug.cgi?id=52054
+
+ Use GtkStyleContext API to paint progressbars when building with
+ GTK+ 3.x. Also add support for indeterminate progressbars.
+
+ No new tests. This should not change functionality.
+
+ * platform/gtk/RenderThemeGtk.cpp:
+ * platform/gtk/RenderThemeGtk2.cpp:
+ (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
+ (WebCore::RenderThemeGtk::animationDurationForProgressBar):
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
+ (WebCore::RenderThemeGtk::animationDurationForProgressBar):
+ (WebCore::RenderThemeGtk::paintProgressBar):
+
+2011-01-10 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Remove unused class "Pen" in WebCore/platform/graphics
+ https://bugs.webkit.org/show_bug.cgi?id=49955
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/graphics/Pen.cpp: Removed.
+ * platform/graphics/Pen.h: Removed.
+ * platform/graphics/haiku/GraphicsContextHaiku.cpp:
+ * platform/graphics/wx/GraphicsContextWx.cpp:
+ * platform/graphics/wx/PenWx.cpp: Removed.
+
+2011-01-10 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Create intermediate libWebCore library
+ https://bugs.webkit.org/show_bug.cgi?id=52116
+
+ Create intermediate libWebCore.la to avoid overflowing the linker
+ in the final link stage.
+
+ * GNUmakefile.am: define the new library.
+
+2011-01-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r75337.
+ http://trac.webkit.org/changeset/75337
+ https://bugs.webkit.org/show_bug.cgi?id=52137
+
+ It made fast/dom/navigator-detached-no-crash.html crash
+ (Requested by Ossy on #webkit).
+
+ * platform/qt/CookieJarQt.cpp:
+ (WebCore::cookiesEnabled):
+
+2011-01-09 Mark Rowe <mrowe@apple.com>
+
+ Fix the build.
+
+ * WebCore.xcodeproj/project.pbxproj: Copy SVGResourcesCache.h in to PrivateHeaders
+ once more.
+
+2011-01-09 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/8765555> WebKit2: Search field focus ring is missing
+
+ Provide a focus ring visible rect to AppKit.
+
+ * platform/mac/ThemeMac.mm:
+ (-[WebCoreFlippedView _focusRingVisibleRect]):
+ (-[WebCoreFlippedView _focusRingClipAncestor]):
+
+2011-01-09 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Rob Buis.
+
+ Move MathML renderer to rendering/mathml
+ https://bugs.webkit.org/show_bug.cgi?id=52131
+
+ Move all renderer of MathML to WebCore/rendering/mathml
+
+ No change of functionality, no new tests added.
+
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * mathml/RenderMathMLBlock.cpp: Removed.
+ * mathml/RenderMathMLBlock.h: Removed.
+ * mathml/RenderMathMLFenced.cpp: Removed.
+ * mathml/RenderMathMLFenced.h: Removed.
+ * mathml/RenderMathMLFraction.cpp: Removed.
+ * mathml/RenderMathMLFraction.h: Removed.
+ * mathml/RenderMathMLMath.cpp: Removed.
+ * mathml/RenderMathMLMath.h: Removed.
+ * mathml/RenderMathMLOperator.cpp: Removed.
+ * mathml/RenderMathMLOperator.h: Removed.
+ * mathml/RenderMathMLRoot.cpp: Removed.
+ * mathml/RenderMathMLRoot.h: Removed.
+ * mathml/RenderMathMLRow.cpp: Removed.
+ * mathml/RenderMathMLRow.h: Removed.
+ * mathml/RenderMathMLSquareRoot.cpp: Removed.
+ * mathml/RenderMathMLSquareRoot.h: Removed.
+ * mathml/RenderMathMLSubSup.cpp: Removed.
+ * mathml/RenderMathMLSubSup.h: Removed.
+ * mathml/RenderMathMLUnderOver.cpp: Removed.
+ * mathml/RenderMathMLUnderOver.h: Removed.
+ * rendering/mathml: Added.
+ * rendering/mathml/RenderMathMLBlock.cpp: Copied from Source/WebCore/mathml/RenderMathMLBlock.cpp.
+ * rendering/mathml/RenderMathMLBlock.h: Copied from Source/WebCore/mathml/RenderMathMLBlock.h.
+ * rendering/mathml/RenderMathMLFenced.cpp: Copied from Source/WebCore/mathml/RenderMathMLFenced.cpp.
+ * rendering/mathml/RenderMathMLFenced.h: Copied from Source/WebCore/mathml/RenderMathMLFenced.h.
+ * rendering/mathml/RenderMathMLFraction.cpp: Copied from Source/WebCore/mathml/RenderMathMLFraction.cpp.
+ * rendering/mathml/RenderMathMLFraction.h: Copied from Source/WebCore/mathml/RenderMathMLFraction.h.
+ * rendering/mathml/RenderMathMLMath.cpp: Copied from Source/WebCore/mathml/RenderMathMLMath.cpp.
+ * rendering/mathml/RenderMathMLMath.h: Copied from Source/WebCore/mathml/RenderMathMLMath.h.
+ * rendering/mathml/RenderMathMLOperator.cpp: Copied from Source/WebCore/mathml/RenderMathMLOperator.cpp.
+ * rendering/mathml/RenderMathMLOperator.h: Copied from Source/WebCore/mathml/RenderMathMLOperator.h.
+ * rendering/mathml/RenderMathMLRoot.cpp: Copied from Source/WebCore/mathml/RenderMathMLRoot.cpp.
+ * rendering/mathml/RenderMathMLRoot.h: Copied from Source/WebCore/mathml/RenderMathMLRoot.h.
+ * rendering/mathml/RenderMathMLRow.cpp: Copied from Source/WebCore/mathml/RenderMathMLRow.cpp.
+ * rendering/mathml/RenderMathMLRow.h: Copied from Source/WebCore/mathml/RenderMathMLRow.h.
+ * rendering/mathml/RenderMathMLSquareRoot.cpp: Copied from Source/WebCore/mathml/RenderMathMLSquareRoot.cpp.
+ * rendering/mathml/RenderMathMLSquareRoot.h: Copied from Source/WebCore/mathml/RenderMathMLSquareRoot.h.
+ * rendering/mathml/RenderMathMLSubSup.cpp: Copied from Source/WebCore/mathml/RenderMathMLSubSup.cpp.
+ * rendering/mathml/RenderMathMLSubSup.h: Copied from Source/WebCore/mathml/RenderMathMLSubSup.h.
+ * rendering/mathml/RenderMathMLUnderOver.cpp: Copied from Source/WebCore/mathml/RenderMathMLUnderOver.cpp.
+ * rendering/mathml/RenderMathMLUnderOver.h: Copied from Source/WebCore/mathml/RenderMathMLUnderOver.h.
+
+2011-01-08 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ HTMLStyleElement.disabled doesn't work (affects jQuery)
+ https://bugs.webkit.org/show_bug.cgi?id=25287
+
+ Fix the disabled property of a HTMLStyleElement to reflect,
+ and set the disabled state of its style sheet, as required
+ by DOM1 etc.
+
+ Based on initial patch by Tarun Nainani.
+
+ Test: fast/html/disable-style-element.html
+
+ * dom/StyleElement.h:
+ (WebCore::StyleElement::sheet): Make const.
+
+ * html/HTMLStyleElement.h:
+ * html/HTMLStyleElement.idl:
+ * html/HTMLStyleElement.cpp:
+ (WebCore::HTMLStyleElement::disabled):
+ (WebCore::HTMLStyleElement::setDisabled): Getter and setter for disabled
+ call through to the sheet (if any).
+
+2011-01-09 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Rename RenderForeignObject to RenderSVGForeignObject
+ https://bugs.webkit.org/show_bug.cgi?id=52129
+
+ Rename RenderForeignObject to RenderSVGForeignObject to match the naming schema in render/svg.
+
+ No change of functionality, no new tests.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * rendering/RenderingAllInOne.cpp:
+ * rendering/svg/RenderForeignObject.cpp: Removed.
+ * rendering/svg/RenderForeignObject.h: Removed.
+ * rendering/svg/RenderSVGAllInOne.cpp:
+ * rendering/svg/RenderSVGBlock.cpp:
+ (WebCore::RenderSVGBlock::updateBoxModelInfoFromStyle):
+ * rendering/svg/RenderSVGForeignObject.cpp: Copied from Source/WebCore/rendering/svg/RenderForeignObject.cpp.
+ (WebCore::RenderSVGForeignObject::RenderSVGForeignObject):
+ (WebCore::RenderSVGForeignObject::~RenderSVGForeignObject):
+ (WebCore::RenderSVGForeignObject::paint):
+ (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
+ (WebCore::RenderSVGForeignObject::computeRectForRepaint):
+ (WebCore::RenderSVGForeignObject::localToParentTransform):
+ (WebCore::RenderSVGForeignObject::computeLogicalWidth):
+ (WebCore::RenderSVGForeignObject::computeLogicalHeight):
+ (WebCore::RenderSVGForeignObject::layout):
+ (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
+ (WebCore::RenderSVGForeignObject::nodeAtPoint):
+ (WebCore::RenderSVGForeignObject::mapLocalToContainer):
+ * rendering/svg/RenderSVGForeignObject.h: Copied from Source/WebCore/rendering/svg/RenderForeignObject.h.
+ (WebCore::RenderSVGForeignObject::renderName):
+ * svg/SVGForeignObjectElement.cpp:
+ (WebCore::SVGForeignObjectElement::createRenderer):
+
+2011-01-09 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Move all SVG renderer to WebCore/rendering/svg
+ https://bugs.webkit.org/show_bug.cgi?id=52087
+
+ No change of functionality. Just moved all SVG renderer to WebCore/rendering/svg.
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vjproj/project.vjproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * rendering/RenderForeignObject.cpp: Removed.
+ * rendering/RenderForeignObject.h: Removed.
+ * rendering/RenderSVGAllInOne.cpp: Removed.
+ * rendering/RenderSVGBlock.cpp: Removed.
+ * rendering/RenderSVGBlock.h: Removed.
+ * rendering/RenderSVGContainer.cpp: Removed.
+ * rendering/RenderSVGContainer.h: Removed.
+ * rendering/RenderSVGGradientStop.cpp: Removed.
+ * rendering/RenderSVGGradientStop.h: Removed.
+ * rendering/RenderSVGHiddenContainer.cpp: Removed.
+ * rendering/RenderSVGHiddenContainer.h: Removed.
+ * rendering/RenderSVGImage.cpp: Removed.
+ * rendering/RenderSVGImage.h: Removed.
+ * rendering/RenderSVGModelObject.cpp: Removed.
+ * rendering/RenderSVGModelObject.h: Removed.
+ * rendering/RenderSVGResource.cpp: Removed.
+ * rendering/RenderSVGResource.h: Removed.
+ * rendering/RenderSVGResourceClipper.cpp: Removed.
+ * rendering/RenderSVGResourceClipper.h: Removed.
+ * rendering/RenderSVGResourceContainer.cpp: Removed.
+ * rendering/RenderSVGResourceContainer.h: Removed.
+ * rendering/RenderSVGResourceFilter.cpp: Removed.
+ * rendering/RenderSVGResourceFilter.h: Removed.
+ * rendering/RenderSVGResourceFilterPrimitive.cpp: Removed.
+ * rendering/RenderSVGResourceFilterPrimitive.h: Removed.
+ * rendering/RenderSVGResourceGradient.cpp: Removed.
+ * rendering/RenderSVGResourceGradient.h: Removed.
+ * rendering/RenderSVGResourceLinearGradient.cpp: Removed.
+ * rendering/RenderSVGResourceLinearGradient.h: Removed.
+ * rendering/RenderSVGResourceMarker.cpp: Removed.
+ * rendering/RenderSVGResourceMarker.h: Removed.
+ * rendering/RenderSVGResourceMasker.cpp: Removed.
+ * rendering/RenderSVGResourceMasker.h: Removed.
+ * rendering/RenderSVGResourcePattern.cpp: Removed.
+ * rendering/RenderSVGResourcePattern.h: Removed.
+ * rendering/RenderSVGResourceRadialGradient.cpp: Removed.
+ * rendering/RenderSVGResourceRadialGradient.h: Removed.
+ * rendering/RenderSVGResourceSolidColor.cpp: Removed.
+ * rendering/RenderSVGResourceSolidColor.h: Removed.
+ * rendering/RenderSVGRoot.cpp: Removed.
+ * rendering/RenderSVGRoot.h: Removed.
+ * rendering/RenderSVGShadowTreeRootContainer.cpp: Removed.
+ * rendering/RenderSVGShadowTreeRootContainer.h: Removed.
+ * rendering/RenderSVGTransformableContainer.cpp: Removed.
+ * rendering/RenderSVGTransformableContainer.h: Removed.
+ * rendering/RenderSVGViewportContainer.cpp: Removed.
+ * rendering/RenderSVGViewportContainer.h: Removed.
+ * rendering/SVGImageBufferTools.cpp: Removed.
+ * rendering/SVGImageBufferTools.h: Removed.
+ * rendering/SVGMarkerData.h: Removed.
+ * rendering/SVGMarkerLayoutInfo.cpp: Removed.
+ * rendering/SVGMarkerLayoutInfo.h: Removed.
+ * rendering/SVGRenderSupport.cpp: Removed.
+ * rendering/SVGRenderSupport.h: Removed.
+ * rendering/SVGRenderTreeAsText.cpp: Removed.
+ * rendering/SVGRenderTreeAsText.h: Removed.
+ * rendering/SVGResources.cpp: Removed.
+ * rendering/SVGResources.h: Removed.
+ * rendering/SVGResourcesCache.cpp: Removed.
+ * rendering/SVGResourcesCache.h: Removed.
+ * rendering/SVGResourcesCycleSolver.cpp: Removed.
+ * rendering/SVGResourcesCycleSolver.h: Removed.
+ * rendering/SVGShadowTreeElements.cpp: Removed.
+ * rendering/SVGShadowTreeElements.h: Removed.
+ * rendering/svg/RenderForeignObject.cpp: Copied from Source/WebCore/rendering/RenderForeignObject.cpp.
+ * rendering/svg/RenderForeignObject.h: Copied from Source/WebCore/rendering/RenderForeignObject.h.
+ * rendering/svg/RenderSVGAllInOne.cpp: Copied from Source/WebCore/rendering/RenderSVGAllInOne.cpp.
+ * rendering/svg/RenderSVGBlock.cpp: Copied from Source/WebCore/rendering/RenderSVGBlock.cpp.
+ * rendering/svg/RenderSVGBlock.h: Copied from Source/WebCore/rendering/RenderSVGBlock.h.
+ * rendering/svg/RenderSVGContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGContainer.cpp.
+ * rendering/svg/RenderSVGContainer.h: Copied from Source/WebCore/rendering/RenderSVGContainer.h.
+ * rendering/svg/RenderSVGGradientStop.cpp: Copied from Source/WebCore/rendering/RenderSVGGradientStop.cpp.
+ * rendering/svg/RenderSVGGradientStop.h: Copied from Source/WebCore/rendering/RenderSVGGradientStop.h.
+ * rendering/svg/RenderSVGHiddenContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGHiddenContainer.cpp.
+ * rendering/svg/RenderSVGHiddenContainer.h: Copied from Source/WebCore/rendering/RenderSVGHiddenContainer.h.
+ * rendering/svg/RenderSVGImage.cpp: Copied from Source/WebCore/rendering/RenderSVGImage.cpp.
+ * rendering/svg/RenderSVGImage.h: Copied from Source/WebCore/rendering/RenderSVGImage.h.
+ * rendering/svg/RenderSVGModelObject.cpp: Copied from Source/WebCore/rendering/RenderSVGModelObject.cpp.
+ * rendering/svg/RenderSVGModelObject.h: Copied from Source/WebCore/rendering/RenderSVGModelObject.h.
+ * rendering/svg/RenderSVGResource.cpp: Copied from Source/WebCore/rendering/RenderSVGResource.cpp.
+ * rendering/svg/RenderSVGResource.h: Copied from Source/WebCore/rendering/RenderSVGResource.h.
+ * rendering/svg/RenderSVGResourceClipper.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceClipper.cpp.
+ * rendering/svg/RenderSVGResourceClipper.h: Copied from Source/WebCore/rendering/RenderSVGResourceClipper.h.
+ * rendering/svg/RenderSVGResourceContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceContainer.cpp.
+ * rendering/svg/RenderSVGResourceContainer.h: Copied from Source/WebCore/rendering/RenderSVGResourceContainer.h.
+ * rendering/svg/RenderSVGResourceFilter.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceFilter.cpp.
+ * rendering/svg/RenderSVGResourceFilter.h: Copied from Source/WebCore/rendering/RenderSVGResourceFilter.h.
+ * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp.
+ * rendering/svg/RenderSVGResourceFilterPrimitive.h: Copied from Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.h.
+ * rendering/svg/RenderSVGResourceGradient.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceGradient.cpp.
+ * rendering/svg/RenderSVGResourceGradient.h: Copied from Source/WebCore/rendering/RenderSVGResourceGradient.h.
+ * rendering/svg/RenderSVGResourceLinearGradient.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceLinearGradient.cpp.
+ * rendering/svg/RenderSVGResourceLinearGradient.h: Copied from Source/WebCore/rendering/RenderSVGResourceLinearGradient.h.
+ * rendering/svg/RenderSVGResourceMarker.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceMarker.cpp.
+ * rendering/svg/RenderSVGResourceMarker.h: Copied from Source/WebCore/rendering/RenderSVGResourceMarker.h.
+ * rendering/svg/RenderSVGResourceMasker.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceMasker.cpp.
+ * rendering/svg/RenderSVGResourceMasker.h: Copied from Source/WebCore/rendering/RenderSVGResourceMasker.h.
+ * rendering/svg/RenderSVGResourcePattern.cpp: Copied from Source/WebCore/rendering/RenderSVGResourcePattern.cpp.
+ * rendering/svg/RenderSVGResourcePattern.h: Copied from Source/WebCore/rendering/RenderSVGResourcePattern.h.
+ * rendering/svg/RenderSVGResourceRadialGradient.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceRadialGradient.cpp.
+ * rendering/svg/RenderSVGResourceRadialGradient.h: Copied from Source/WebCore/rendering/RenderSVGResourceRadialGradient.h.
+ * rendering/svg/RenderSVGResourceSolidColor.cpp: Copied from Source/WebCore/rendering/RenderSVGResourceSolidColor.cpp.
+ * rendering/svg/RenderSVGResourceSolidColor.h: Copied from Source/WebCore/rendering/RenderSVGResourceSolidColor.h.
+ * rendering/svg/RenderSVGRoot.cpp: Copied from Source/WebCore/rendering/RenderSVGRoot.cpp.
+ * rendering/svg/RenderSVGRoot.h: Copied from Source/WebCore/rendering/RenderSVGRoot.h.
+ * rendering/svg/RenderSVGShadowTreeRootContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp.
+ * rendering/svg/RenderSVGShadowTreeRootContainer.h: Copied from Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.h.
+ * rendering/svg/RenderSVGTransformableContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGTransformableContainer.cpp.
+ * rendering/svg/RenderSVGTransformableContainer.h: Copied from Source/WebCore/rendering/RenderSVGTransformableContainer.h.
+ * rendering/svg/RenderSVGViewportContainer.cpp: Copied from Source/WebCore/rendering/RenderSVGViewportContainer.cpp.
+ * rendering/svg/RenderSVGViewportContainer.h: Copied from Source/WebCore/rendering/RenderSVGViewportContainer.h.
+ * rendering/svg/SVGImageBufferTools.cpp: Copied from Source/WebCore/rendering/SVGImageBufferTools.cpp.
+ * rendering/svg/SVGImageBufferTools.h: Copied from Source/WebCore/rendering/SVGImageBufferTools.h.
+ * rendering/svg/SVGMarkerData.h: Copied from Source/WebCore/rendering/SVGMarkerData.h.
+ * rendering/svg/SVGMarkerLayoutInfo.cpp: Copied from Source/WebCore/rendering/SVGMarkerLayoutInfo.cpp.
+ * rendering/svg/SVGMarkerLayoutInfo.h: Copied from Source/WebCore/rendering/SVGMarkerLayoutInfo.h.
+ * rendering/svg/SVGRenderSupport.cpp: Copied from Source/WebCore/rendering/SVGRenderSupport.cpp.
+ * rendering/svg/SVGRenderSupport.h: Copied from Source/WebCore/rendering/SVGRenderSupport.h.
+ * rendering/svg/SVGRenderTreeAsText.cpp: Copied from Source/WebCore/rendering/SVGRenderTreeAsText.cpp.
+ * rendering/svg/SVGRenderTreeAsText.h: Copied from Source/WebCore/rendering/SVGRenderTreeAsText.h.
+ * rendering/svg/SVGResources.cpp: Copied from Source/WebCore/rendering/SVGResources.cpp.
+ * rendering/svg/SVGResources.h: Copied from Source/WebCore/rendering/SVGResources.h.
+ * rendering/svg/SVGResourcesCache.cpp: Copied from Source/WebCore/rendering/SVGResourcesCache.cpp.
+ * rendering/svg/SVGResourcesCache.h: Copied from Source/WebCore/rendering/SVGResourcesCache.h.
+ * rendering/svg/SVGResourcesCycleSolver.cpp: Copied from Source/WebCore/rendering/SVGResourcesCycleSolver.cpp.
+ * rendering/svg/SVGResourcesCycleSolver.h: Copied from Source/WebCore/rendering/SVGResourcesCycleSolver.h.
+ * rendering/svg/SVGShadowTreeElements.cpp: Copied from Source/WebCore/rendering/SVGShadowTreeElements.cpp.
+ * rendering/svg/SVGShadowTreeElements.h: Copied from Source/WebCore/rendering/SVGShadowTreeElements.h.
+
+2011-01-09 Xianzhu Wang <phnixwxz@gmail.com>
+
+ Reviewed by Darin Fisher.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41441
+ createWindow method should only do window-creating without URL navigation.
+ Let client APIs know which URL a new window will start with
+
+ * loader/FrameLoader.cpp:
+ (WebCore::createWindow):
+ * page/ContextMenuController.cpp:
+ (WebCore::openNewWindow):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::createWindow):
+
+2011-01-09 Dirk Schulze <krit@webkit.org>
+
+ Unreviewed sort of Xcode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2011-01-09 Amruth Raj <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com>
+
+ Reviewed by Martin Robinson.
+
+ Changes to add Process Launcher and Thread Launcher implementation to the WebKit2 GTK port.
+ https://bugs.webkit.org/show_bug.cgi?id=48511
+
+ * platform/FileSystem.h:
+ * platform/gtk/FileSystemGtk.cpp: Implement function to get a binary's path
+ (WebCore::applicationDirectoryPath):
+
+2011-01-08 Martin Robinson <mrobinson@igalia.com>
+
+ GTK+ Build fix. Add missing headers to the source list, fixing make dist.
+
+ No new tests. This is only a build change.
+
+ * GNUmakefile.am: Add missing headers to the source list.
+
+2011-01-08 Amruth Raj <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] WebKit2 GNUmakefile is out of date from trunk
+ https://bugs.webkit.org/show_bug.cgi?id=51883
+
+ Added stubs for WebKit2 compilation.
+
+ * platform/gtk/ContextMenuGtk.cpp:
+ (WebCore::contextMenuItemVector):
+ * platform/gtk/ContextMenuItemGtk.cpp:
+ (WebCore::ContextMenuItem::ContextMenuItem):
+ (WebCore::ContextMenuItem::checked):
+ (WebCore::ContextMenuItem::enabled):
+ * platform/network/soup/AuthenticationChallenge.h:
+ (WebCore::AuthenticationChallenge::authenticationClient):
+
+2011-01-08 Helder Correia <helder@sencha.com>
+
+ Reviewed by Simon Fraser.
+
+ Shadow is not drawn when filling a path with a gradient
+ https://bugs.webkit.org/show_bug.cgi?id=51982
+
+ This happens in CG and is related to bug 51869, this time to be fixed
+ in GraphicsContext::fillPath(const Path& path). We need to draw the
+ gradient clipped to the path on a CGLayer first, and then draw the
+ layer on the GraphicsContext.
+
+ Test: fast/canvas/canvas-fillPath-gradient-shadow.html
+
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ (WebCore::GraphicsContext::fillPath):
+
+2011-01-08 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] PasteboardQt.cpp has coding-style errors
+ https://bugs.webkit.org/show_bug.cgi?id=39771
+
+ Update the code to follow the coding style.
+
+ * platform/qt/PasteboardQt.cpp:
+ (WebCore::Pasteboard::writeSelection):
+ (WebCore::Pasteboard::plainText):
+ (WebCore::Pasteboard::writePlainText):
+ (WebCore::Pasteboard::writeURL):
+
+2011-01-08 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ HTML5 Conformance Test failure: approved/xhtml5/html_style_in_comment.xhtml
+ https://bugs.webkit.org/show_bug.cgi?id=48593
+
+ XHTML <style> blocks, unlike HTML <style> blocks, should respect HTML
+ comments.
+
+ Test: fast/parser/xhtml-html-comment-in-style-block.xhtml
+
+ * dom/StyleElement.cpp:
+ (WebCore::isValidStyleChild): Remove the COMMENT_NODE check as the HTML parser doesn't add COMMENT_NODEs as children of style blocks.
+ (WebCore::StyleElement::process): Factored out a condition that must remain in sync.
+
+2011-01-08 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Navigator.cookiesEnabled return true for Qt even if there is no cookie jar
+ https://bugs.webkit.org/show_bug.cgi?id=52081
+
+ Test for the availability of cookie jar to return if cookies are enabled or not. The network access
+ manager always exist, not the cookie jar.
+
+ * platform/qt/CookieJarQt.cpp:
+ (WebCore::cookiesEnabled):
+
+2011-01-08 Charlie Reis <creis@chromium.org>
+
+ Reviewed by Mihai Parparita.
+
+ Canceled frame loads can corrupt back forward list
+ https://bugs.webkit.org/show_bug.cgi?id=50254
+
+ Avoids changing m_currentItem until the navigation commits.
+ Also resets top-level history items if a subframe navigation is canceled.
+
+ * WebCore/loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+ * WebCore/loader/HistoryController.cpp:
+ * WebCore/loader/HistoryController.h:
+
+2011-01-08 Chang Shu <chang.shu@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Support createTouchList with Touch list for test automation.
+ Implemented JS/V8 custom functions for createTouchList.
+ https://bugs.webkit.org/show_bug.cgi?id=51196
+
+ * bindings/js/JSDocumentCustom.cpp:
+ (WebCore::JSDocument::createTouchList):
+ * bindings/v8/custom/V8DocumentCustom.cpp:
+ (WebCore::V8Document::createTouchListCallback):
+ * dom/Document.idl:
+ * dom/TouchEvent.cpp:
+ (WebCore::TouchEvent::initTouchEvent):
+
+2011-01-08 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] CookieJarQt.cpp has coding-style errors
+ https://bugs.webkit.org/show_bug.cgi?id=39778
+
+ Improve the coding style of CookieJarQt.cpp.
+
+ * platform/qt/CookieJarQt.cpp:
+ (WebCore::networkAccessManager):
+ (WebCore::cookiesEnabled):
+
+2011-01-08 Jeff Miller <jeffm@apple.com>
+
+ Rubber-stamped by Dan Bernstein.
+
+ Fix QTMovieWin.vcproj to account for moving WebCore to Source\WebCore
+ https://bugs.webkit.org/show_bug.cgi?id=52114
+
+ * WebCore.vcproj/QTMovieWin.vcproj:
+ Add an extra .. to some InheritedPropertySheets entries since WebCore is now one level deeper.
+
+2011-01-08 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Mihai Parparita.
+
+ SVG rendering clean up according to the webkit style rules 2
+ https://bugs.webkit.org/show_bug.cgi?id=52112
+
+ Modified the style of the license of all files in WebCore/rendering/svg to match the style
+ in WebCore/svg. Cleaned up the code according to the webkit style rules.
+
+ No change of functionality. No test added.
+
+ * rendering/svg/RenderSVGInline.cpp:
+ * rendering/svg/RenderSVGInline.h:
+ * rendering/svg/RenderSVGInlineText.cpp:
+ * rendering/svg/RenderSVGInlineText.h:
+ * rendering/svg/RenderSVGPath.cpp:
+ * rendering/svg/RenderSVGPath.h:
+ * rendering/svg/RenderSVGTSpan.cpp:
+ * rendering/svg/RenderSVGTSpan.h:
+ * rendering/svg/RenderSVGText.cpp:
+ * rendering/svg/RenderSVGText.h:
+ * rendering/svg/RenderSVGTextPath.cpp:
+ * rendering/svg/RenderSVGTextPath.h:
+ * rendering/svg/SVGInlineFlowBox.cpp:
+ * rendering/svg/SVGInlineFlowBox.h:
+ * rendering/svg/SVGInlineTextBox.cpp:
+ * rendering/svg/SVGInlineTextBox.h:
+ * rendering/svg/SVGRootInlineBox.cpp:
+ * rendering/svg/SVGRootInlineBox.h:
+ * rendering/svg/SVGTextLayoutEngineBaseline.cpp: Brace was misplaced accoring to check-webkit-style.
+ (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle):
+ * rendering/svg/SVGTextQuery.cpp:
+ * rendering/svg/SVGTextQuery.h:
+
+2011-01-08 Dirk Schulze <krit@webkit.org>
+
+ Reviewed by Mihai Parparita.
+
+ SVG rendering clean up according to the webkit style rules
+ https://bugs.webkit.org/show_bug.cgi?id=52107
+
+ Cleanup of the SVG rendering code according to the webbkit style rules.
+ Changed style of licensing texts to match the style in WebCore/svg, no change
+ of the licensing text itself.
+
+ * rendering/RenderForeignObject.cpp:
+ * rendering/RenderForeignObject.h:
+ * rendering/RenderSVGBlock.cpp:
+ * rendering/RenderSVGBlock.h:
+ * rendering/RenderSVGContainer.cpp:
+ * rendering/RenderSVGContainer.h:
+ * rendering/RenderSVGGradientStop.cpp:
+ * rendering/RenderSVGGradientStop.h:
+ * rendering/RenderSVGHiddenContainer.cpp:
+ * rendering/RenderSVGHiddenContainer.h:
+ (WebCore::RenderSVGHiddenContainer::renderName):
+ (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
+ (WebCore::RenderSVGHiddenContainer::requiresLayer):
+ (WebCore::RenderSVGHiddenContainer::clippedOverflowRectForRepaint):
+ * rendering/RenderSVGImage.cpp:
+ * rendering/RenderSVGImage.h:
+ * rendering/RenderSVGModelObject.h:
+ * rendering/RenderSVGResource.cpp:
+ * rendering/RenderSVGResource.h:
+ * rendering/RenderSVGResourceClipper.cpp:
+ * rendering/RenderSVGResourceClipper.h:
+ * rendering/RenderSVGResourceContainer.cpp:
+ * rendering/RenderSVGResourceContainer.h:
+ * rendering/RenderSVGResourceFilter.cpp:
+ * rendering/RenderSVGResourceFilter.h:
+ * rendering/RenderSVGResourceFilterPrimitive.cpp:
+ * rendering/RenderSVGResourceFilterPrimitive.h:
+ * rendering/RenderSVGResourceGradient.cpp:
+ * rendering/RenderSVGResourceGradient.h:
+ * rendering/RenderSVGResourceLinearGradient.cpp:
+ * rendering/RenderSVGResourceLinearGradient.h:
+ * rendering/RenderSVGResourceMarker.cpp:
+ * rendering/RenderSVGResourceMarker.h:
+ * rendering/RenderSVGResourceMasker.cpp:
+ * rendering/RenderSVGResourceMasker.h:
+ * rendering/RenderSVGResourcePattern.cpp:
+ * rendering/RenderSVGResourcePattern.h:
+ * rendering/RenderSVGResourceRadialGradient.cpp:
+ * rendering/RenderSVGResourceRadialGradient.h:
+ * rendering/RenderSVGResourceSolidColor.cpp:
+ * rendering/RenderSVGResourceSolidColor.h:
+ * rendering/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::nodeAtPoint):
+ * rendering/RenderSVGRoot.h:
+ * rendering/RenderSVGShadowTreeRootContainer.cpp:
+ * rendering/RenderSVGShadowTreeRootContainer.h:
+ * rendering/RenderSVGTransformableContainer.cpp:
+ (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
+ * rendering/RenderSVGTransformableContainer.h:
+ (WebCore::RenderSVGTransformableContainer::localToParentTransform):
+ (WebCore::RenderSVGTransformableContainer::setNeedsTransformUpdate):
+ (WebCore::RenderSVGTransformableContainer::localTransform):
+ * rendering/RenderSVGViewportContainer.cpp:
+ * rendering/RenderSVGViewportContainer.h:
+ * rendering/SVGImageBufferTools.cpp:
+ * rendering/SVGImageBufferTools.h:
+ * rendering/SVGMarkerData.h:
+ * rendering/SVGMarkerLayoutInfo.cpp:
+ * rendering/SVGMarkerLayoutInfo.h:
+ * rendering/SVGRenderSupport.cpp:
+ * rendering/SVGRenderSupport.h:
+ * rendering/SVGRenderTreeAsText.cpp:
+ (WebCore::operator<<):
+ * rendering/SVGRenderTreeAsText.h:
+ * rendering/SVGResources.cpp:
+ * rendering/SVGResources.h:
+ * rendering/SVGResourcesCache.cpp:
+ * rendering/SVGResourcesCache.h:
+ * rendering/SVGResourcesCycleSolver.cpp:
+ * rendering/SVGResourcesCycleSolver.h:
+ * rendering/SVGShadowTreeElements.cpp:
+ * rendering/SVGShadowTreeElements.h:
+
2011-01-07 Adam Barth <abarth@webkit.org>
Rubber-stamped by Eric Seidel.
diff --git a/Source/WebCore/DerivedSources.cpp b/Source/WebCore/DerivedSources.cpp
index 6d6a28d..1be63f3 100644
--- a/Source/WebCore/DerivedSources.cpp
+++ b/Source/WebCore/DerivedSources.cpp
@@ -94,6 +94,7 @@
#include "JSDOMStringList.cpp"
#include "JSDOMStringMap.cpp"
#include "JSDOMTokenList.cpp"
+#include "JSDOMURL.cpp"
#include "JSDOMWindow.cpp"
#include "JSElement.cpp"
#include "JSEntity.cpp"
diff --git a/Source/WebCore/DerivedSources.make b/Source/WebCore/DerivedSources.make
index ebb92b1..e1b4db4 100644
--- a/Source/WebCore/DerivedSources.make
+++ b/Source/WebCore/DerivedSources.make
@@ -147,6 +147,7 @@ DOM_CLASSES = \
DOMStringMap \
DOMSettableTokenList \
DOMTokenList \
+ DOMURL \
DOMWindow \
Database \
DatabaseCallback \
@@ -866,6 +867,11 @@ INSPECTOR_GENERATOR_SCRIPTS = $(GENERATE_SCRIPTS) inspector/CodeGeneratorInspect
InspectorFrontend.h : Inspector.idl $(INSPECTOR_GENERATOR_SCRIPTS)
$(call generator_script, $(INSPECTOR_GENERATOR_SCRIPTS)) --outputDir . --defines "$(FEATURE_DEFINES) LANGUAGE_JAVASCRIPT" --generator Inspector $<
+all : InjectedScriptSource.h
+
+InjectedScriptSource.h : InjectedScriptSource.js
+ perl $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js InjectedScriptSource.h
+
-include $(JS_DOM_HEADERS:.h=.dep)
ifeq ($(findstring BUILDING_WX,$(FEATURE_DEFINES)), BUILDING_WX)
diff --git a/Source/WebCore/English.lproj/localizedStrings.js b/Source/WebCore/English.lproj/localizedStrings.js
index 0cc5884..0d8edc2 100644
--- a/Source/WebCore/English.lproj/localizedStrings.js
+++ b/Source/WebCore/English.lproj/localizedStrings.js
Binary files differ
diff --git a/Source/WebCore/ForwardingHeaders/runtime/Collector.h b/Source/WebCore/ForwardingHeaders/runtime/Collector.h
deleted file mode 100644
index d133a27..0000000
--- a/Source/WebCore/ForwardingHeaders/runtime/Collector.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef WebCore_FWD_Collector_h
-#define WebCore_FWD_Collector_h
-#include <JavaScriptCore/Collector.h>
-#endif
diff --git a/Source/WebCore/ForwardingHeaders/runtime/Heap.h b/Source/WebCore/ForwardingHeaders/runtime/Heap.h
new file mode 100644
index 0000000..810fa3c
--- /dev/null
+++ b/Source/WebCore/ForwardingHeaders/runtime/Heap.h
@@ -0,0 +1,4 @@
+#ifndef WebCore_FWD_Heap_h
+#define WebCore_FWD_Heap_h
+#include <JavaScriptCore/Heap.h>
+#endif
diff --git a/Source/WebCore/ForwardingHeaders/runtime/InitializeThreading.h b/Source/WebCore/ForwardingHeaders/runtime/InitializeThreading.h
index bd4f735..ee1f856 100644
--- a/Source/WebCore/ForwardingHeaders/runtime/InitializeThreading.h
+++ b/Source/WebCore/ForwardingHeaders/runtime/InitializeThreading.h
@@ -1,4 +1,4 @@
-#ifndef WebCore_FWD_InitializeThreadingn_h
+#ifndef WebCore_FWD_InitializeThreading_h
#define WebCore_FWD_InitializeThreading_h
#include <JavaScriptCore/InitializeThreading.h>
#endif
diff --git a/Source/WebCore/GNUmakefile.am b/Source/WebCore/GNUmakefile.am
index 0841894..efbbb70 100644
--- a/Source/WebCore/GNUmakefile.am
+++ b/Source/WebCore/GNUmakefile.am
@@ -57,6 +57,7 @@ webcore_cppflags += \
-I$(srcdir)/Source/WebCore/plugins \
-I$(srcdir)/Source/WebCore/plugins/win \
-I$(srcdir)/Source/WebCore/rendering \
+ -I$(srcdir)/Source/WebCore/rendering/mathml \
-I$(srcdir)/Source/WebCore/rendering/style \
-I$(srcdir)/Source/WebCore/rendering/svg \
-I$(srcdir)/Source/WebCore/storage \
@@ -108,6 +109,7 @@ webcore_built_sources += \
DerivedSources/WebCore/HTMLEntityTable.cpp \
DerivedSources/WebCore/HTMLNames.cpp \
DerivedSources/WebCore/HTMLNames.h \
+ DerivedSources/WebCore/InjectedScriptSource.h \
DerivedSources/WebCore/InspectorBackendDispatcher.cpp \
DerivedSources/WebCore/InspectorBackendDispatcher.h \
DerivedSources/WebCore/InspectorFrontend.cpp \
@@ -235,6 +237,8 @@ webcore_built_sources += \
DerivedSources/WebCore/JSDOMStringMap.h \
DerivedSources/WebCore/JSDOMTokenList.cpp \
DerivedSources/WebCore/JSDOMTokenList.h \
+ DerivedSources/WebCore/JSDOMURL.cpp \
+ DerivedSources/WebCore/JSDOMURL.h \
DerivedSources/WebCore/JSDOMWindow.cpp \
DerivedSources/WebCore/JSDOMWindow.h \
DerivedSources/WebCore/JSElement.cpp \
@@ -1297,6 +1301,7 @@ webcore_sources += \
Source/WebCore/dom/TextEvent.cpp \
Source/WebCore/dom/TextEvent.h \
Source/WebCore/dom/Text.h \
+ Source/WebCore/dom/TouchList.h \
Source/WebCore/dom/TransformSource.h \
Source/WebCore/dom/TransformSourceLibxslt.cpp \
Source/WebCore/dom/Traversal.cpp \
@@ -1440,6 +1445,7 @@ webcore_sources += \
Source/WebCore/editing/visible_units.h \
Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp \
Source/WebCore/editing/WrapContentsInDummySpanCommand.h \
+ Source/WebCore/editing/WritingDirection.h \
Source/WebCore/fileapi/AsyncFileWriter.h \
Source/WebCore/fileapi/AsyncFileWriterClient.h \
Source/WebCore/fileapi/BlobBuilder.cpp \
@@ -1561,6 +1567,7 @@ webcore_sources += \
Source/WebCore/html/canvas/CanvasRenderingContext.h \
Source/WebCore/html/canvas/CanvasStyle.cpp \
Source/WebCore/html/canvas/CanvasStyle.h \
+ Source/WebCore/html/canvas/CheckedInt.h \
Source/WebCore/html/canvas/DataView.cpp \
Source/WebCore/html/canvas/DataView.h \
Source/WebCore/html/canvas/Float32Array.cpp \
@@ -1571,8 +1578,10 @@ webcore_sources += \
Source/WebCore/html/canvas/Int32Array.h \
Source/WebCore/html/canvas/Int8Array.cpp \
Source/WebCore/html/canvas/Int8Array.h \
+ Source/WebCore/html/canvas/IntegralTypedArrayBase.h \
Source/WebCore/html/canvas/OESTextureFloat.cpp \
Source/WebCore/html/canvas/OESTextureFloat.h \
+ Source/WebCore/html/canvas/TypedArrayBase.h \
Source/WebCore/html/canvas/WebKitLoseContext.cpp \
Source/WebCore/html/canvas/WebKitLoseContext.h \
Source/WebCore/html/canvas/Uint16Array.cpp \
@@ -1611,6 +1620,8 @@ webcore_sources += \
Source/WebCore/html/DOMDataGridDataSource.h \
Source/WebCore/html/DOMFormData.cpp \
Source/WebCore/html/DOMFormData.h \
+ Source/WebCore/html/DOMURL.cpp \
+ Source/WebCore/html/DOMURL.h \
Source/WebCore/html/EmailInputType.cpp \
Source/WebCore/html/EmailInputType.h \
Source/WebCore/html/FileInputType.cpp \
@@ -1935,10 +1946,14 @@ webcore_sources += \
Source/WebCore/inspector/InjectedScriptHost.h \
Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp \
Source/WebCore/inspector/InspectorApplicationCacheAgent.h \
+ Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp \
+ Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h \
Source/WebCore/inspector/InspectorClient.cpp \
Source/WebCore/inspector/InspectorClient.h \
Source/WebCore/inspector/InspectorController.cpp \
Source/WebCore/inspector/InspectorController.h \
+ Source/WebCore/inspector/InspectorConsoleAgent.cpp \
+ Source/WebCore/inspector/InspectorConsoleAgent.h \
Source/WebCore/inspector/InspectorCSSAgent.cpp \
Source/WebCore/inspector/InspectorCSSAgent.h \
Source/WebCore/inspector/InspectorDatabaseAgent.cpp \
@@ -1966,6 +1981,8 @@ webcore_sources += \
Source/WebCore/inspector/InspectorProfilerAgent.h \
Source/WebCore/inspector/InspectorResourceAgent.cpp \
Source/WebCore/inspector/InspectorResourceAgent.h \
+ Source/WebCore/inspector/InspectorSettings.cpp \
+ Source/WebCore/inspector/InspectorSettings.h \
Source/WebCore/inspector/InspectorState.cpp \
Source/WebCore/inspector/InspectorState.h \
Source/WebCore/inspector/InspectorStyleSheet.cpp \
@@ -2094,7 +2111,6 @@ webcore_sources += \
Source/WebCore/loader/ResourceLoader.h \
Source/WebCore/loader/ResourceLoadNotifier.cpp \
Source/WebCore/loader/ResourceLoadNotifier.h \
- Source/WebCore/loader/ResourceLoadPriority.h \
Source/WebCore/loader/ResourceLoadScheduler.cpp \
Source/WebCore/loader/ResourceLoadScheduler.h \
Source/WebCore/loader/SinkDocument.cpp \
@@ -2122,26 +2138,6 @@ webcore_sources += \
Source/WebCore/mathml/MathMLMathElement.h \
Source/WebCore/mathml/MathMLTextElement.cpp \
Source/WebCore/mathml/MathMLTextElement.h \
- Source/WebCore/mathml/RenderMathMLBlock.cpp \
- Source/WebCore/mathml/RenderMathMLBlock.h \
- Source/WebCore/mathml/RenderMathMLFenced.cpp \
- Source/WebCore/mathml/RenderMathMLFenced.h \
- Source/WebCore/mathml/RenderMathMLFraction.cpp \
- Source/WebCore/mathml/RenderMathMLFraction.h \
- Source/WebCore/mathml/RenderMathMLMath.cpp \
- Source/WebCore/mathml/RenderMathMLMath.h \
- Source/WebCore/mathml/RenderMathMLOperator.cpp \
- Source/WebCore/mathml/RenderMathMLOperator.h \
- Source/WebCore/mathml/RenderMathMLRoot.cpp \
- Source/WebCore/mathml/RenderMathMLRoot.h \
- Source/WebCore/mathml/RenderMathMLRow.cpp \
- Source/WebCore/mathml/RenderMathMLRow.h \
- Source/WebCore/mathml/RenderMathMLSquareRoot.cpp \
- Source/WebCore/mathml/RenderMathMLSquareRoot.h \
- Source/WebCore/mathml/RenderMathMLSubSup.cpp \
- Source/WebCore/mathml/RenderMathMLSubSup.h \
- Source/WebCore/mathml/RenderMathMLUnderOver.cpp \
- Source/WebCore/mathml/RenderMathMLUnderOver.h \
Source/WebCore/notifications/NotificationCenter.cpp \
Source/WebCore/notifications/NotificationCenter.h \
Source/WebCore/notifications/NotificationContents.h \
@@ -2288,6 +2284,8 @@ webcore_sources += \
Source/WebCore/platform/Arena.cpp \
Source/WebCore/platform/Arena.h \
Source/WebCore/platform/AsyncFileStream.h \
+ Source/WebCore/platform/AsyncFileSystem.cpp \
+ Source/WebCore/platform/AsyncFileSystem.h \
Source/WebCore/platform/AutodrainedPool.h \
Source/WebCore/platform/ContentType.cpp \
Source/WebCore/platform/ContentType.h \
@@ -2437,8 +2435,6 @@ webcore_sources += \
Source/WebCore/platform/graphics/PathTraversalState.h \
Source/WebCore/platform/graphics/Pattern.cpp \
Source/WebCore/platform/graphics/Pattern.h \
- Source/WebCore/platform/graphics/Pen.cpp \
- Source/WebCore/platform/graphics/Pen.h \
Source/WebCore/platform/graphics/SegmentedFontData.cpp \
Source/WebCore/platform/graphics/SegmentedFontData.h \
Source/WebCore/platform/graphics/SimpleFontData.cpp \
@@ -2540,6 +2536,7 @@ webcore_sources += \
Source/WebCore/platform/network/ResourceHandle.h \
Source/WebCore/platform/network/ResourceHandleInternal.h \
Source/WebCore/platform/network/ResourceLoadInfo.h \
+ Source/WebCore/platform/network/ResourceLoadPriority.h \
Source/WebCore/platform/network/ResourceLoadTiming.h \
Source/WebCore/platform/network/ResourceRequestBase.cpp \
Source/WebCore/platform/network/ResourceRequestBase.h \
@@ -2742,8 +2739,6 @@ webcore_sources += \
Source/WebCore/rendering/RenderFileUploadControl.h \
Source/WebCore/rendering/RenderFlexibleBox.cpp \
Source/WebCore/rendering/RenderFlexibleBox.h \
- Source/WebCore/rendering/RenderForeignObject.cpp \
- Source/WebCore/rendering/RenderForeignObject.h \
Source/WebCore/rendering/RenderFrameBase.cpp \
Source/WebCore/rendering/RenderFrameBase.h \
Source/WebCore/rendering/RenderFrame.cpp \
@@ -2817,50 +2812,6 @@ webcore_sources += \
Source/WebCore/rendering/RenderSlider.h \
Source/WebCore/rendering/RenderSummary.cpp \
Source/WebCore/rendering/RenderSummary.h \
- Source/WebCore/rendering/RenderSVGBlock.cpp \
- Source/WebCore/rendering/RenderSVGBlock.h \
- Source/WebCore/rendering/RenderSVGContainer.cpp \
- Source/WebCore/rendering/RenderSVGContainer.h \
- Source/WebCore/rendering/RenderSVGGradientStop.cpp \
- Source/WebCore/rendering/RenderSVGGradientStop.h \
- Source/WebCore/rendering/RenderSVGHiddenContainer.cpp \
- Source/WebCore/rendering/RenderSVGHiddenContainer.h \
- Source/WebCore/rendering/RenderSVGImage.cpp \
- Source/WebCore/rendering/RenderSVGImage.h \
- Source/WebCore/rendering/RenderSVGModelObject.cpp \
- Source/WebCore/rendering/RenderSVGModelObject.h \
- Source/WebCore/rendering/RenderSVGResourceClipper.cpp \
- Source/WebCore/rendering/RenderSVGResourceClipper.h \
- Source/WebCore/rendering/RenderSVGResourceContainer.cpp \
- Source/WebCore/rendering/RenderSVGResourceContainer.h \
- Source/WebCore/rendering/RenderSVGResource.cpp \
- Source/WebCore/rendering/RenderSVGResourceFilter.cpp \
- Source/WebCore/rendering/RenderSVGResourceFilter.h \
- Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp \
- Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.h \
- Source/WebCore/rendering/RenderSVGResourceGradient.cpp \
- Source/WebCore/rendering/RenderSVGResourceGradient.h \
- Source/WebCore/rendering/RenderSVGResource.h \
- Source/WebCore/rendering/RenderSVGResourceLinearGradient.cpp \
- Source/WebCore/rendering/RenderSVGResourceLinearGradient.h \
- Source/WebCore/rendering/RenderSVGResourceMarker.cpp \
- Source/WebCore/rendering/RenderSVGResourceMarker.h \
- Source/WebCore/rendering/RenderSVGResourceMasker.cpp \
- Source/WebCore/rendering/RenderSVGResourceMasker.h \
- Source/WebCore/rendering/RenderSVGResourcePattern.cpp \
- Source/WebCore/rendering/RenderSVGResourcePattern.h \
- Source/WebCore/rendering/RenderSVGResourceRadialGradient.cpp \
- Source/WebCore/rendering/RenderSVGResourceRadialGradient.h \
- Source/WebCore/rendering/RenderSVGResourceSolidColor.cpp \
- Source/WebCore/rendering/RenderSVGResourceSolidColor.h \
- Source/WebCore/rendering/RenderSVGRoot.cpp \
- Source/WebCore/rendering/RenderSVGRoot.h \
- Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp \
- Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.h \
- Source/WebCore/rendering/RenderSVGTransformableContainer.cpp \
- Source/WebCore/rendering/RenderSVGTransformableContainer.h \
- Source/WebCore/rendering/RenderSVGViewportContainer.cpp \
- Source/WebCore/rendering/RenderSVGViewportContainer.h \
Source/WebCore/rendering/RenderTableCell.cpp \
Source/WebCore/rendering/RenderTableCell.h \
Source/WebCore/rendering/RenderTableCol.cpp \
@@ -2901,6 +2852,26 @@ webcore_sources += \
Source/WebCore/rendering/ShadowElement.cpp \
Source/WebCore/rendering/ShadowElement.h \
Source/WebCore/rendering/VerticalPositionCache.h \
+ Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLBlock.h \
+ Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLFenced.h \
+ Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLFraction.h \
+ Source/WebCore/rendering/mathml/RenderMathMLMath.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLMath.h \
+ Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLOperator.h \
+ Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLRoot.h \
+ Source/WebCore/rendering/mathml/RenderMathMLRow.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLRow.h \
+ Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h \
+ Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLSubSup.h \
+ Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp \
+ Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h \
Source/WebCore/rendering/style/BorderData.h \
Source/WebCore/rendering/style/BorderValue.h \
Source/WebCore/rendering/style/CollapsedBorderValue.h \
@@ -2959,41 +2930,87 @@ webcore_sources += \
Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp \
Source/WebCore/rendering/style/SVGRenderStyleDefs.h \
Source/WebCore/rendering/style/SVGRenderStyle.h \
- Source/WebCore/rendering/SVGImageBufferTools.cpp \
- Source/WebCore/rendering/SVGImageBufferTools.h \
- Source/WebCore/rendering/SVGMarkerData.h \
- Source/WebCore/rendering/SVGMarkerLayoutInfo.cpp \
- Source/WebCore/rendering/SVGMarkerLayoutInfo.h \
- Source/WebCore/rendering/SVGRenderSupport.cpp \
- Source/WebCore/rendering/SVGRenderSupport.h \
- Source/WebCore/rendering/SVGRenderTreeAsText.cpp \
- Source/WebCore/rendering/SVGRenderTreeAsText.h \
- Source/WebCore/rendering/SVGResourcesCache.cpp \
- Source/WebCore/rendering/SVGResourcesCache.h \
- Source/WebCore/rendering/SVGResources.cpp \
- Source/WebCore/rendering/SVGResourcesCycleSolver.cpp \
- Source/WebCore/rendering/SVGResourcesCycleSolver.h \
- Source/WebCore/rendering/SVGResources.h \
- Source/WebCore/rendering/SVGShadowTreeElements.cpp \
- Source/WebCore/rendering/SVGShadowTreeElements.h \
+ Source/WebCore/rendering/svg/RenderSVGBlock.cpp \
+ Source/WebCore/rendering/svg/RenderSVGBlock.h \
+ Source/WebCore/rendering/svg/RenderSVGContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGContainer.h \
+ Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp \
+ Source/WebCore/rendering/svg/RenderSVGForeignObject.h \
+ Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp \
+ Source/WebCore/rendering/svg/RenderSVGGradientStop.h \
+ Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h \
+ Source/WebCore/rendering/svg/RenderSVGImage.cpp \
+ Source/WebCore/rendering/svg/RenderSVGImage.h \
Source/WebCore/rendering/svg/RenderSVGInline.cpp \
Source/WebCore/rendering/svg/RenderSVGInline.h \
Source/WebCore/rendering/svg/RenderSVGInlineText.cpp \
Source/WebCore/rendering/svg/RenderSVGInlineText.h \
+ Source/WebCore/rendering/svg/RenderSVGModelObject.cpp \
+ Source/WebCore/rendering/svg/RenderSVGModelObject.h \
Source/WebCore/rendering/svg/RenderSVGPath.cpp \
Source/WebCore/rendering/svg/RenderSVGPath.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceClipper.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceContainer.h \
+ Source/WebCore/rendering/svg/RenderSVGResource.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceFilter.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceGradient.h \
+ Source/WebCore/rendering/svg/RenderSVGResource.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceMarker.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceMasker.h \
+ Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourcePattern.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h \
+ Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp \
+ Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.h \
+ Source/WebCore/rendering/svg/RenderSVGRoot.cpp \
+ Source/WebCore/rendering/svg/RenderSVGRoot.h \
+ Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.h \
Source/WebCore/rendering/svg/RenderSVGTSpan.cpp \
Source/WebCore/rendering/svg/RenderSVGTSpan.h \
Source/WebCore/rendering/svg/RenderSVGText.cpp \
Source/WebCore/rendering/svg/RenderSVGText.h \
Source/WebCore/rendering/svg/RenderSVGTextPath.cpp \
Source/WebCore/rendering/svg/RenderSVGTextPath.h \
+ Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h \
+ Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp \
+ Source/WebCore/rendering/svg/RenderSVGViewportContainer.h \
+ Source/WebCore/rendering/svg/SVGImageBufferTools.cpp \
+ Source/WebCore/rendering/svg/SVGImageBufferTools.h \
Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp \
Source/WebCore/rendering/svg/SVGInlineFlowBox.h \
Source/WebCore/rendering/svg/SVGInlineTextBox.cpp \
Source/WebCore/rendering/svg/SVGInlineTextBox.h \
+ Source/WebCore/rendering/svg/SVGMarkerData.h \
+ Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp \
+ Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h \
+ Source/WebCore/rendering/svg/SVGRenderSupport.cpp \
+ Source/WebCore/rendering/svg/SVGRenderSupport.h \
+ Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp \
+ Source/WebCore/rendering/svg/SVGRenderTreeAsText.h \
+ Source/WebCore/rendering/svg/SVGResourcesCache.cpp \
+ Source/WebCore/rendering/svg/SVGResourcesCache.h \
+ Source/WebCore/rendering/svg/SVGResources.cpp \
+ Source/WebCore/rendering/svg/SVGResourcesCycleSolver.cpp \
+ Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h \
+ Source/WebCore/rendering/svg/SVGResources.h \
Source/WebCore/rendering/svg/SVGRootInlineBox.cpp \
Source/WebCore/rendering/svg/SVGRootInlineBox.h \
+ Source/WebCore/rendering/svg/SVGShadowTreeElements.cpp \
+ Source/WebCore/rendering/svg/SVGShadowTreeElements.h \
Source/WebCore/rendering/svg/SVGTextChunk.cpp \
Source/WebCore/rendering/svg/SVGTextChunk.h \
Source/WebCore/rendering/svg/SVGTextChunkBuilder.cpp \
@@ -3696,7 +3713,6 @@ webcoregtk_sources += \
Source/WebCore/platform/gtk/GRefPtrGtk.cpp \
Source/WebCore/platform/gtk/GRefPtrGtk.h \
Source/WebCore/platform/gtk/gtk2drawing.c \
- Source/WebCore/platform/gtk/gtk3drawing.c \
Source/WebCore/platform/gtk/gtkdrawing.h \
Source/WebCore/platform/gtk/GtkPluginWidget.cpp \
Source/WebCore/platform/gtk/GtkPluginWidget.h \
@@ -3734,8 +3750,7 @@ webcoregtk_sources += \
Source/WebCore/platform/gtk/TemporaryLinkStubs.cpp \
Source/WebCore/platform/gtk/WheelEventGtk.cpp \
Source/WebCore/platform/gtk/WidgetGtk.cpp \
- Source/WebCore/platform/gtk/WidgetRenderingContextGtk2.cpp \
- Source/WebCore/platform/gtk/WidgetRenderingContextGtk3.cpp \
+ Source/WebCore/platform/gtk/WidgetRenderingContext.cpp \
Source/WebCore/platform/gtk/WidgetRenderingContext.h \
Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp \
Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h \
@@ -3890,10 +3905,10 @@ FEATURE_DEFINES += ENABLE_DATAGRID=0
webcore_cppflags += -DENABLE_DATAGRID=0
# ----
-# HTML Meter Element - disable for now.
+# HTML Meter Element
# ----
-FEATURE_DEFINES += ENABLE_METER_TAG=0
-webcore_cppflags += -DENABLE_METER_TAG=0
+FEATURE_DEFINES += ENABLE_METER_TAG=1
+webcore_cppflags += -DENABLE_METER_TAG=1
# ----
# HTML Progress Element
@@ -4070,8 +4085,6 @@ webcore_built_sources += \
DerivedSources/WebCore/JSFileEntry.h \
DerivedSources/WebCore/JSFileEntrySync.cpp \
DerivedSources/WebCore/JSFileEntrySync.h \
- DerivedSources/WebCore/JSFileException.cpp \
- DerivedSources/WebCore/JSFileException.h \
DerivedSources/WebCore/JSFileSystemCallback.cpp \
DerivedSources/WebCore/JSFileSystemCallback.h \
DerivedSources/WebCore/JSFileWriter.cpp \
@@ -4782,6 +4795,8 @@ DerivedSources/WebCore/InspectorFrontend.h: DerivedSources/WebCore/InspectorFron
DerivedSources/WebCore/InspectorFrontend.cpp: DerivedSources/WebCore/InspectorBackendStub.js
DerivedSources/WebCore/InspectorBackendStub.js: DerivedSources/WebCore/InspectorBackendDispatcher.h
DerivedSources/WebCore/InspectorBackendDispatcher.h: DerivedSources/WebCore/InspectorBackendDispatcher.cpp
+DerivedSources/WebCore/InjectedScriptSource.h: $(WebCore)/inspector/InjectedScriptSource.js
+ perl $(WebCore)/inspector/xxd.pl InjectedScriptSource_js $(WebCore)/inspector/InjectedScriptSource.js $(GENSOURCES_WEBCORE)/InjectedScriptSource.h
IDL_PATH := \
$(WebCore)/bindings/js \
@@ -4812,6 +4827,49 @@ DerivedSources/WebCore/JS%.cpp: DerivedSources/WebCore/JS%.h;
DerivedSources/WebCore/JS%.h: %.idl $(SCRIPTS_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorJS.pm
$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl $(IDL_PATH:%=--include "%") --outputDir "$(GENSOURCES_WEBCORE)" --defines "LANGUAGE_JAVASCRIPT=1 $(FEATURE_DEFINES)" --generator JS $<
+noinst_LTLIBRARIES += \
+ libWebCore.la
+
+nodist_EXTRA_libWebCore_la_SOURCES = \
+ $(webcore_built_nosources)
+
+nodist_libWebCore_la_SOURCES = \
+ $(webcore_built_sources)
+
+libWebCore_la_SOURCES = \
+ $(webcore_sources)
+
+libWebCore_la_CXXFLAGS = \
+ $(SYMBOL_VISIBILITY_INLINES) \
+ $(global_cxxflags)
+
+libWebCore_la_CFLAGS = \
+ $(SYMBOL_VISIBILITY) \
+ $(global_cflags)
+
+libWebCore_la_CPPFLAGS = \
+ -DBUILDING_WEBKIT \
+ $(global_cppflags) \
+ $(webcore_cppflags) \
+ $(webcoregtk_cppflags) \
+ $(javascriptcore_cppflags) \
+ -fno-strict-aliasing \
+ $(HILDON_CPPFLAGS) \
+ $(COVERAGE_CFLAGS) \
+ $(ENCHANT_CFLAGS) \
+ $(GAIL_CFLAGS) \
+ $(GEOCLUE_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ $(GSTREAMER_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(HILDON_CFLAGS) \
+ $(LIBSOUP_CFLAGS) \
+ $(LIBXML_CFLAGS) \
+ $(LIBXSLT_CFLAGS) \
+ $(SQLITE3_CFLAGS) \
+ $(UNICODE_CFLAGS) \
+ $(XT_CFLAGS)
+
EXTRA_DIST += \
$(shell ls $(srcdir)/Source/WebCore/css/*.idl) \
$(shell ls $(srcdir)/Source/WebCore/dom/*.idl) \
diff --git a/Source/WebCore/WebCore.exp.in b/Source/WebCore/WebCore.exp.in
index 88ab671..a3132f5 100644
--- a/Source/WebCore/WebCore.exp.in
+++ b/Source/WebCore/WebCore.exp.in
@@ -141,6 +141,8 @@ __ZN7WebCore10CredentialC1ERKN3WTF6StringES4_NS_21CredentialPersistenceE
__ZN7WebCore10CredentialC1Ev
__ZN7WebCore10JSDocument6s_infoE
__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb
+__ZN7WebCore10ScrollView17setUseFixedLayoutEb
+__ZN7WebCore10ScrollView18setFixedLayoutSizeERKNS_7IntSizeE
__ZN7WebCore10ScrollView20setCanHaveScrollbarsEb
__ZN7WebCore10ScrollView24windowResizerRectChangedEv
__ZN7WebCore10deleteFileERKN3WTF6StringE
@@ -209,6 +211,7 @@ __ZN7WebCore11MemoryCache13getStatisticsEv
__ZN7WebCore11MemoryCache13setCapacitiesEjjj
__ZN7WebCore11RenderLayer19scrollRectToVisibleERKNS_7IntRectEbRKNS_15ScrollAlignmentES6_
__ZN7WebCore11globalPointERK8_NSPointP8NSWindow
+__ZN7WebCore11memoryCacheEv
__ZN7WebCore11toUserSpaceERK7_NSRectP8NSWindow
__ZN7WebCore11writeToFileEiPKci
__ZN7WebCore12ChromeClient20paintCustomScrollbarEPNS_15GraphicsContextERKNS_9FloatRectENS_20ScrollbarControlSizeEjNS_13ScrollbarPartEbffj
@@ -259,15 +262,23 @@ __ZN7WebCore12IconDatabase9setClientEPNS_18IconDatabaseClientE
__ZN7WebCore12PopupMenuMacC1EPNS_15PopupMenuClientE
__ZN7WebCore12PrintContext12pagePropertyEPNS_5FrameEPKci
__ZN7WebCore12PrintContext13numberOfPagesEPNS_5FrameERKNS_9FloatSizeE
+__ZN7WebCore12PrintContext16computePageRectsERKNS_9FloatRectEfffRfb
__ZN7WebCore12PrintContext16isPageBoxVisibleEPNS_5FrameEi
__ZN7WebCore12PrintContext20pageNumberForElementEPNS_7ElementERKNS_9FloatSizeE
__ZN7WebCore12PrintContext26pageSizeAndMarginsInPixelsEPNS_5FrameEiiiiiii
+__ZN7WebCore12PrintContext27computeAutomaticScaleFactorEf
__ZN7WebCore12PrintContext27spoolAllPagesWithBoundariesEPNS_5FrameERNS_15GraphicsContextERKNS_9FloatSizeE
__ZN7WebCore12PrintContext28computePageRectsWithPageSizeERKNS_9FloatSizeEb
+__ZN7WebCore12PrintContext3endEv
+__ZN7WebCore12PrintContext5beginEff
+__ZN7WebCore12PrintContext9spoolPageERNS_15GraphicsContextEif
+__ZN7WebCore12PrintContext9spoolRectERNS_15GraphicsContextERKNS_7IntRectE
__ZN7WebCore12PrintContextC1EPNS_5FrameE
__ZN7WebCore12PrintContextD1Ev
__ZN7WebCore12RenderObject16repaintRectangleERKNS_7IntRectEb
__ZN7WebCore12RenderWidget19showSubstituteImageEN3WTF10PassRefPtrINS_5ImageEEE
+__ZN7WebCore12RenderWidget28resumeWidgetHierarchyUpdatesEv
+__ZN7WebCore12RenderWidget29suspendWidgetHierarchyUpdatesEv
__ZN7WebCore12SchedulePairC1EP9NSRunLoopPK10__CFString
__ZN7WebCore12SharedBuffer10wrapNSDataEP6NSData
__ZN7WebCore12SharedBuffer12createNSDataEv
@@ -677,7 +688,6 @@ __ZN7WebCore5Range6createEN3WTF10PassRefPtrINS_8DocumentEEENS2_INS_4NodeEEEiS6_i
__ZN7WebCore5Range6setEndEN3WTF10PassRefPtrINS_4NodeEEEiRi
__ZN7WebCore5Range8setStartEN3WTF10PassRefPtrINS_4NodeEEEiRi
__ZN7WebCore5RangeD1Ev
-__ZN7WebCore5cacheEv
__ZN7WebCore6Chrome16setStatusbarTextEPNS_5FrameERKN3WTF6StringE
__ZN7WebCore6Cursor8fromTypeENS0_4TypeE
__ZN7WebCore6CursorD1Ev
@@ -727,6 +737,7 @@ __ZN7WebCore6Editor7CommandC1Ev
__ZN7WebCore6Editor7commandERKN3WTF6StringE
__ZN7WebCore6Editor7outdentEv
__ZN7WebCore6Widget12setFrameRectERKNS_7IntRectE
+__ZN7WebCore6Widget13setBoundsSizeERKNS_7IntSizeE
__ZN7WebCore6Widget16removeFromParentEv
__ZN7WebCore6Widget17frameRectsChangedEv
__ZN7WebCore6Widget17setPlatformWidgetEP6NSView
@@ -769,7 +780,6 @@ __ZN7WebCore8FormDataD1Ev
__ZN7WebCore8Gradient12addColorStopEfRKNS_5ColorE
__ZN7WebCore8GradientC1ERKNS_10FloatPointES3_
__ZN7WebCore8IntPointC1ERK8_NSPoint
-__ZN7WebCore8openFileERKN3WTF6StringENS_12FileOpenModeE
__ZN7WebCore8PositionC1EN3WTF10PassRefPtrINS_4NodeEEEi
__ZN7WebCore8Settings14setJavaEnabledEb
__ZN7WebCore8Settings15setWebGLEnabledEb
@@ -836,6 +846,7 @@ __ZN7WebCore8Settings40setTextDirectionSubmenuInclusionBehaviorENS_37TextDirecti
__ZN7WebCore8Settings41setNeedsKeyboardEventDisambiguationQuirksEb
__ZN7WebCore8blankURLEv
__ZN7WebCore8makeRGBAEiiii
+__ZN7WebCore8openFileERKN3WTF6StringENS_12FileOpenModeE
__ZN7WebCore8toStringERKN3WTF6VectorINS_11ProxyServerELm0EEE
__ZN7WebCore9DOMWindow30dispatchAllPendingUnloadEventsEv
__ZN7WebCore9DOMWindow36dispatchAllPendingBeforeUnloadEventsEv
@@ -946,6 +957,8 @@ __ZNK7WebCore10RenderText9firstRunYEv
__ZNK7WebCore10ScrollView12contentsSizeEv
__ZNK7WebCore10ScrollView12documentViewEv
__ZNK7WebCore10ScrollView14scrollbarModesERNS_13ScrollbarModeES2_
+__ZNK7WebCore10ScrollView14useFixedLayoutEv
+__ZNK7WebCore10ScrollView15fixedLayoutSizeEv
__ZNK7WebCore10ScrollView16contentsToWindowERKNS_7IntRectE
__ZNK7WebCore10ScrollView16contentsToWindowERKNS_8IntPointE
__ZNK7WebCore10ScrollView18visibleContentRectEb
@@ -1161,12 +1174,12 @@ __ZNK7WebCore6Widget25convertFromContainingViewERKNS_8IntPointE
__ZNK7WebCore6Widget25convertToContainingWindowERKNS_7IntRectE
__ZNK7WebCore6Widget25convertToContainingWindowERKNS_8IntPointE
__ZNK7WebCore6Widget9frameRectEv
+__ZNK7WebCore7Element10screenRectEv
__ZNK7WebCore7Element12getAttributeERKNS_13QualifiedNameE
__ZNK7WebCore7Element19boundsInWindowSpaceEv
__ZNK7WebCore7Element9innerTextEv
-__ZNK7WebCore7IntRect8containsERKS0_
__ZNK7WebCore7IntRect10intersectsERKS0_
-__ZNK7WebCore7Element10screenRectEv
+__ZNK7WebCore7IntRect8containsERKS0_
__ZNK7WebCore7IntRectcv6CGRectEv
__ZNK7WebCore7IntRectcv7_NSRectEv
__ZNK7WebCore7IntSizecv7_NSSizeEv
@@ -1179,6 +1192,7 @@ __ZNK7WebCore8Document20cacheDocumentElementEv
__ZNK7WebCore8Document31displayStringModifiedByEncodingERKN3WTF6StringE
__ZNK7WebCore8Document4bodyEv
__ZNK7WebCore8Document6domainEv
+__ZNK7WebCore8IntPointcv7CGPointEv
__ZNK7WebCore8IntPointcv8_NSPointEv
__ZNK7WebCore8Position10downstreamENS_27EditingBoundaryCrossingRuleE
__ZNK7WebCore8Position25leadingWhitespacePositionENS_9EAffinityEb
@@ -1324,7 +1338,8 @@ __ZN7WebCore14DragController11dragUpdatedEPNS_8DragDataE
__ZN7WebCore14DragController11performDragEPNS_8DragDataE
__ZN7WebCore14DragController14placeDragCaretERKNS_8IntPointE
__ZN7WebCore14DragController9dragEndedEv
-__ZN7WebCore8DragDataC1EP11objc_objectRKNS_8IntPointES5_NS_13DragOperationEPNS_16PasteboardHelperE
+__ZN7WebCore8DragDataC1EP11objc_objectRKNS_8IntPointES5_NS_13DragOperationENS_20DragApplicationFlagsE
+__ZN7WebCore8DragDataC1ERKN3WTF6StringERKNS_8IntPointES7_NS_13DragOperationENS_20DragApplicationFlagsE
#endif
#if ENABLE(GEOLOCATION)
@@ -1342,7 +1357,7 @@ __ZN7WebCore15InspectorClient31doDispatchMessageOnFrontendPageEPNS_4PageERKN3WTF
__ZN7WebCore19InspectorController12ConsolePanelE
__ZN7WebCore19InspectorController12ScriptsPanelE
__ZN7WebCore19InspectorController13ProfilesPanelE
-__ZN7WebCore19InspectorController14enableDebuggerEv
+__ZN7WebCore19InspectorController21showAndEnableDebuggerEv
__ZN7WebCore19InspectorController14enableProfilerEbb
__ZN7WebCore19InspectorController15disableDebuggerEb
__ZN7WebCore19InspectorController15disableProfilerEb
diff --git a/Source/WebCore/WebCore.gyp/WebCore.gyp b/Source/WebCore/WebCore.gyp/WebCore.gyp
index 2cd5169..34066f7 100644
--- a/Source/WebCore/WebCore.gyp/WebCore.gyp
+++ b/Source/WebCore/WebCore.gyp/WebCore.gyp
@@ -32,7 +32,7 @@
'includes': [
# FIXME: Sense whether upstream or downstream build, and
# include the right features.gypi
- '../../../WebKit/chromium/features.gypi',
+ '../../../Source/WebKit/chromium/features.gypi',
'../WebCore.gypi',
],
# Location of the chromium src directory.
@@ -40,7 +40,7 @@
['inside_chromium_build==0', {
# Webkit is being built outside of the full chromium project.
'variables': {
- 'chromium_src_dir': '../../../WebKit/chromium',
+ 'chromium_src_dir': '../../../Source/WebKit/chromium',
'libjpeg_gyp_path': '<(chromium_src_dir)/third_party/libjpeg/libjpeg.gyp',
},
},{
@@ -333,6 +333,29 @@
]
},
{
+ 'target_name': 'injected_script_source',
+ 'type': 'none',
+ 'actions': [
+ {
+ 'action_name': 'generateInjectedScriptSource',
+ 'inputs': [
+ '../inspector/InjectedScriptSource.js',
+ ],
+ 'outputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/InjectedScriptSource.h',
+ ],
+ 'action': [
+ 'perl',
+ '../inspector/xxd.pl',
+ 'InjectedScriptSource_js',
+ '../inspector/InjectedScriptSource.js',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/InjectedScriptSource.h'
+ ],
+ 'message': 'Generating InjectedScriptSource.h from InjectedScriptSource.js',
+ },
+ ]
+ },
+ {
'target_name': 'webcore_bindings_sources',
'type': 'none',
'hard_dependency': 1,
@@ -723,6 +746,7 @@
'dependencies': [
'webcore_bindings_sources',
'inspector_protocol_sources',
+ 'injected_script_source',
'../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
'../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
'<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl',
@@ -1061,7 +1085,7 @@
'<@(webcore_files)',
# For WebCoreSystemInterface, Mac-only.
- '../../../WebKit/mac/WebCoreSupport/WebSystemInterface.mm',
+ '../../../Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm',
],
'sources/': [
# Start by excluding everything then include platform files only.
@@ -1177,7 +1201,7 @@
# Use USE_NEW_THEME on Mac.
['include', 'platform/Theme\\.cpp$'],
- ['include', 'WebKit/mac/WebCoreSupport/WebSystemInterface\\.mm$'],
+ ['include', 'Source/WebKit/mac/WebCoreSupport/WebSystemInterface\\.mm$'],
# Chromium Mac does not use skia.
['exclude', 'platform/graphics/skia/[^/]*Skia\\.(cpp|h)$'],
@@ -1236,11 +1260,6 @@
['exclude', 'platform/graphics/skia/GlyphPageTreeNodeSkia\\.cpp$']
],
}],
- ['"ENABLE_CLIENT_BASED_GEOLOCATION=1" in feature_defines', {
- 'sources/': [
- ['exclude', '/GeolocationService.*$'],
- ],
- }],
['(OS=="linux" or OS=="win") and "WTF_USE_WEBAUDIO_MKL=1" in feature_defines', {
'sources/': [
['include', 'platform/audio/mkl/FFTFrameMKL\\.cpp$'],
@@ -1304,9 +1323,6 @@
# Don't build IDBKeyPathBackendImpl. We have our own implementation.
['exclude', 'storage/IDBKeyPathBackendImpl\\.cpp$'],
- # Use history/BackForwardListChromium.cpp instead.
- ['exclude', 'history/BackForwardListImpl\\.cpp$'],
-
# Use loader/icon/IconDatabaseNone.cpp instead.
['exclude', 'loader/icon/IconDatabase\\.cpp$'],
@@ -1448,7 +1464,7 @@
'direct_dependent_settings': {
'include_dirs': [
'../../../WebKitLibraries',
- '../../../WebKit/mac/WebCoreSupport',
+ '../../../Source/WebKit/mac/WebCoreSupport',
],
},
}],
diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi
index 9a0421d..f4a239f 100644
--- a/Source/WebCore/WebCore.gypi
+++ b/Source/WebCore/WebCore.gypi
@@ -119,6 +119,7 @@
'html/DOMFormData.idl',
'html/DOMSettableTokenList.idl',
'html/DOMTokenList.idl',
+ 'html/DOMURL.idl',
'html/DataGridColumn.idl',
'html/DataGridColumnList.idl',
'html/HTMLAllCollection.idl',
@@ -1588,7 +1589,6 @@
'history/BackForwardList.h',
'history/BackForwardListImpl.cpp',
'history/BackForwardListImpl.h',
- 'history/BackForwardListChromium.cpp',
'history/CachedFrame.cpp',
'history/CachedFrame.h',
'history/CachedFramePlatformData.h',
@@ -1627,6 +1627,8 @@
'html/DOMSettableTokenList.h',
'html/DOMTokenList.cpp',
'html/DOMTokenList.h',
+ 'html/DOMURL.cpp',
+ 'html/DOMURL.h',
'html/DataGridColumn.cpp',
'html/DataGridColumn.h',
'html/DataGridColumnList.cpp',
@@ -1999,8 +2001,12 @@
'inspector/InjectedScriptHost.h',
'inspector/InspectorApplicationCacheAgent.cpp',
'inspector/InspectorApplicationCacheAgent.h',
+ 'inspector/InspectorBrowserDebuggerAgent.cpp',
+ 'inspector/InspectorBrowserDebuggerAgent.h',
'inspector/InspectorClient.cpp',
'inspector/InspectorClient.h',
+ 'inspector/InspectorConsoleAgent.cpp',
+ 'inspector/InspectorConsoleAgent.h',
'inspector/InspectorController.cpp',
'inspector/InspectorController.h',
'inspector/InspectorCSSAgent.cpp',
@@ -2029,6 +2035,8 @@
'inspector/InspectorResourceAgent.cpp',
'inspector/InspectorResourceAgent.h',
'inspector/InspectorState.cpp',
+ 'inspector/InspectorSettings.h',
+ 'inspector/InspectorSettings.cpp',
'inspector/InspectorState.h',
'inspector/InspectorStyleSheet.cpp',
'inspector/InspectorStyleSheet.h',
@@ -2192,26 +2200,6 @@
'mathml/MathMLMathElement.h',
'mathml/MathMLTextElement.cpp',
'mathml/MathMLTextElement.h',
- 'mathml/RenderMathMLBlock.cpp',
- 'mathml/RenderMathMLBlock.h',
- 'mathml/RenderMathMLFenced.cpp',
- 'mathml/RenderMathMLFenced.h',
- 'mathml/RenderMathMLFraction.cpp',
- 'mathml/RenderMathMLFraction.h',
- 'mathml/RenderMathMLMath.cpp',
- 'mathml/RenderMathMLMath.h',
- 'mathml/RenderMathMLOperator.cpp',
- 'mathml/RenderMathMLOperator.h',
- 'mathml/RenderMathMLRoot.cpp',
- 'mathml/RenderMathMLRoot.h',
- 'mathml/RenderMathMLRow.cpp',
- 'mathml/RenderMathMLRow.h',
- 'mathml/RenderMathMLSquareRoot.cpp',
- 'mathml/RenderMathMLSquareRoot.h',
- 'mathml/RenderMathMLSubSup.cpp',
- 'mathml/RenderMathMLSubSup.h',
- 'mathml/RenderMathMLUnderOver.cpp',
- 'mathml/RenderMathMLUnderOver.h',
'notifications/Notification.cpp',
'notifications/Notification.h',
'notifications/NotificationCenter.cpp',
@@ -2479,8 +2467,6 @@
'platform/chromium/FramelessScrollView.cpp',
'platform/chromium/FramelessScrollView.h',
'platform/chromium/FramelessScrollViewClient.h',
- 'platform/chromium/GeolocationServiceChromium.cpp',
- 'platform/chromium/GeolocationServiceChromium.h',
'platform/chromium/KeyCodeConversion.h',
'platform/chromium/KeyCodeConversionGtk.cpp',
'platform/chromium/LanguageChromium.cpp',
@@ -2956,8 +2942,6 @@
'platform/graphics/PathTraversalState.h',
'platform/graphics/Pattern.cpp',
'platform/graphics/Pattern.h',
- 'platform/graphics/Pen.cpp',
- 'platform/graphics/Pen.h',
'platform/graphics/SegmentedFontData.cpp',
'platform/graphics/SegmentedFontData.h',
'platform/graphics/SimpleFontData.cpp',
@@ -3597,6 +3581,26 @@
'plugins/PluginViewNone.cpp',
'plugins/npapi.cpp',
'plugins/npfunctions.h',
+ 'rendering/mathml/RenderMathMLBlock.cpp',
+ 'rendering/mathml/RenderMathMLBlock.h',
+ 'rendering/mathml/RenderMathMLFenced.cpp',
+ 'rendering/mathml/RenderMathMLFenced.h',
+ 'rendering/mathml/RenderMathMLFraction.cpp',
+ 'rendering/mathml/RenderMathMLFraction.h',
+ 'rendering/mathml/RenderMathMLMath.cpp',
+ 'rendering/mathml/RenderMathMLMath.h',
+ 'rendering/mathml/RenderMathMLOperator.cpp',
+ 'rendering/mathml/RenderMathMLOperator.h',
+ 'rendering/mathml/RenderMathMLRoot.cpp',
+ 'rendering/mathml/RenderMathMLRoot.h',
+ 'rendering/mathml/RenderMathMLRow.cpp',
+ 'rendering/mathml/RenderMathMLRow.h',
+ 'rendering/mathml/RenderMathMLSquareRoot.cpp',
+ 'rendering/mathml/RenderMathMLSquareRoot.h',
+ 'rendering/mathml/RenderMathMLSubSup.cpp',
+ 'rendering/mathml/RenderMathMLSubSup.h',
+ 'rendering/mathml/RenderMathMLUnderOver.cpp',
+ 'rendering/mathml/RenderMathMLUnderOver.h',
'rendering/style/BorderData.h',
'rendering/style/BorderValue.h',
'rendering/style/CollapsedBorderValue.h',
@@ -3654,24 +3658,87 @@
'rendering/style/StyleTransformData.h',
'rendering/style/StyleVisualData.cpp',
'rendering/style/StyleVisualData.h',
+ 'rendering/svg/RenderSVGBlock.cpp',
+ 'rendering/svg/RenderSVGBlock.h',
+ 'rendering/svg/RenderSVGContainer.cpp',
+ 'rendering/svg/RenderSVGContainer.h',
+ 'rendering/svg/RenderSVGForeignObject.cpp',
+ 'rendering/svg/RenderSVGForeignObject.h',
+ 'rendering/svg/RenderSVGGradientStop.cpp',
+ 'rendering/svg/RenderSVGGradientStop.h',
+ 'rendering/svg/RenderSVGHiddenContainer.cpp',
+ 'rendering/svg/RenderSVGHiddenContainer.h',
+ 'rendering/svg/RenderSVGImage.cpp',
+ 'rendering/svg/RenderSVGImage.h',
'rendering/svg/RenderSVGInline.cpp',
'rendering/svg/RenderSVGInline.h',
'rendering/svg/RenderSVGInlineText.cpp',
'rendering/svg/RenderSVGInlineText.h',
+ 'rendering/svg/RenderSVGModelObject.cpp',
+ 'rendering/svg/RenderSVGModelObject.h',
'rendering/svg/RenderSVGPath.cpp',
'rendering/svg/RenderSVGPath.h',
+ 'rendering/svg/RenderSVGResource.cpp',
+ 'rendering/svg/RenderSVGResource.h',
+ 'rendering/svg/RenderSVGResourceClipper.cpp',
+ 'rendering/svg/RenderSVGResourceClipper.h',
+ 'rendering/svg/RenderSVGResourceContainer.cpp',
+ 'rendering/svg/RenderSVGResourceContainer.h',
+ 'rendering/svg/RenderSVGResourceFilter.cpp',
+ 'rendering/svg/RenderSVGResourceFilter.h',
+ 'rendering/svg/RenderSVGResourceFilterPrimitive.cpp',
+ 'rendering/svg/RenderSVGResourceFilterPrimitive.h',
+ 'rendering/svg/RenderSVGResourceGradient.cpp',
+ 'rendering/svg/RenderSVGResourceGradient.h',
+ 'rendering/svg/RenderSVGResourceLinearGradient.cpp',
+ 'rendering/svg/RenderSVGResourceLinearGradient.h',
+ 'rendering/svg/RenderSVGResourceMarker.cpp',
+ 'rendering/svg/RenderSVGResourceMarker.h',
+ 'rendering/svg/RenderSVGResourceMasker.cpp',
+ 'rendering/svg/RenderSVGResourceMasker.h',
+ 'rendering/svg/RenderSVGResourcePattern.cpp',
+ 'rendering/svg/RenderSVGResourcePattern.h',
+ 'rendering/svg/RenderSVGResourceRadialGradient.cpp',
+ 'rendering/svg/RenderSVGResourceRadialGradient.h',
+ 'rendering/svg/RenderSVGResourceSolidColor.cpp',
+ 'rendering/svg/RenderSVGResourceSolidColor.h',
+ 'rendering/svg/RenderSVGRoot.cpp',
+ 'rendering/svg/RenderSVGRoot.h',
+ 'rendering/svg/RenderSVGShadowTreeRootContainer.cpp',
+ 'rendering/svg/RenderSVGShadowTreeRootContainer.h',
'rendering/svg/RenderSVGTSpan.cpp',
'rendering/svg/RenderSVGTSpan.h',
'rendering/svg/RenderSVGText.cpp',
'rendering/svg/RenderSVGText.h',
'rendering/svg/RenderSVGTextPath.cpp',
'rendering/svg/RenderSVGTextPath.h',
+ 'rendering/svg/RenderSVGTransformableContainer.cpp',
+ 'rendering/svg/RenderSVGTransformableContainer.h',
+ 'rendering/svg/RenderSVGViewportContainer.cpp',
+ 'rendering/svg/RenderSVGViewportContainer.h',
+ 'rendering/svg/SVGImageBufferTools.cpp',
+ 'rendering/svg/SVGImageBufferTools.h',
'rendering/svg/SVGInlineFlowBox.cpp',
'rendering/svg/SVGInlineFlowBox.h',
'rendering/svg/SVGInlineTextBox.cpp',
'rendering/svg/SVGInlineTextBox.h',
+ 'rendering/svg/SVGMarkerData.h',
+ 'rendering/svg/SVGMarkerLayoutInfo.cpp',
+ 'rendering/svg/SVGMarkerLayoutInfo.h',
+ 'rendering/svg/SVGRenderSupport.cpp',
+ 'rendering/svg/SVGRenderSupport.h',
+ 'rendering/svg/SVGRenderTreeAsText.cpp',
+ 'rendering/svg/SVGRenderTreeAsText.h',
+ 'rendering/svg/SVGResources.cpp',
+ 'rendering/svg/SVGResources.h',
+ 'rendering/svg/SVGResourcesCache.cpp',
+ 'rendering/svg/SVGResourcesCache.h',
+ 'rendering/svg/SVGResourcesCycleSolver.cpp',
+ 'rendering/svg/SVGResourcesCycleSolver.h',
'rendering/svg/SVGRootInlineBox.cpp',
'rendering/svg/SVGRootInlineBox.h',
+ 'rendering/svg/SVGShadowTreeElements.cpp',
+ 'rendering/svg/SVGShadowTreeElements.h',
'rendering/svg/SVGTextChunk.cpp',
'rendering/svg/SVGTextChunk.h',
'rendering/svg/SVGTextChunkBuilder.cpp',
@@ -3751,8 +3818,6 @@
'rendering/RenderFileUploadControl.h',
'rendering/RenderFlexibleBox.cpp',
'rendering/RenderFlexibleBox.h',
- 'rendering/RenderForeignObject.cpp',
- 'rendering/RenderForeignObject.h',
'rendering/RenderFrame.cpp',
'rendering/RenderFrame.h',
'rendering/RenderFrameBase.cpp',
@@ -3821,50 +3886,6 @@
'rendering/RenderRubyText.h',
'rendering/RenderSummary.cpp',
'rendering/RenderSummary.h',
- 'rendering/RenderSVGBlock.cpp',
- 'rendering/RenderSVGBlock.h',
- 'rendering/RenderSVGContainer.cpp',
- 'rendering/RenderSVGContainer.h',
- 'rendering/RenderSVGGradientStop.cpp',
- 'rendering/RenderSVGGradientStop.h',
- 'rendering/RenderSVGHiddenContainer.cpp',
- 'rendering/RenderSVGHiddenContainer.h',
- 'rendering/RenderSVGImage.cpp',
- 'rendering/RenderSVGImage.h',
- 'rendering/RenderSVGModelObject.cpp',
- 'rendering/RenderSVGModelObject.h',
- 'rendering/RenderSVGResource.cpp',
- 'rendering/RenderSVGResource.h',
- 'rendering/RenderSVGResourceClipper.cpp',
- 'rendering/RenderSVGResourceClipper.h',
- 'rendering/RenderSVGResourceContainer.cpp',
- 'rendering/RenderSVGResourceContainer.h',
- 'rendering/RenderSVGResourceFilter.cpp',
- 'rendering/RenderSVGResourceFilter.h',
- 'rendering/RenderSVGResourceFilterPrimitive.cpp',
- 'rendering/RenderSVGResourceFilterPrimitive.h',
- 'rendering/RenderSVGResourceGradient.cpp',
- 'rendering/RenderSVGResourceGradient.h',
- 'rendering/RenderSVGResourceLinearGradient.cpp',
- 'rendering/RenderSVGResourceLinearGradient.h',
- 'rendering/RenderSVGResourceMarker.cpp',
- 'rendering/RenderSVGResourceMarker.h',
- 'rendering/RenderSVGResourceMasker.cpp',
- 'rendering/RenderSVGResourceMasker.h',
- 'rendering/RenderSVGResourcePattern.cpp',
- 'rendering/RenderSVGResourcePattern.h',
- 'rendering/RenderSVGResourceRadialGradient.cpp',
- 'rendering/RenderSVGResourceRadialGradient.h',
- 'rendering/RenderSVGResourceSolidColor.cpp',
- 'rendering/RenderSVGResourceSolidColor.h',
- 'rendering/RenderSVGRoot.cpp',
- 'rendering/RenderSVGRoot.h',
- 'rendering/RenderSVGShadowTreeRootContainer.cpp',
- 'rendering/RenderSVGShadowTreeRootContainer.h',
- 'rendering/RenderSVGTransformableContainer.cpp',
- 'rendering/RenderSVGTransformableContainer.h',
- 'rendering/RenderSVGViewportContainer.cpp',
- 'rendering/RenderSVGViewportContainer.h',
'rendering/RenderScrollbar.cpp',
'rendering/RenderScrollbar.h',
'rendering/RenderScrollbarPart.cpp',
@@ -3926,23 +3947,6 @@
'rendering/ScrollBehavior.h',
'rendering/ShadowElement.cpp',
'rendering/ShadowElement.h',
- 'rendering/SVGImageBufferTools.cpp',
- 'rendering/SVGImageBufferTools.h',
- 'rendering/SVGMarkerData.h',
- 'rendering/SVGMarkerLayoutInfo.cpp',
- 'rendering/SVGMarkerLayoutInfo.h',
- 'rendering/SVGRenderSupport.cpp',
- 'rendering/SVGRenderSupport.h',
- 'rendering/SVGRenderTreeAsText.cpp',
- 'rendering/SVGRenderTreeAsText.h',
- 'rendering/SVGResources.cpp',
- 'rendering/SVGResources.h',
- 'rendering/SVGResourcesCache.cpp',
- 'rendering/SVGResourcesCache.h',
- 'rendering/SVGResourcesCycleSolver.cpp',
- 'rendering/SVGResourcesCycleSolver.h',
- 'rendering/SVGShadowTreeElements.cpp',
- 'rendering/SVGShadowTreeElements.h',
'rendering/TableLayout.h',
'rendering/TextControlInnerElements.cpp',
'rendering/TextControlInnerElements.h',
@@ -4642,7 +4646,6 @@
'inspector/front-end/ImageView.js',
'inspector/front-end/InspectorFrontendHostStub.js',
'inspector/front-end/InjectedFakeWorker.js',
- 'inspector/front-end/InjectedScript.js',
'inspector/front-end/InjectedScriptAccess.js',
'inspector/front-end/inspector.js',
'inspector/front-end/KeyboardShortcut.js',
diff --git a/Source/WebCore/WebCore.order b/Source/WebCore/WebCore.order
index 271dfc9..e88c444 100644
--- a/Source/WebCore/WebCore.order
+++ b/Source/WebCore/WebCore.order
@@ -371,7 +371,7 @@ __ZN7WebCore15CollectionCache5resetEv
__ZN3WTF20deleteAllPairSecondsIPNS_6VectorIPN7WebCore7ElementELm0EEEKNS_7HashMapIPNS2_16AtomicStringImplES6_NS_7PtrHashIS9_EENS
__ZN7WebCore9DocLoaderC1EPNS_8DocumentE
__ZN7WebCore9DocLoaderC2EPNS_8DocumentE
-__ZN7WebCore5cacheEv
+__ZN7WebCore11memoryCacheEv
__ZN7WebCore5CacheC1Ev
__ZN7WebCore5CacheC2Ev
__ZN7WebCore6LoaderC1Ev
diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri
index 0c33eed..736d534 100644
--- a/Source/WebCore/WebCore.pri
+++ b/Source/WebCore/WebCore.pri
@@ -60,6 +60,7 @@ STYLESHEETS_EMBED = \
$$PWD/css/wml.css \
$$PWD/css/mediaControls.css \
$$PWD/css/mediaControlsQt.css \
+ $$PWD/css/mediaControlsQtFullscreen.css \
$$PWD/css/themeQtNoListboxes.css \
$$PWD/css/themeQtMobile.css
@@ -213,6 +214,7 @@ IDL_BINDINGS += \
html/DOMFormData.idl \
html/DOMSettableTokenList.idl \
html/DOMTokenList.idl \
+ html/DOMURL.idl \
html/HTMLAllCollection.idl \
html/HTMLAudioElement.idl \
html/HTMLAnchorElement.idl \
@@ -537,6 +539,7 @@ IDL_BINDINGS += \
INSPECTOR_INTERFACES = inspector/Inspector.idl
INSPECTOR_BACKEND_STUB_QRC = inspector/front-end/InspectorBackendStub.qrc
+INJECTED_SCRIPT_SOURCE = $$PWD/inspector/InjectedScriptSource.js
v8: wrapperFactoryArg = --wrapperFactoryV8
else: wrapperFactoryArg = --wrapperFactory
@@ -650,6 +653,12 @@ inspectorBackendStub.tempNames = $$PWD/$$INSPECTOR_BACKEND_STUB_QRC $${WC_GENERA
inspectorBackendStub.commands = $$QMAKE_COPY $$replace(inspectorBackendStub.tempNames, "/", $$QMAKE_DIR_SEP)
addExtraCompiler(inspectorBackendStub)
+# GENERATOR 2-a: inspector injected script source compiler
+injectedScriptSource.output = $${WC_GENERATED_SOURCES_DIR}/InjectedScriptSource.h
+injectedScriptSource.input = INJECTED_SCRIPT_SOURCE
+injectedScriptSource.commands = perl $$PWD/inspector/xxd.pl InjectedScriptSource_js $$PWD/inspector/InjectedScriptSource.js $${WC_GENERATED_SOURCES_DIR}/InjectedScriptSource.h
+addExtraCompiler(injectedScriptSource)
+
# GENERATOR 3: tokenizer (flex)
tokenizer.output = $${WC_GENERATED_SOURCES_DIR}/${QMAKE_FILE_BASE}.cpp
tokenizer.input = TOKENIZER
@@ -737,11 +746,11 @@ xpathbison.depends = ${QMAKE_FILE_NAME}
addExtraCompiler(xpathbison)
# GENERATOR 11: WebKit Version
-# The appropriate Apple-maintained Version.xcconfig file for WebKit version information is in WebKit/mac/Configurations/.
-webkitversion.wkScript = $$PWD/../../WebKit/scripts/generate-webkitversion.pl
+# The appropriate Apple-maintained Version.xcconfig file for WebKit version information is in Source/WebKit/mac/Configurations/.
+webkitversion.wkScript = $$PWD/../../Source/WebKit/scripts/generate-webkitversion.pl
webkitversion.output = $${WC_GENERATED_SOURCES_DIR}/WebKitVersion.h
webkitversion.input = webkitversion.wkScript
-webkitversion.commands = perl $$webkitversion.wkScript --config $$PWD/../../WebKit/mac/Configurations/Version.xcconfig --outputDir $${WC_GENERATED_SOURCES_DIR}/
+webkitversion.commands = perl $$webkitversion.wkScript --config $$PWD/../../Source/WebKit/mac/Configurations/Version.xcconfig --outputDir $${WC_GENERATED_SOURCES_DIR}/
webkitversion.clean = ${QMAKE_VAR_WC_GENERATED_SOURCES_DIR}/WebKitVersion.h
webkitversion.wkAddOutputToSources = false
addExtraCompiler(webkitversion)
diff --git a/Source/WebCore/WebCore.pro b/Source/WebCore/WebCore.pro
index de927a3..d37cdc7 100644
--- a/Source/WebCore/WebCore.pro
+++ b/Source/WebCore/WebCore.pro
@@ -52,12 +52,12 @@ symbian: {
" "
webkitlibs.pkg_prerules = vendorinfo
- webkitbackup.sources = ../../WebKit/qt/symbian/backup_registration.xml
+ webkitbackup.sources = ../../Source/WebKit/qt/symbian/backup_registration.xml
webkitbackup.path = /private/10202D56/import/packages/$$replace(TARGET.UID3, 0x,)
contains(QT_CONFIG, declarative) {
declarativeImport.sources = $$QT_BUILD_TREE/imports/QtWebKit/qmlwebkitplugin$${QT_LIBINFIX}.dll
- declarativeImport.sources += ../../WebKit/qt/declarative/qmldir
+ declarativeImport.sources += ../../Source/WebKit/qt/declarative/qmldir
declarativeImport.path = c:$$QT_IMPORTS_BASE_DIR/QtWebKit
DEPLOYMENT += declarativeImport
}
@@ -90,7 +90,7 @@ CONFIG(standalone_package) {
isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = $$PWD/generated
isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = $$PWD/../JavaScriptCore/generated
- PRECOMPILED_HEADER = $$PWD/../../WebKit/qt/WebKit_pch.h
+ PRECOMPILED_HEADER = $$PWD/../../Source/WebKit/qt/WebKit_pch.h
} else {
isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = generated
isEmpty(JSC_GENERATED_SOURCES_DIR):JSC_GENERATED_SOURCES_DIR = ../JavaScriptCore/generated
@@ -110,7 +110,7 @@ CONFIG(QTDIR_build) {
!static: DEFINES += QT_MAKEDLL
symbian: TARGET =$$TARGET$${QT_LIBINFIX}
}
-moduleFile=$$PWD/../../WebKit/qt/qt_webkit_version.pri
+moduleFile=$$PWD/../../Source/WebKit/qt/qt_webkit_version.pri
isEmpty(QT_BUILD_TREE):include($$moduleFile)
VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
@@ -181,8 +181,8 @@ include($$PWD/../JavaScriptCore/JavaScriptCore.pri)
!v8: addJavaScriptCoreLib(../JavaScriptCore)
webkit2 {
- include($$PWD/../../WebKit2/WebKit2.pri)
- addWebKit2LibWholeArchive(../../WebKit2)
+ include($$PWD/../../Source/WebKit2/WebKit2.pri)
+ addWebKit2LibWholeArchive(../../Source/WebKit2)
}
# Extract sources to build from the generator definitions
@@ -262,6 +262,7 @@ WEBCORE_INCLUDEPATH = \
$$PWD/platform/text/transcoder \
$$PWD/plugins \
$$PWD/rendering \
+ $$PWD/rendering/mathml \
$$PWD/rendering/style \
$$PWD/rendering/svg \
$$PWD/storage \
@@ -284,8 +285,8 @@ WEBCORE_INCLUDEPATH = \
$$PWD/platform/graphics/qt \
$$PWD/platform/network/qt \
$$PWD/platform/qt \
- $$PWD/../../WebKit/qt/Api \
- $$PWD/../../WebKit/qt/WebCoreSupport \
+ $$PWD/../../Source/WebKit/qt/Api \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport \
$$WEBCORE_INCLUDEPATH
symbian {
@@ -891,6 +892,7 @@ SOURCES += \
html/DOMFormData.cpp \
html/DOMSettableTokenList.cpp \
html/DOMTokenList.cpp \
+ html/DOMURL.cpp \
html/DataGridColumn.cpp \
html/DataGridColumnList.cpp \
html/DateComponents.cpp \
@@ -1041,8 +1043,10 @@ SOURCES += \
inspector/InjectedScript.cpp \
inspector/InjectedScriptHost.cpp \
inspector/InspectorApplicationCacheAgent.cpp \
+ inspector/InspectorBrowserDebuggerAgent.cpp \
inspector/InspectorCSSAgent.cpp \
inspector/InspectorClient.cpp \
+ inspector/InspectorConsoleAgent.cpp \
inspector/InspectorController.cpp \
inspector/InspectorDatabaseAgent.cpp \
inspector/InspectorDatabaseResource.cpp \
@@ -1056,6 +1060,7 @@ SOURCES += \
inspector/InspectorInstrumentation.cpp \
inspector/InspectorProfilerAgent.cpp \
inspector/InspectorResourceAgent.cpp \
+ inspector/InspectorSettings.cpp \
inspector/InspectorState.cpp \
inspector/InspectorStyleSheet.cpp \
inspector/InspectorTimelineAgent.cpp \
@@ -1178,7 +1183,7 @@ SOURCES += \
platform/FileStream.cpp \
platform/FileSystem.cpp \
platform/GeolocationService.cpp \
- platform/image-decoders/qt/RGBA32BufferQt.cpp \
+ platform/image-decoders/qt/ImageFrameQt.cpp \
platform/graphics/FontDescription.cpp \
platform/graphics/FontFallbackList.cpp \
platform/graphics/FontFamily.cpp \
@@ -1205,7 +1210,6 @@ SOURCES += \
platform/graphics/Path.cpp \
platform/graphics/PathTraversalState.cpp \
platform/graphics/Pattern.cpp \
- platform/graphics/Pen.cpp \
platform/graphics/SegmentedFontData.cpp \
platform/graphics/SimpleFontData.cpp \
platform/graphics/TiledBackingStore.cpp \
@@ -1358,7 +1362,6 @@ SOURCES += \
rendering/RenderWidget.cpp \
rendering/RenderWordBreak.cpp \
rendering/RootInlineBox.cpp \
- rendering/SVGRenderTreeAsText.cpp \
rendering/ScrollBehavior.cpp \
rendering/ShadowElement.cpp \
rendering/TextControlInnerElements.cpp \
@@ -1814,6 +1817,7 @@ HEADERS += \
html/DOMFormData.h \
html/DOMSettableTokenList.h \
html/DOMTokenList.h \
+ html/DOMURL.h \
html/FormAssociatedElement.h \
html/FormDataList.h \
html/FTPDirectoryDocument.h \
@@ -1934,6 +1938,8 @@ HEADERS += \
inspector/InjectedScript.h \
inspector/InjectedScriptHost.h \
inspector/InspectorApplicationCacheAgent.h \
+ inspector/InspectorBrowserDebuggerAgent.h \
+ inspector/InspectorConsoleAgent.h \
inspector/InspectorController.h \
inspector/InspectorCSSAgent.h \
inspector/InspectorDatabaseAgent.h \
@@ -1948,6 +1954,7 @@ HEADERS += \
inspector/InspectorInstrumentation.h \
inspector/InspectorProfilerAgent.h \
inspector/InspectorResourceAgent.h \
+ inspector/InspectorSettings.h \
inspector/InspectorState.h \
inspector/InspectorStyleSheet.h \
inspector/InspectorTimelineAgent.h \
@@ -2001,16 +2008,6 @@ HEADERS += \
mathml/MathMLInlineContainerElement.h \
mathml/MathMLMathElement.h \
mathml/MathMLTextElement.h \
- mathml/RenderMathMLBlock.h \
- mathml/RenderMathMLFenced.h \
- mathml/RenderMathMLFraction.h \
- mathml/RenderMathMLMath.h \
- mathml/RenderMathMLOperator.h \
- mathml/RenderMathMLRoot.h \
- mathml/RenderMathMLRow.h \
- mathml/RenderMathMLSquareRoot.h \
- mathml/RenderMathMLSubSup.h \
- mathml/RenderMathMLUnderOver.h \
notifications/Notification.h \
notifications/NotificationCenter.h \
notifications/NotificationPresenter.h \
@@ -2132,7 +2129,6 @@ HEADERS += \
platform/graphics/Path.h \
platform/graphics/PathTraversalState.h \
platform/graphics/Pattern.h \
- platform/graphics/Pen.h \
platform/graphics/qt/FontCustomPlatformData.h \
platform/graphics/qt/ImageDecoderQt.h \
platform/graphics/qt/StillImageQt.h \
@@ -2249,6 +2245,16 @@ HEADERS += \
rendering/InlineFlowBox.h \
rendering/InlineTextBox.h \
rendering/LayoutState.h \
+ rendering/mathml/RenderMathMLBlock.h \
+ rendering/mathml/RenderMathMLFenced.h \
+ rendering/mathml/RenderMathMLFraction.h \
+ rendering/mathml/RenderMathMLMath.h \
+ rendering/mathml/RenderMathMLOperator.h \
+ rendering/mathml/RenderMathMLRoot.h \
+ rendering/mathml/RenderMathMLRow.h \
+ rendering/mathml/RenderMathMLSquareRoot.h \
+ rendering/mathml/RenderMathMLSubSup.h \
+ rendering/mathml/RenderMathMLUnderOver.h \
rendering/MediaControlElements.h \
rendering/PaintInfo.h \
rendering/PaintPhase.h \
@@ -2268,7 +2274,6 @@ HEADERS += \
rendering/RenderFieldset.h \
rendering/RenderFileUploadControl.h \
rendering/RenderFlexibleBox.h \
- rendering/RenderForeignObject.h \
rendering/RenderFrame.h \
rendering/RenderFrameBase.h \
rendering/RenderFrameSet.h \
@@ -2306,28 +2311,6 @@ HEADERS += \
rendering/RenderScrollbarTheme.h \
rendering/RenderSlider.h \
rendering/RenderSummary.h \
- rendering/RenderSVGBlock.h \
- rendering/RenderSVGContainer.h \
- rendering/RenderSVGGradientStop.h \
- rendering/RenderSVGHiddenContainer.h \
- rendering/RenderSVGImage.h \
- rendering/RenderSVGModelObject.h \
- rendering/RenderSVGResource.h \
- rendering/RenderSVGResourceClipper.h \
- rendering/RenderSVGResourceContainer.h \
- rendering/RenderSVGResourceFilter.h \
- rendering/RenderSVGResourceFilterPrimitive.h \
- rendering/RenderSVGResourceGradient.h \
- rendering/RenderSVGResourceLinearGradient.h \
- rendering/RenderSVGResourceMarker.h \
- rendering/RenderSVGResourceMasker.h \
- rendering/RenderSVGResourcePattern.h \
- rendering/RenderSVGResourceRadialGradient.h \
- rendering/RenderSVGResourceSolidColor.h \
- rendering/RenderSVGRoot.h \
- rendering/RenderSVGShadowTreeRootContainer.h \
- rendering/RenderSVGTransformableContainer.h \
- rendering/RenderSVGViewportContainer.h \
rendering/RenderTableCell.h \
rendering/RenderTableCol.h \
rendering/RenderTable.h \
@@ -2372,15 +2355,47 @@ HEADERS += \
rendering/style/StyleVisualData.h \
rendering/style/SVGRenderStyleDefs.h \
rendering/style/SVGRenderStyle.h \
+ rendering/svg/RenderSVGBlock.h \
+ rendering/svg/RenderSVGContainer.h \
+ rendering/svg/RenderSVGForeignObject.h \
+ rendering/svg/RenderSVGGradientStop.h \
+ rendering/svg/RenderSVGHiddenContainer.h \
+ rendering/svg/RenderSVGImage.h \
rendering/svg/RenderSVGInline.h \
rendering/svg/RenderSVGInlineText.h \
+ rendering/svg/RenderSVGModelObject.h \
rendering/svg/RenderSVGPath.h \
+ rendering/svg/RenderSVGResource.h \
+ rendering/svg/RenderSVGResourceClipper.h \
+ rendering/svg/RenderSVGResourceContainer.h \
+ rendering/svg/RenderSVGResourceFilter.h \
+ rendering/svg/RenderSVGResourceFilterPrimitive.h \
+ rendering/svg/RenderSVGResourceGradient.h \
+ rendering/svg/RenderSVGResourceLinearGradient.h \
+ rendering/svg/RenderSVGResourceMarker.h \
+ rendering/svg/RenderSVGResourceMasker.h \
+ rendering/svg/RenderSVGResourcePattern.h \
+ rendering/svg/RenderSVGResourceRadialGradient.h \
+ rendering/svg/RenderSVGResourceSolidColor.h \
+ rendering/svg/RenderSVGRoot.h \
+ rendering/svg/RenderSVGShadowTreeRootContainer.h \
rendering/svg/RenderSVGTSpan.h \
rendering/svg/RenderSVGText.h \
rendering/svg/RenderSVGTextPath.h \
+ rendering/svg/RenderSVGTransformableContainer.h \
+ rendering/svg/RenderSVGViewportContainer.h \
+ rendering/svg/SVGImageBufferTools.h \
rendering/svg/SVGInlineFlowBox.h \
rendering/svg/SVGInlineTextBox.h \
+ rendering/svg/SVGMarkerData.h \
+ rendering/svg/SVGMarkerLayoutInfo.h \
+ rendering/svg/SVGRenderSupport.h \
+ rendering/svg/SVGRenderTreeAsText.h \
+ rendering/svg/SVGResources.h \
+ rendering/svg/SVGResourcesCache.h \
+ rendering/svg/SVGResourcesCycleSolver.h \
rendering/svg/SVGRootInlineBox.h \
+ rendering/svg/SVGShadowTreeElements.h \
rendering/svg/SVGTextChunk.h \
rendering/svg/SVGTextChunkBuilder.h \
rendering/svg/SVGTextFragment.h \
@@ -2391,15 +2406,6 @@ HEADERS += \
rendering/svg/SVGTextLayoutEngineSpacing.h \
rendering/svg/SVGTextMetrics.h \
rendering/svg/SVGTextQuery.h \
- rendering/SVGImageBufferTools.h \
- rendering/SVGMarkerData.h \
- rendering/SVGMarkerLayoutInfo.h \
- rendering/SVGRenderSupport.h \
- rendering/SVGRenderTreeAsText.h \
- rendering/SVGResources.h \
- rendering/SVGResourcesCache.h \
- rendering/SVGResourcesCycleSolver.h \
- rendering/SVGShadowTreeElements.h \
rendering/TextControlInnerElements.h \
rendering/TransformState.h \
svg/animation/SMILTimeContainer.h \
@@ -2649,18 +2655,18 @@ HEADERS += \
xml/XSLTExtensions.h \
xml/XSLTProcessor.h \
xml/XSLTUnicodeSort.h \
- $$PWD/../../WebKit/qt/Api/qwebplugindatabase_p.h \
- $$PWD/../../WebKit/qt/WebCoreSupport/InspectorServerQt.h \
- $$PWD/../../WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h \
- $$PWD/../../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h \
- $$PWD/../../WebKit/qt/WebCoreSupport/FrameNetworkingContextQt.h \
- $$PWD/../../WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h \
- $$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/../../WebKit/qt/WebCoreSupport/WebPlatformStrategies.h \
+ $$PWD/../../Source/WebKit/qt/Api/qwebplugindatabase_p.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/InspectorServerQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/FrameNetworkingContextQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/PageClientQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/PopupMenuQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h \
$$PWD/platform/network/qt/DnsPrefetchHelper.h
v8 {
@@ -2748,39 +2754,39 @@ SOURCES += \
platform/text/qt/TextCodecQt.cpp \
platform/qt/WheelEventQt.cpp \
platform/qt/WidgetQt.cpp \
- ../../WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp \
- ../../WebKit/qt/WebCoreSupport/ChromeClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DragClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp \
- ../../WebKit/qt/WebCoreSupport/EditorClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/EditCommandQt.cpp \
- ../../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/FrameNetworkingContextQt.cpp \
- ../../WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/InspectorServerQt.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/WebCoreSupport/WebPlatformStrategies.cpp \
- ../../WebKit/qt/Api/qwebframe.cpp \
- ../../WebKit/qt/Api/qgraphicswebview.cpp \
- ../../WebKit/qt/Api/qwebpage.cpp \
- ../../WebKit/qt/Api/qwebview.cpp \
- ../../WebKit/qt/Api/qwebelement.cpp \
- ../../WebKit/qt/Api/qwebhistory.cpp \
- ../../WebKit/qt/Api/qwebsettings.cpp \
- ../../WebKit/qt/Api/qwebhistoryinterface.cpp \
- ../../WebKit/qt/Api/qwebplugindatabase.cpp \
- ../../WebKit/qt/Api/qwebpluginfactory.cpp \
- ../../WebKit/qt/Api/qwebsecurityorigin.cpp \
- ../../WebKit/qt/Api/qwebscriptworld.cpp \
- ../../WebKit/qt/Api/qwebdatabase.cpp \
- ../../WebKit/qt/Api/qwebinspector.cpp \
- ../../WebKit/qt/Api/qwebkitversion.cpp
+ ../../Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DragClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/EditCommandQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/FrameNetworkingContextQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/PageClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/SearchPopupMenuQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp \
+ ../../Source/WebKit/qt/Api/qwebframe.cpp \
+ ../../Source/WebKit/qt/Api/qgraphicswebview.cpp \
+ ../../Source/WebKit/qt/Api/qwebpage.cpp \
+ ../../Source/WebKit/qt/Api/qwebview.cpp \
+ ../../Source/WebKit/qt/Api/qwebelement.cpp \
+ ../../Source/WebKit/qt/Api/qwebhistory.cpp \
+ ../../Source/WebKit/qt/Api/qwebsettings.cpp \
+ ../../Source/WebKit/qt/Api/qwebhistoryinterface.cpp \
+ ../../Source/WebKit/qt/Api/qwebplugindatabase.cpp \
+ ../../Source/WebKit/qt/Api/qwebpluginfactory.cpp \
+ ../../Source/WebKit/qt/Api/qwebsecurityorigin.cpp \
+ ../../Source/WebKit/qt/Api/qwebscriptworld.cpp \
+ ../../Source/WebKit/qt/Api/qwebdatabase.cpp \
+ ../../Source/WebKit/qt/Api/qwebinspector.cpp \
+ ../../Source/WebKit/qt/Api/qwebkitversion.cpp
contains(DEFINES, WTF_USE_QT_MOBILE_THEME=1) {
HEADERS += platform/qt/QtMobileWebStyle.h
@@ -2788,8 +2794,8 @@ contains(DEFINES, WTF_USE_QT_MOBILE_THEME=1) {
}
maemo5 {
- HEADERS += ../../WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h
- SOURCES += ../../WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp
+ HEADERS += ../../Source/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h
+ SOURCES += ../../Source/WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp
}
contains(DEFINES, ENABLE_SMOOTH_SCROLLING=1) {
@@ -3251,8 +3257,13 @@ contains(DEFINES, ENABLE_VIDEO=1) {
PKGCONFIG += glib-2.0 gio-2.0 gstreamer-0.10 gstreamer-app-0.10 gstreamer-base-0.10 gstreamer-interfaces-0.10 gstreamer-pbutils-0.10 gstreamer-plugins-base-0.10 gstreamer-video-0.10
} else:contains(MOBILITY_CONFIG, multimedia) {
- HEADERS += platform/graphics/qt/MediaPlayerPrivateQt.h
- SOURCES += platform/graphics/qt/MediaPlayerPrivateQt.cpp
+ HEADERS += \
+ platform/graphics/qt/MediaPlayerPrivateQt.h \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.h
+
+ SOURCES += \
+ platform/graphics/qt/MediaPlayerPrivateQt.cpp \
+ $$PWD/../../Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.cpp
CONFIG *= mobility
MOBILITY += multimedia
@@ -3346,16 +3357,16 @@ contains(DEFINES, ENABLE_MATHML=1) {
mathml/MathMLInlineContainerElement.cpp \
mathml/MathMLMathElement.cpp \
mathml/MathMLTextElement.cpp \
- mathml/RenderMathMLBlock.cpp \
- mathml/RenderMathMLFenced.cpp \
- mathml/RenderMathMLFraction.cpp \
- mathml/RenderMathMLMath.cpp \
- mathml/RenderMathMLOperator.cpp \
- mathml/RenderMathMLRoot.cpp \
- mathml/RenderMathMLRow.cpp \
- mathml/RenderMathMLSquareRoot.cpp \
- mathml/RenderMathMLSubSup.cpp \
- mathml/RenderMathMLUnderOver.cpp
+ rendering/mathml/RenderMathMLBlock.cpp \
+ rendering/mathml/RenderMathMLFenced.cpp \
+ rendering/mathml/RenderMathMLFraction.cpp \
+ rendering/mathml/RenderMathMLMath.cpp \
+ rendering/mathml/RenderMathMLOperator.cpp \
+ rendering/mathml/RenderMathMLRoot.cpp \
+ rendering/mathml/RenderMathMLRow.cpp \
+ rendering/mathml/RenderMathMLSquareRoot.cpp \
+ rendering/mathml/RenderMathMLSubSup.cpp \
+ rendering/mathml/RenderMathMLUnderOver.cpp
}
contains(DEFINES, ENABLE_WML=1) {
@@ -3438,18 +3449,18 @@ contains(DEFINES, ENABLE_GEOLOCATION=1) {
contains(DEFINES, ENABLE_DEVICE_ORIENTATION=1) {
HEADERS += \
- ../../WebKit/qt/WebCoreSupport/DeviceMotionClientQt.h \
- ../../WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.h \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationClientMockQt.h \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.h
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.h \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.h \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.h \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientMockQt.h \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.h
SOURCES += \
- ../../WebKit/qt/WebCoreSupport/DeviceMotionClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationClientMockQt.cpp \
- ../../WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.cpp
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceMotionClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceMotionProviderQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationClientMockQt.cpp \
+ ../../Source/WebKit/qt/WebCoreSupport/DeviceOrientationProviderQt.cpp
CONFIG += mobility
MOBILITY += sensors
@@ -3470,15 +3481,46 @@ contains(DEFINES, ENABLE_SVG=1) {
css/SVGCSSStyleSelector.cpp \
rendering/style/SVGRenderStyle.cpp \
rendering/style/SVGRenderStyleDefs.cpp \
+ rendering/svg/RenderSVGBlock.cpp \
+ rendering/svg/RenderSVGContainer.cpp \
+ rendering/svg/RenderSVGForeignObject.cpp \
+ rendering/svg/RenderSVGGradientStop.cpp \
+ rendering/svg/RenderSVGHiddenContainer.cpp \
+ rendering/svg/RenderSVGImage.cpp \
rendering/svg/RenderSVGInline.cpp \
rendering/svg/RenderSVGInlineText.cpp \
+ rendering/svg/RenderSVGModelObject.cpp \
rendering/svg/RenderSVGPath.cpp \
+ rendering/svg/RenderSVGResource.cpp \
+ rendering/svg/RenderSVGResourceClipper.cpp \
+ rendering/svg/RenderSVGResourceContainer.cpp \
+ rendering/svg/RenderSVGResourceFilter.cpp \
+ rendering/svg/RenderSVGResourceFilterPrimitive.cpp \
+ rendering/svg/RenderSVGResourceGradient.cpp \
+ rendering/svg/RenderSVGResourceLinearGradient.cpp \
+ rendering/svg/RenderSVGResourceMarker.cpp \
+ rendering/svg/RenderSVGResourceMasker.cpp \
+ rendering/svg/RenderSVGResourcePattern.cpp \
+ rendering/svg/RenderSVGResourceRadialGradient.cpp \
+ rendering/svg/RenderSVGResourceSolidColor.cpp \
+ rendering/svg/RenderSVGRoot.cpp \
+ rendering/svg/RenderSVGShadowTreeRootContainer.cpp \
rendering/svg/RenderSVGTSpan.cpp \
rendering/svg/RenderSVGText.cpp \
rendering/svg/RenderSVGTextPath.cpp \
+ rendering/svg/RenderSVGTransformableContainer.cpp \
+ rendering/svg/RenderSVGViewportContainer.cpp \
+ rendering/svg/SVGImageBufferTools.cpp \
rendering/svg/SVGInlineFlowBox.cpp \
rendering/svg/SVGInlineTextBox.cpp \
+ rendering/svg/SVGMarkerLayoutInfo.cpp \
+ rendering/svg/SVGRenderSupport.cpp \
+ rendering/svg/SVGRenderTreeAsText.cpp \
+ rendering/svg/SVGResources.cpp \
+ rendering/svg/SVGResourcesCache.cpp \
+ rendering/svg/SVGResourcesCycleSolver.cpp \
rendering/svg/SVGRootInlineBox.cpp \
+ rendering/svg/SVGShadowTreeElements.cpp \
rendering/svg/SVGTextChunk.cpp \
rendering/svg/SVGTextChunkBuilder.cpp \
rendering/svg/SVGTextLayoutAttributes.cpp \
@@ -3628,37 +3670,7 @@ contains(DEFINES, ENABLE_SVG=1) {
svg/graphics/filters/SVGFilter.cpp \
svg/graphics/filters/SVGFilterBuilder.cpp \
svg/graphics/SVGImage.cpp \
- svg/properties/SVGPathSegListPropertyTearOff.cpp \
- rendering/RenderForeignObject.cpp \
- rendering/RenderSVGBlock.cpp \
- rendering/RenderSVGContainer.cpp \
- rendering/RenderSVGGradientStop.cpp \
- rendering/RenderSVGHiddenContainer.cpp \
- rendering/RenderSVGImage.cpp \
- rendering/RenderSVGModelObject.cpp \
- rendering/RenderSVGResource.cpp \
- rendering/RenderSVGResourceClipper.cpp \
- rendering/RenderSVGResourceContainer.cpp \
- rendering/RenderSVGResourceFilter.cpp \
- rendering/RenderSVGResourceFilterPrimitive.cpp \
- rendering/RenderSVGResourceGradient.cpp \
- rendering/RenderSVGResourceLinearGradient.cpp \
- rendering/RenderSVGResourceMarker.cpp \
- rendering/RenderSVGResourceMasker.cpp \
- rendering/RenderSVGResourcePattern.cpp \
- rendering/RenderSVGResourceRadialGradient.cpp \
- rendering/RenderSVGResourceSolidColor.cpp \
- rendering/RenderSVGRoot.cpp \
- rendering/RenderSVGShadowTreeRootContainer.cpp \
- rendering/RenderSVGTransformableContainer.cpp \
- rendering/RenderSVGViewportContainer.cpp \
- rendering/SVGImageBufferTools.cpp \
- rendering/SVGMarkerLayoutInfo.cpp \
- rendering/SVGRenderSupport.cpp \
- rendering/SVGResources.cpp \
- rendering/SVGResourcesCache.cpp \
- rendering/SVGResourcesCycleSolver.cpp \
- rendering/SVGShadowTreeElements.cpp
+ svg/properties/SVGPathSegListPropertyTearOff.cpp
}
contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1) {
@@ -3853,7 +3865,7 @@ contains(DEFINES, ENABLE_SYMBIAN_DIALOG_PROVIDERS) {
QMAKE_EXTRA_TARGETS += install
}
-include($$PWD/../../WebKit/qt/Api/headers.pri)
+include($$PWD/../../Source/WebKit/qt/Api/headers.pri)
HEADERS += $$WEBKIT_API_HEADERS
@@ -3981,9 +3993,9 @@ contains(CONFIG, texmap) {
symbian {
shared {
contains(CONFIG, def_files) {
- DEF_FILE=../../WebKit/qt/symbian
+ DEF_FILE=../../Source/WebKit/qt/symbian
# defFilePath is for Qt4.6 compatibility
- defFilePath=../../WebKit/qt/symbian
+ defFilePath=../../Source/WebKit/qt/symbian
} else {
MMP_RULES += EXPORTUNFROZEN
}
diff --git a/Source/WebCore/WebCore.vcproj/QTMovieWin.vcproj b/Source/WebCore/WebCore.vcproj/QTMovieWin.vcproj
index da717e5..7d85d2f 100644
--- a/Source/WebCore/WebCore.vcproj/QTMovieWin.vcproj
+++ b/Source/WebCore/WebCore.vcproj/QTMovieWin.vcproj
@@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
>
<Tool
@@ -79,7 +79,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
>
<Tool
@@ -140,7 +140,7 @@
<Configuration
Name="Debug_All|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
>
<Tool
@@ -201,7 +201,7 @@
<Configuration
Name="Release_LTCG|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
WholeProgramOptimization="1"
>
@@ -263,7 +263,7 @@
<Configuration
Name="Release_Cairo_CFLite|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
>
<Tool
@@ -324,7 +324,7 @@
<Configuration
Name="Debug_Cairo_CFLite|Win32"
ConfigurationType="2"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\QTMovieWinCommon.vsprops"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\QTMovieWinCommon.vsprops"
CharacterSet="1"
>
<Tool
diff --git a/Source/WebCore/WebCore.vcproj/WebCore.vcproj b/Source/WebCore/WebCore.vcproj/WebCore.vcproj
index 6c46417..39671a0 100755
--- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/Source/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -574,6 +574,10 @@
>
</File>
<File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\InjectedScriptSource.h"
+ >
+ </File>
+ <File
RelativePath="$(ConfigurationBuildDir)\obj\WebCore\DerivedSources\JSAbstractWorker.cpp"
>
<FileConfiguration
@@ -4070,6 +4074,62 @@
>
</File>
<File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSDOMURL.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_LTCG|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSDOMURL.h"
+ >
+ </File>
+ <File
RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSDOMWindow.cpp"
>
<FileConfiguration
@@ -26633,14 +26693,6 @@
>
</File>
<File
- RelativePath="..\platform\graphics\Pen.cpp"
- >
- </File>
- <File
- RelativePath="..\platform\graphics\Pen.h"
- >
- </File>
- <File
RelativePath="..\platform\graphics\SegmentedFontData.cpp"
>
</File>
@@ -33358,7 +33410,7 @@
>
</File>
<File
- RelativePath="..\rendering\RenderForeignObject.cpp"
+ RelativePath="..\rendering\svg\RenderForeignObject.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -33410,7 +33462,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderForeignObject.h"
+ RelativePath="..\rendering\svg\RenderForeignObject.h"
>
</File>
<File
@@ -35462,11 +35514,11 @@
>
</File>
<File
- RelativePath="..\rendering\RenderSVGAllInOne.cpp"
+ RelativePath="..\rendering\svg\RenderSVGAllInOne.cpp"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGBlock.cpp"
+ RelativePath="..\rendering\svg\RenderSVGBlock.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35518,11 +35570,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGBlock.h"
+ RelativePath="..\rendering\svg\RenderSVGBlock.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35574,11 +35626,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGContainer.h"
+ RelativePath="..\rendering\svg\RenderSVGContainer.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGGradientStop.cpp"
+ RelativePath="..\rendering\svg\RenderSVGGradientStop.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35630,11 +35682,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGGradientStop.h"
+ RelativePath="..\rendering\svg\RenderSVGGradientStop.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGHiddenContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGHiddenContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35686,11 +35738,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGHiddenContainer.h"
+ RelativePath="..\rendering\svg\RenderSVGHiddenContainer.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGImage.cpp"
+ RelativePath="..\rendering\svg\RenderSVGImage.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35742,11 +35794,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGImage.h"
+ RelativePath="..\rendering\svg\RenderSVGImage.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGModelObject.cpp"
+ RelativePath="..\rendering\svg\RenderSVGModelObject.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35798,11 +35850,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGModelObject.h"
+ RelativePath="..\rendering\svg\RenderSVGModelObject.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResource.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResource.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35854,11 +35906,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResource.h"
+ RelativePath="..\rendering\svg\RenderSVGResource.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceClipper.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceClipper.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35910,11 +35962,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceClipper.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceClipper.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -35966,11 +36018,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceContainer.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceContainer.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceFilter.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceFilter.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36022,11 +36074,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceFilter.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceFilter.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceFilterPrimitive.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceFilterPrimitive.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36078,11 +36130,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceFilterPrimitive.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceFilterPrimitive.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceGradient.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceGradient.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36134,11 +36186,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceGradient.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceGradient.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceLinearGradient.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceLinearGradient.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36190,11 +36242,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceLinearGradient.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceLinearGradient.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceMarker.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceMarker.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36246,11 +36298,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceMarker.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceMarker.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceMasker.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceMasker.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36302,11 +36354,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceMasker.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceMasker.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourcePattern.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourcePattern.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36358,11 +36410,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourcePattern.h"
+ RelativePath="..\rendering\svg\RenderSVGResourcePattern.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceRadialGradient.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceRadialGradient.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36414,11 +36466,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceRadialGradient.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceRadialGradient.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceSolidColor.cpp"
+ RelativePath="..\rendering\svg\RenderSVGResourceSolidColor.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36470,11 +36522,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGResourceSolidColor.h"
+ RelativePath="..\rendering\svg\RenderSVGResourceSolidColor.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGRoot.cpp"
+ RelativePath="..\rendering\svg\RenderSVGRoot.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36526,11 +36578,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGRoot.h"
+ RelativePath="..\rendering\svg\RenderSVGRoot.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGShadowTreeRootContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGShadowTreeRootContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36582,11 +36634,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGShadowTreeRootContainer.h"
+ RelativePath="..\rendering\svg\RenderSVGShadowTreeRootContainer.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGTransformableContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGTransformableContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -36638,11 +36690,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\RenderSVGTransformableContainer.h"
+ RelativePath="..\rendering\svg\RenderSVGTransformableContainer.h"
>
</File>
<File
- RelativePath="..\rendering\RenderSVGViewportContainer.cpp"
+ RelativePath="..\rendering\svg\RenderSVGViewportContainer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -37896,11 +37948,11 @@
>
</File>
<File
- RelativePath="..\rendering\SVGMarkerData.h"
+ RelativePath="..\rendering\svg\SVGMarkerData.h"
>
</File>
<File
- RelativePath="..\rendering\SVGMarkerLayoutInfo.cpp"
+ RelativePath="..\rendering\svg\SVGMarkerLayoutInfo.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -37952,11 +38004,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGMarkerLayoutInfo.h"
+ RelativePath="..\rendering\svg\SVGMarkerLayoutInfo.h"
>
</File>
<File
- RelativePath="..\rendering\SVGRenderSupport.cpp"
+ RelativePath="..\rendering\svg\SVGRenderSupport.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38008,11 +38060,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGRenderSupport.h"
+ RelativePath="..\rendering\svg\SVGRenderSupport.h"
>
</File>
<File
- RelativePath="..\rendering\SVGRenderTreeAsText.cpp"
+ RelativePath="..\rendering\svg\SVGRenderTreeAsText.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38064,11 +38116,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGRenderTreeAsText.h"
+ RelativePath="..\rendering\svg\SVGRenderTreeAsText.h"
>
</File>
<File
- RelativePath="..\rendering\SVGResources.cpp"
+ RelativePath="..\rendering\svg\SVGResources.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38120,11 +38172,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGResources.h"
+ RelativePath="..\rendering\svg\SVGResources.h"
>
</File>
<File
- RelativePath="..\rendering\SVGResourcesCache.cpp"
+ RelativePath="..\rendering\svg\SVGResourcesCache.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38176,11 +38228,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGResourcesCache.h"
+ RelativePath="..\rendering\svg\SVGResourcesCache.h"
>
</File>
<File
- RelativePath="..\rendering\SVGResourcesCycleSolver.cpp"
+ RelativePath="..\rendering\svg\SVGResourcesCycleSolver.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38232,11 +38284,11 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGResourcesCycleSolver.h"
+ RelativePath="..\rendering\svg\SVGResourcesCycleSolver.h"
>
</File>
<File
- RelativePath="..\rendering\SVGShadowTreeElements.cpp"
+ RelativePath="..\rendering\svg\SVGShadowTreeElements.cpp"
>
<FileConfiguration
Name="Debug|Win32"
@@ -38288,7 +38340,7 @@
</FileConfiguration>
</File>
<File
- RelativePath="..\rendering\SVGShadowTreeElements.h"
+ RelativePath="..\rendering\svg\SVGShadowTreeElements.h"
>
</File>
<File
@@ -38412,6 +38464,90 @@
>
</File>
<Filter
+ Name="mathml"
+ >
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLBlock.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLBlock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLFenced.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLFenced.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLFraction.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLFraction.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLMath.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLMath.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLOperator.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLOperator.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLRoot.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLRoot.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLRow.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLRow.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLSquareRoot.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLSquareRoot.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLSubSup.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLSubSup.h"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLUnderOver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\rendering\mathml\RenderMathMLUnderOver.h"
+ >
+ </File>
+ </Filter>
+ <Filter
Name="style"
>
<File
@@ -50222,6 +50358,14 @@
>
</File>
<File
+ RelativePath="..\html\DOMURL.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\html\DOMURL.h"
+ >
+ </File>
+ <File
RelativePath="..\html\EmailInputType.cpp"
>
</File>
@@ -64045,7 +64189,7 @@
>
</File>
<File
- RelativePath="..\ForwardingHeaders\runtime\Collector.h"
+ RelativePath="..\ForwardingHeaders\runtime\Heap.h"
>
</File>
<File
@@ -64866,6 +65010,14 @@
>
</File>
<File
+ RelativePath="..\inspector\InspectorBrowserDebuggerAgent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\inspector\InspectorBrowserDebuggerAgent.h"
+ >
+ </File>
+ <File
RelativePath="..\inspector\InspectorClient.cpp"
>
</File>
@@ -64874,6 +65026,14 @@
>
</File>
<File
+ RelativePath="..\inspector\InspectorConsoleAgent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\inspector\InspectorConsoleAgent.h"
+ >
+ </File>
+ <File
RelativePath="..\inspector\InspectorController.cpp"
>
</File>
@@ -64990,6 +65150,14 @@
>
</File>
<File
+ RelativePath="..\inspector\InspectorSettings.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\inspector\InspectorSettings.h"
+ >
+ </File>
+ <File
RelativePath="..\inspector\InspectorState.cpp"
>
</File>
@@ -65289,10 +65457,6 @@
>
</File>
<File
- RelativePath="..\inspector\front-end\InjectedScript.js"
- >
- </File>
- <File
RelativePath="..\inspector\front-end\InjectedScriptAccess.js"
>
</File>
@@ -66005,86 +66169,6 @@
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/Source/WebCore/WebCore.vcproj/WebCoreCommon.vsprops b/Source/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
index 91e046c..86b630f 100644
--- a/Source/WebCore/WebCore.vcproj/WebCoreCommon.vsprops
+++ b/Source/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)..\fileapi&quot;;&quot;$(ProjectDir)..\rendering&quot;;&quot;$(ProjectDir)..\rendering\style&quot;;&quot;$(ProjectDir)..\rendering\svg&quot;;&quot;$(ProjectDir)..\bindings&quot;;&quot;$(ProjectDir)..\bindings\generic&quot;;&quot;$(ProjectDir)..\bindings\js&quot;;&quot;$(ProjectDir)..\bindings\js\specialization&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)..\html\parser&quot;;&quot;$(ProjectDir)..\html\shadow&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\cache&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\ca&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;$(ConfigurationBuildDir)\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\properties&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;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\include\JavaScriptCore&quot;;&quot;$(ConfigurationBuildDir)\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)..\fileapi&quot;;&quot;$(ProjectDir)..\rendering&quot;;&quot;$(ProjectDir)..\rendering\mathml&quot;;&quot;$(ProjectDir)..\rendering\style&quot;;&quot;$(ProjectDir)..\rendering\svg&quot;;&quot;$(ProjectDir)..\bindings&quot;;&quot;$(ProjectDir)..\bindings\generic&quot;;&quot;$(ProjectDir)..\bindings\js&quot;;&quot;$(ProjectDir)..\bindings\js\specialization&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)..\html\parser&quot;;&quot;$(ProjectDir)..\html\shadow&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\cache&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\ca&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;$(ConfigurationBuildDir)\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\properties&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;$(ConfigurationBuildDir)\include&quot;;&quot;$(ConfigurationBuildDir)\include\private&quot;;&quot;$(ConfigurationBuildDir)\include\JavaScriptCore&quot;;&quot;$(ConfigurationBuildDir)\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/Source/WebCore/WebCore.vcproj/build-generated-files.sh b/Source/WebCore/WebCore.vcproj/build-generated-files.sh
index 3d15ad9..5660538 100644
--- a/Source/WebCore/WebCore.vcproj/build-generated-files.sh
+++ b/Source/WebCore/WebCore.vcproj/build-generated-files.sh
@@ -26,7 +26,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-NUMCPUS=`../../Tools/Scripts/num-cpus`
+NUMCPUS=`../../../Tools/Scripts/num-cpus`
XSRCROOT="`pwd`/.."
XSRCROOT=`realpath "$XSRCROOT"`
diff --git a/Source/WebCore/WebCore.xcodeproj/project.pbxproj b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
index 1d07372..ed86c67 100644
--- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/Source/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -63,7 +63,6 @@
0804BF6E0EE09C3B0006C000 /* WMLDoElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0804BF6C0EE09C3B0006C000 /* WMLDoElement.cpp */; };
0804BF6F0EE09C3B0006C000 /* WMLDoElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0804BF6D0EE09C3B0006C000 /* WMLDoElement.h */; };
0806E57A12893045007CED32 /* SVGMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0806E57912893045007CED32 /* SVGMatrix.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 08082373117987C100241DE8 /* RenderSVGResourceContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 08082372117987C100241DE8 /* RenderSVGResourceContainer.h */; };
080AEC810ED8708B00DF4CCE /* WMLIntrinsicEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 080AEC7D0ED8708A00DF4CCE /* WMLIntrinsicEvent.cpp */; };
080AEC820ED8708B00DF4CCE /* WMLIntrinsicEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 080AEC7E0ED8708B00DF4CCE /* WMLIntrinsicEvent.h */; };
080AEC830ED8708B00DF4CCE /* WMLIntrinsicEventHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 080AEC7F0ED8708B00DF4CCE /* WMLIntrinsicEventHandler.cpp */; };
@@ -97,10 +96,6 @@
0823D159127AD6AC000EBC95 /* SVGAnimatedInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */; settings = {ATTRIBUTES = (Private, ); }; };
08250939128BD4D800E2ED8E /* SVGAnimatedTransformList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */; settings = {ATTRIBUTES = (Private, ); }; };
082DE42D1292621600D923DF /* SVGPathSegWithContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 082DE42C1292621600D923DF /* SVGPathSegWithContext.h */; };
- 083192AA112B43050083C3B9 /* RenderSVGResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 083192A7112B43050083C3B9 /* RenderSVGResource.h */; };
- 083192AB112B43050083C3B9 /* RenderSVGResourceMasker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 083192A8112B43050083C3B9 /* RenderSVGResourceMasker.cpp */; };
- 083192AC112B43050083C3B9 /* RenderSVGResourceMasker.h in Headers */ = {isa = PBXBuildFile; fileRef = 083192A9112B43050083C3B9 /* RenderSVGResourceMasker.h */; };
- 08385FF610F0186000BFE07B /* SVGMarkerData.h in Headers */ = {isa = PBXBuildFile; fileRef = 08385FF510F0186000BFE07B /* SVGMarkerData.h */; };
0839476C0ECE4BD600027350 /* WMLElementFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08FB84B00ECE373300DC064E /* WMLElementFactory.cpp */; };
0839476D0ECE4BD600027350 /* WMLElementFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 08FB84B10ECE373300DC064E /* WMLElementFactory.h */; };
083DAEA60F01A7FB00342754 /* RenderTextControlMultiLine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 083DAEA20F01A7FB00342754 /* RenderTextControlMultiLine.cpp */; };
@@ -114,10 +109,6 @@
084CE5CC0F27DADC00E6240E /* WMLOptGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 084CE5C80F27DADC00E6240E /* WMLOptGroupElement.h */; };
084CE5CD0F27DADC00E6240E /* WMLOptionElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084CE5C90F27DADC00E6240E /* WMLOptionElement.cpp */; };
084CE5CE0F27DADC00E6240E /* WMLOptionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 084CE5CA0F27DADC00E6240E /* WMLOptionElement.h */; };
- 084D0E3C11F5816100081E1A /* SVGResources.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084D0E3811F5816100081E1A /* SVGResources.cpp */; };
- 084D0E3D11F5816100081E1A /* SVGResources.h in Headers */ = {isa = PBXBuildFile; fileRef = 084D0E3911F5816100081E1A /* SVGResources.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 084D0E3E11F5816100081E1A /* SVGResourcesCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084D0E3A11F5816100081E1A /* SVGResourcesCache.cpp */; };
- 084D0E3F11F5816100081E1A /* SVGResourcesCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 084D0E3B11F5816100081E1A /* SVGResourcesCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
084DB59B128008CC002A6D64 /* SVGAnimatedString.h in Headers */ = {isa = PBXBuildFile; fileRef = 084DB59A128008CC002A6D64 /* SVGAnimatedString.h */; settings = {ATTRIBUTES = (Private, ); }; };
084DBAA10ED39D360038C226 /* WMLVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 084DBA9D0ED39D350038C226 /* WMLVariables.cpp */; };
084DBAA20ED39D360038C226 /* WMLVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = 084DBA9E0ED39D360038C226 /* WMLVariables.h */; };
@@ -140,30 +131,22 @@
0854B0231255E4E600B9CDD0 /* SVGRootInlineBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0111255E4E600B9CDD0 /* SVGRootInlineBox.h */; };
0854B0241255E4E600B9CDD0 /* SVGTextQuery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0854B0121255E4E600B9CDD0 /* SVGTextQuery.cpp */; };
0854B0251255E4E600B9CDD0 /* SVGTextQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 0854B0131255E4E600B9CDD0 /* SVGTextQuery.h */; };
- 08563BB4117861780012B578 /* RenderSVGResourcePattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08563BB2117861770012B578 /* RenderSVGResourcePattern.cpp */; };
- 08563BB5117861780012B578 /* RenderSVGResourcePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 08563BB3117861770012B578 /* RenderSVGResourcePattern.h */; };
- 08563BD0117865F50012B578 /* RenderSVGResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08563BCF117865F50012B578 /* RenderSVGResource.cpp */; };
085797091278394C00A8EC5F /* SVGAnimatedBoolean.h in Headers */ = {isa = PBXBuildFile; fileRef = 085797081278394C00A8EC5F /* SVGAnimatedBoolean.h */; settings = {ATTRIBUTES = (Private, ); }; };
08591AA50F085C4E009BACB1 /* InputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08591AA40F085C4E009BACB1 /* InputElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
085A15931289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */; settings = {ATTRIBUTES = (Private, ); }; };
085AFDC80F2977350061F2B3 /* WMLFormControlElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 085AFDC60F2977350061F2B3 /* WMLFormControlElement.cpp */; };
085AFDC90F2977350061F2B3 /* WMLFormControlElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 085AFDC70F2977350061F2B3 /* WMLFormControlElement.h */; settings = {ATTRIBUTES = (); }; };
- 085B05C211FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 085B05C011FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp */; };
- 085B05C311FAE16C004D65F6 /* SVGResourcesCycleSolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 085B05C111FAE16C004D65F6 /* SVGResourcesCycleSolver.h */; };
085B92BA0EFDE73D00E6123C /* FormDataBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 085B92B80EFDE73D00E6123C /* FormDataBuilder.cpp */; };
085B92BB0EFDE73D00E6123C /* FormDataBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 085B92B90EFDE73D00E6123C /* FormDataBuilder.h */; settings = {ATTRIBUTES = (); }; };
08641D4712142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08641D4512142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp */; };
08641D4812142F7D008DE9F6 /* RenderImageResourceStyleImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 08641D4612142F7D008DE9F6 /* RenderImageResourceStyleImage.h */; settings = {ATTRIBUTES = (Private, ); }; };
0865CCE60EDDF51B00DF9EC3 /* WMLNoopElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0865CCE40EDDF51B00DF9EC3 /* WMLNoopElement.cpp */; };
0865CCE70EDDF51B00DF9EC3 /* WMLNoopElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0865CCE50EDDF51B00DF9EC3 /* WMLNoopElement.h */; };
- 086A400611F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 086A400511F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp */; };
08700BE70F086C5300919419 /* InputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08700BE60F086C5300919419 /* InputElement.cpp */; };
087281550F26B9B600AFC596 /* OptionElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087281510F26B9B600AFC596 /* OptionElement.cpp */; };
087281560F26B9B600AFC596 /* OptionElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 087281520F26B9B600AFC596 /* OptionElement.h */; };
087281570F26B9B600AFC596 /* OptionGroupElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 087281530F26B9B600AFC596 /* OptionGroupElement.cpp */; };
087281580F26B9B600AFC596 /* OptionGroupElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 087281540F26B9B600AFC596 /* OptionGroupElement.h */; };
- 08735FB810E91232006D6FAD /* SVGMarkerLayoutInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */; };
- 08735FB910E91232006D6FAD /* SVGMarkerLayoutInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */; };
08744BAA0EDB7D86004C9E63 /* WMLOnEventElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */; };
08744BAE0EDB7D92004C9E63 /* WMLOnEventElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */; };
087B84961272CEC800A14417 /* SVGAnimatedAngle.h in Headers */ = {isa = PBXBuildFile; fileRef = 087B84951272CEC700A14417 /* SVGAnimatedAngle.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -223,20 +206,10 @@
08A48A6E0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */; };
08B35B13127B6A7C005314DD /* SVGAnimatedNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */; settings = {ATTRIBUTES = (Private, ); }; };
08B35B17127B6A88005314DD /* SVGAnimatedNumberList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 08C34AF51179C057002D7456 /* RenderSVGResourceGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C34AF11179C056002D7456 /* RenderSVGResourceGradient.cpp */; };
- 08C34AF61179C057002D7456 /* RenderSVGResourceGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C34AF21179C057002D7456 /* RenderSVGResourceGradient.h */; };
- 08C34AF71179C057002D7456 /* RenderSVGResourceLinearGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C34AF31179C057002D7456 /* RenderSVGResourceLinearGradient.cpp */; };
- 08C34AF81179C057002D7456 /* RenderSVGResourceLinearGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C34AF41179C057002D7456 /* RenderSVGResourceLinearGradient.h */; };
- 08C34AFD1179C072002D7456 /* RenderSVGResourceRadialGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C34AFB1179C072002D7456 /* RenderSVGResourceRadialGradient.cpp */; };
- 08C34AFE1179C072002D7456 /* RenderSVGResourceRadialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C34AFC1179C072002D7456 /* RenderSVGResourceRadialGradient.h */; };
- 08C46B691212F15E0011AF40 /* SVGImageBufferTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C46B671212F15D0011AF40 /* SVGImageBufferTools.cpp */; };
- 08C46B6A1212F15E0011AF40 /* SVGImageBufferTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C46B681212F15D0011AF40 /* SVGImageBufferTools.h */; };
08C4C5180EF19A4000E4840F /* WMLImageElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C4C5140EF19A4000E4840F /* WMLImageElement.cpp */; };
08C4C5190EF19A4000E4840F /* WMLImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C4C5150EF19A4000E4840F /* WMLImageElement.h */; };
08C4C51A0EF19A4000E4840F /* WMLImageLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C4C5160EF19A4000E4840F /* WMLImageLoader.cpp */; };
08C4C51B0EF19A4000E4840F /* WMLImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C4C5170EF19A4000E4840F /* WMLImageLoader.h */; };
- 08C6A7AB117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C6A7A9117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp */; };
- 08C6A7AC117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C6A7AA117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h */; };
08C7136E128956A3001B107E /* SVGTransformListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C7136D128956A3001B107E /* SVGTransformListPropertyTearOff.h */; settings = {ATTRIBUTES = (Private, ); }; };
08C7A2C710DC7462002D368B /* SVGNames.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 656581E909D1508D000E61D7 /* SVGNames.h */; };
08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C859BF1274575300A5728D /* SVGAnimatedRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -246,10 +219,6 @@
08CD61BC0ED3929C002DDF51 /* WMLTaskElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08CD61B80ED3929C002DDF51 /* WMLTaskElement.cpp */; };
08CD61BD0ED3929C002DDF51 /* WMLTaskElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08CD61B90ED3929C002DDF51 /* WMLTaskElement.h */; };
08D46CE3127AD5FC0089694B /* SVGAnimatedEnumeration.h in Headers */ = {isa = PBXBuildFile; fileRef = 08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 08DAB9BA1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08DAB9B81103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp */; };
- 08DAB9BB1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 08DAB9B91103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h */; };
- 08DAB9C21103D9C1003E7ABA /* SVGShadowTreeElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08DAB9C01103D9C1003E7ABA /* SVGShadowTreeElements.cpp */; };
- 08DAB9C31103D9C1003E7ABA /* SVGShadowTreeElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 08DAB9C11103D9C1003E7ABA /* SVGShadowTreeElements.h */; };
08E192530EDE0C3A0087B780 /* WMLErrorHandling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08E192510EDE0C390087B780 /* WMLErrorHandling.cpp */; };
08E192540EDE0C3A0087B780 /* WMLErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E192520EDE0C3A0087B780 /* WMLErrorHandling.h */; };
08E4FE460E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */; };
@@ -297,8 +266,6 @@
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 */; };
0FCF33240F2B9715004B6795 /* ColorCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCF33230F2B9715004B6795 /* ColorCG.cpp */; };
@@ -312,10 +279,6 @@
0FD308D6117D168500A791F7 /* RenderIFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD308D4117D168400A791F7 /* RenderIFrame.h */; };
0FD723820EC8BD9300CA5DD7 /* FloatQuad.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD723800EC8BD9300CA5DD7 /* FloatQuad.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FD723830EC8BD9300CA5DD7 /* FloatQuad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FD723810EC8BD9300CA5DD7 /* FloatQuad.cpp */; };
- 0FF2859011864052007B7CD6 /* RenderMathMLRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FF2813211821CB6007B7CD6 /* RenderMathMLRoot.cpp */; };
- 0FF2859111864053007B7CD6 /* RenderMathMLRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FF2813311821CB6007B7CD6 /* RenderMathMLRoot.h */; };
- 0FF2859211864054007B7CD6 /* RenderMathMLSquareRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FF2813411821CB6007B7CD6 /* RenderMathMLSquareRoot.cpp */; };
- 0FF2859311864055007B7CD6 /* RenderMathMLSquareRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FF2813511821CB6007B7CD6 /* RenderMathMLSquareRoot.h */; };
0FF5025B102BA9010066F39A /* DOMStyleMedia.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FF50259102BA9010066F39A /* DOMStyleMedia.h */; };
0FF5025C102BA9010066F39A /* DOMStyleMedia.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0FF5025A102BA9010066F39A /* DOMStyleMedia.mm */; };
0FF50263102BA92C0066F39A /* DOMStyleMediaInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FF50262102BA92B0066F39A /* DOMStyleMediaInternal.h */; };
@@ -382,8 +345,6 @@
18F831B80FD48C7800D8C56B /* WorkerLoaderProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 18F831B70FD48C7800D8C56B /* WorkerLoaderProxy.h */; };
1921327411C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1921327111C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp */; };
1921327511C0E6BB00456238 /* SVGFEConvolveMatrixElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1921327211C0E6BB00456238 /* SVGFEConvolveMatrixElement.h */; };
- 19423B501234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */; };
- 19423B511234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h in Headers */ = {isa = PBXBuildFile; fileRef = 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */; };
19BFF64B11C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 19BFF64611C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h */; };
19BFF64C11C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 19BFF64711C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm */; };
19BFF64D11C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 19BFF64811C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElementInternal.h */; };
@@ -742,6 +703,10 @@
2E2D99EA10E2BC3800496337 /* DOMBlobInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E2D99E910E2BC3800496337 /* DOMBlobInternal.h */; };
2E2D99EB10E2BD3900496337 /* DOMBlob.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 2E2D99E510E2BC1C00496337 /* DOMBlob.h */; };
2E2D99EC10E2BD3900496337 /* DOMBlobInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 2E2D99E910E2BC3800496337 /* DOMBlobInternal.h */; };
+ 2E37DFDA12DBAFB800A6B233 /* DOMURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E37DFD712DBAFB800A6B233 /* DOMURL.cpp */; };
+ 2E37DFDB12DBAFB800A6B233 /* DOMURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E37DFD812DBAFB800A6B233 /* DOMURL.h */; };
+ 2E37E00512DBC5A400A6B233 /* JSDOMURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E37E00312DBC5A400A6B233 /* JSDOMURL.cpp */; };
+ 2E37E00612DBC5A400A6B233 /* JSDOMURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E37E00412DBC5A400A6B233 /* JSDOMURL.h */; };
2E3BBF071162DA1100B9409A /* UUID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E3BBF051162DA1100B9409A /* UUID.cpp */; };
2E3BBF081162DA1100B9409A /* UUID.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3BBF061162DA1100B9409A /* UUID.h */; };
2E3BC0CA117D3E0800B9409A /* JSFileError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */; };
@@ -972,11 +937,99 @@
41F1D21F0EF35C2A00DA8753 /* ScriptCachedFrameData.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */; settings = {ATTRIBUTES = (Private, ); }; };
41F1D2200EF35C2A00DA8753 /* ScriptCachedFrameData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */; };
41F584C7104652CB009CAA64 /* JSMessagePortCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F584C6104652CB009CAA64 /* JSMessagePortCustom.h */; };
+ 436708C012D9CA4B00044234 /* RenderSVGBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088112D9CA4A00044234 /* RenderSVGBlock.cpp */; };
+ 436708C112D9CA4B00044234 /* RenderSVGBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088212D9CA4A00044234 /* RenderSVGBlock.h */; };
+ 436708C212D9CA4B00044234 /* RenderSVGContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088312D9CA4A00044234 /* RenderSVGContainer.cpp */; };
+ 436708C312D9CA4B00044234 /* RenderSVGContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088412D9CA4A00044234 /* RenderSVGContainer.h */; };
+ 436708C412D9CA4B00044234 /* RenderSVGGradientStop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088512D9CA4A00044234 /* RenderSVGGradientStop.cpp */; };
+ 436708C512D9CA4B00044234 /* RenderSVGGradientStop.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088612D9CA4A00044234 /* RenderSVGGradientStop.h */; };
+ 436708C612D9CA4B00044234 /* RenderSVGHiddenContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088712D9CA4A00044234 /* RenderSVGHiddenContainer.cpp */; };
+ 436708C712D9CA4B00044234 /* RenderSVGHiddenContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088812D9CA4A00044234 /* RenderSVGHiddenContainer.h */; };
+ 436708C812D9CA4B00044234 /* RenderSVGImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088912D9CA4A00044234 /* RenderSVGImage.cpp */; };
+ 436708C912D9CA4B00044234 /* RenderSVGImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088A12D9CA4A00044234 /* RenderSVGImage.h */; };
+ 436708CA12D9CA4B00044234 /* RenderSVGModelObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088B12D9CA4A00044234 /* RenderSVGModelObject.cpp */; };
+ 436708CB12D9CA4B00044234 /* RenderSVGModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088C12D9CA4A00044234 /* RenderSVGModelObject.h */; };
+ 436708CC12D9CA4B00044234 /* RenderSVGResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088D12D9CA4A00044234 /* RenderSVGResource.cpp */; };
+ 436708CD12D9CA4B00044234 /* RenderSVGResource.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367088E12D9CA4A00044234 /* RenderSVGResource.h */; };
+ 436708CE12D9CA4B00044234 /* RenderSVGResourceClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367088F12D9CA4A00044234 /* RenderSVGResourceClipper.cpp */; };
+ 436708CF12D9CA4B00044234 /* RenderSVGResourceClipper.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089012D9CA4A00044234 /* RenderSVGResourceClipper.h */; };
+ 436708D012D9CA4B00044234 /* RenderSVGResourceContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089112D9CA4A00044234 /* RenderSVGResourceContainer.cpp */; };
+ 436708D112D9CA4B00044234 /* RenderSVGResourceContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089212D9CA4A00044234 /* RenderSVGResourceContainer.h */; };
+ 436708D212D9CA4B00044234 /* RenderSVGResourceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089312D9CA4A00044234 /* RenderSVGResourceFilter.cpp */; };
+ 436708D312D9CA4B00044234 /* RenderSVGResourceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089412D9CA4A00044234 /* RenderSVGResourceFilter.h */; };
+ 436708D412D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089512D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.cpp */; };
+ 436708D512D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089612D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.h */; };
+ 436708D612D9CA4B00044234 /* RenderSVGResourceGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089712D9CA4A00044234 /* RenderSVGResourceGradient.cpp */; };
+ 436708D712D9CA4B00044234 /* RenderSVGResourceGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089812D9CA4A00044234 /* RenderSVGResourceGradient.h */; };
+ 436708D812D9CA4B00044234 /* RenderSVGResourceLinearGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089912D9CA4B00044234 /* RenderSVGResourceLinearGradient.cpp */; };
+ 436708D912D9CA4B00044234 /* RenderSVGResourceLinearGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089A12D9CA4B00044234 /* RenderSVGResourceLinearGradient.h */; };
+ 436708DA12D9CA4B00044234 /* RenderSVGResourceMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089B12D9CA4B00044234 /* RenderSVGResourceMarker.cpp */; };
+ 436708DB12D9CA4B00044234 /* RenderSVGResourceMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089C12D9CA4B00044234 /* RenderSVGResourceMarker.h */; };
+ 436708DC12D9CA4B00044234 /* RenderSVGResourceMasker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089D12D9CA4B00044234 /* RenderSVGResourceMasker.cpp */; };
+ 436708DD12D9CA4B00044234 /* RenderSVGResourceMasker.h in Headers */ = {isa = PBXBuildFile; fileRef = 4367089E12D9CA4B00044234 /* RenderSVGResourceMasker.h */; };
+ 436708DE12D9CA4B00044234 /* RenderSVGResourcePattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4367089F12D9CA4B00044234 /* RenderSVGResourcePattern.cpp */; };
+ 436708DF12D9CA4B00044234 /* RenderSVGResourcePattern.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A012D9CA4B00044234 /* RenderSVGResourcePattern.h */; };
+ 436708E012D9CA4B00044234 /* RenderSVGResourceRadialGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708A112D9CA4B00044234 /* RenderSVGResourceRadialGradient.cpp */; };
+ 436708E112D9CA4B00044234 /* RenderSVGResourceRadialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A212D9CA4B00044234 /* RenderSVGResourceRadialGradient.h */; };
+ 436708E212D9CA4B00044234 /* RenderSVGResourceSolidColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708A312D9CA4B00044234 /* RenderSVGResourceSolidColor.cpp */; };
+ 436708E312D9CA4B00044234 /* RenderSVGResourceSolidColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A412D9CA4B00044234 /* RenderSVGResourceSolidColor.h */; };
+ 436708E412D9CA4B00044234 /* RenderSVGRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708A512D9CA4B00044234 /* RenderSVGRoot.cpp */; };
+ 436708E512D9CA4B00044234 /* RenderSVGRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A612D9CA4B00044234 /* RenderSVGRoot.h */; };
+ 436708E612D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708A712D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.cpp */; };
+ 436708E712D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A812D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.h */; };
+ 436708E812D9CA4B00044234 /* RenderSVGTransformableContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708A912D9CA4B00044234 /* RenderSVGTransformableContainer.cpp */; };
+ 436708E912D9CA4B00044234 /* RenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AA12D9CA4B00044234 /* RenderSVGTransformableContainer.h */; };
+ 436708EA12D9CA4B00044234 /* RenderSVGViewportContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708AB12D9CA4B00044234 /* RenderSVGViewportContainer.cpp */; };
+ 436708EB12D9CA4B00044234 /* RenderSVGViewportContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AC12D9CA4B00044234 /* RenderSVGViewportContainer.h */; };
+ 436708EC12D9CA4B00044234 /* SVGImageBufferTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708AD12D9CA4B00044234 /* SVGImageBufferTools.cpp */; };
+ 436708ED12D9CA4B00044234 /* SVGImageBufferTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AE12D9CA4B00044234 /* SVGImageBufferTools.h */; };
+ 436708EE12D9CA4B00044234 /* SVGMarkerData.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AF12D9CA4B00044234 /* SVGMarkerData.h */; };
+ 436708EF12D9CA4B00044234 /* SVGMarkerLayoutInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708B012D9CA4B00044234 /* SVGMarkerLayoutInfo.cpp */; };
+ 436708F012D9CA4B00044234 /* SVGMarkerLayoutInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708B112D9CA4B00044234 /* SVGMarkerLayoutInfo.h */; };
+ 436708F112D9CA4B00044234 /* SVGRenderSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708B212D9CA4B00044234 /* SVGRenderSupport.cpp */; };
+ 436708F212D9CA4B00044234 /* SVGRenderSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708B312D9CA4B00044234 /* SVGRenderSupport.h */; };
+ 436708F312D9CA4B00044234 /* SVGRenderTreeAsText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708B412D9CA4B00044234 /* SVGRenderTreeAsText.cpp */; };
+ 436708F412D9CA4B00044234 /* SVGRenderTreeAsText.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708B512D9CA4B00044234 /* SVGRenderTreeAsText.h */; };
+ 436708F512D9CA4B00044234 /* SVGResources.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708B612D9CA4B00044234 /* SVGResources.cpp */; };
+ 436708F612D9CA4B00044234 /* SVGResources.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708B712D9CA4B00044234 /* SVGResources.h */; };
+ 436708F712D9CA4B00044234 /* SVGResourcesCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708B812D9CA4B00044234 /* SVGResourcesCache.cpp */; };
+ 436708F812D9CA4B00044234 /* SVGResourcesCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708B912D9CA4B00044234 /* SVGResourcesCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 436708F912D9CA4B00044234 /* SVGResourcesCycleSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708BA12D9CA4B00044234 /* SVGResourcesCycleSolver.cpp */; };
+ 436708FA12D9CA4B00044234 /* SVGResourcesCycleSolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708BB12D9CA4B00044234 /* SVGResourcesCycleSolver.h */; };
+ 436708FB12D9CA4B00044234 /* SVGShadowTreeElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 436708BC12D9CA4B00044234 /* SVGShadowTreeElements.cpp */; };
+ 436708FC12D9CA4B00044234 /* SVGShadowTreeElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708BD12D9CA4B00044234 /* SVGShadowTreeElements.h */; };
+ 439046D712DA25E800AF80A2 /* RenderMathMLBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046C312DA25E800AF80A2 /* RenderMathMLBlock.cpp */; };
+ 439046D812DA25E800AF80A2 /* RenderMathMLBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046C412DA25E800AF80A2 /* RenderMathMLBlock.h */; };
+ 439046D912DA25E800AF80A2 /* RenderMathMLFenced.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046C512DA25E800AF80A2 /* RenderMathMLFenced.cpp */; };
+ 439046DA12DA25E800AF80A2 /* RenderMathMLFenced.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046C612DA25E800AF80A2 /* RenderMathMLFenced.h */; };
+ 439046DB12DA25E800AF80A2 /* RenderMathMLFraction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046C712DA25E800AF80A2 /* RenderMathMLFraction.cpp */; };
+ 439046DC12DA25E800AF80A2 /* RenderMathMLFraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046C812DA25E800AF80A2 /* RenderMathMLFraction.h */; };
+ 439046DD12DA25E800AF80A2 /* RenderMathMLMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046C912DA25E800AF80A2 /* RenderMathMLMath.cpp */; };
+ 439046DE12DA25E800AF80A2 /* RenderMathMLMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046CA12DA25E800AF80A2 /* RenderMathMLMath.h */; };
+ 439046DF12DA25E800AF80A2 /* RenderMathMLOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046CB12DA25E800AF80A2 /* RenderMathMLOperator.cpp */; };
+ 439046E012DA25E800AF80A2 /* RenderMathMLOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046CC12DA25E800AF80A2 /* RenderMathMLOperator.h */; };
+ 439046E112DA25E800AF80A2 /* RenderMathMLRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046CD12DA25E800AF80A2 /* RenderMathMLRoot.cpp */; };
+ 439046E212DA25E800AF80A2 /* RenderMathMLRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046CE12DA25E800AF80A2 /* RenderMathMLRoot.h */; };
+ 439046E312DA25E800AF80A2 /* RenderMathMLRow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046CF12DA25E800AF80A2 /* RenderMathMLRow.cpp */; };
+ 439046E412DA25E800AF80A2 /* RenderMathMLRow.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D012DA25E800AF80A2 /* RenderMathMLRow.h */; };
+ 439046E512DA25E800AF80A2 /* RenderMathMLSquareRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046D112DA25E800AF80A2 /* RenderMathMLSquareRoot.cpp */; };
+ 439046E612DA25E800AF80A2 /* RenderMathMLSquareRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D212DA25E800AF80A2 /* RenderMathMLSquareRoot.h */; };
+ 439046E712DA25E800AF80A2 /* RenderMathMLSubSup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046D312DA25E800AF80A2 /* RenderMathMLSubSup.cpp */; };
+ 439046E812DA25E800AF80A2 /* RenderMathMLSubSup.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D412DA25E800AF80A2 /* RenderMathMLSubSup.h */; };
+ 439046E912DA25E800AF80A2 /* RenderMathMLUnderOver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 439046D512DA25E800AF80A2 /* RenderMathMLUnderOver.cpp */; };
+ 439046EA12DA25E800AF80A2 /* RenderMathMLUnderOver.h in Headers */ = {isa = PBXBuildFile; fileRef = 439046D612DA25E800AF80A2 /* RenderMathMLUnderOver.h */; };
+ 43C092BB12D9E4EE00A989C3 /* RenderSVGForeignObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 43C092B912D9E4EE00A989C3 /* RenderSVGForeignObject.cpp */; };
+ 43C092BC12D9E4EE00A989C3 /* RenderSVGForeignObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 43C092BA12D9E4EE00A989C3 /* RenderSVGForeignObject.h */; };
4415292E0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
4415292F0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4415292D0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp */; };
441B055C0CD77A2D007C1F18 /* DOMHTMLEmbedElementPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 4429AAFB0CB84E88007647C5 /* DOMHTMLEmbedElementPrivate.h */; };
441B055E0CD77A48007C1F18 /* DOMHTMLIFrameElementPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 4429AAFD0CB84EA5007647C5 /* DOMHTMLIFrameElementPrivate.h */; };
441B05600CD77A65007C1F18 /* DOMHTMLObjectElementPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 4429AAFF0CB84EC3007647C5 /* DOMHTMLObjectElementPrivate.h */; };
+ 44311CD612E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */; };
+ 44311CD712E4E22D000A8D19 /* DOMDocumentPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */; };
+ 44311CD812E4E24B000A8D19 /* DOMDocumentPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */; };
+ 44311CD912E4E257000A8D19 /* DOMDocumentFragmentPrivate.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */; };
+ 44311F8212E4E66C000A8D19 /* DOMDocumentFragmentInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711450AC5D5340053270F /* DOMDocumentFragmentInternal.h */; };
445C8DB710015FC90031531A /* IconDatabaseNone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 445C8DB610015FC90031531A /* IconDatabaseNone.cpp */; };
447D69030FA626810015CCB1 /* RuntimeApplicationChecks.h in Headers */ = {isa = PBXBuildFile; fileRef = 447D69010FA626810015CCB1 /* RuntimeApplicationChecks.h */; settings = {ATTRIBUTES = (Private, ); }; };
447D69040FA626810015CCB1 /* RuntimeApplicationChecks.mm in Sources */ = {isa = PBXBuildFile; fileRef = 447D69020FA626810015CCB1 /* RuntimeApplicationChecks.mm */; };
@@ -984,6 +1037,8 @@
448A29C00A46D9CB0030759F /* JSHTMLOptionsCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 448A29BE0A46D9CB0030759F /* JSHTMLOptionsCollection.cpp */; };
448AD27C0A48137A0023D179 /* JSHTMLOptionsCollectionCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 448AD27A0A4813790023D179 /* JSHTMLOptionsCollectionCustom.cpp */; };
449B19F50FA72ECE0015CA4A /* HTMLParserQuirks.h in Headers */ = {isa = PBXBuildFile; fileRef = 449B19F30FA72ECE0015CA4A /* HTMLParserQuirks.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 44A28AAC12DFB8AC00AE923B /* MathMLElementFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A28AAB12DFB8AC00AE923B /* MathMLElementFactory.h */; };
+ 44A28AAF12DFB8BF00AE923B /* MathMLNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A28AAE12DFB8BF00AE923B /* MathMLNames.h */; };
4614A1FE0B23A8D600446E1C /* copyCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 4614A1FD0B23A8D600446E1C /* copyCursor.png */; };
464EA2730B8A350B00A8E6E3 /* crossHairCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 464EA2710B8A350B00A8E6E3 /* crossHairCursor.png */; };
464EA2740B8A350B00A8E6E3 /* notAllowedCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 464EA2720B8A350B00A8E6E3 /* notAllowedCursor.png */; };
@@ -1602,6 +1657,8 @@
7A1F2B52126C61B20006A7E6 /* InspectorClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */; };
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, ); }; };
+ 7A5640BF12DF9E5E00F4536D /* InspectorSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */; };
+ 7A5640C012DF9E5E00F4536D /* InspectorSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */; };
7A674BDB0F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */; };
7A674BDC0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */; };
7A74ECBA101839A600BF939E /* InspectorDOMStorageAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A74ECB8101839A500BF939E /* InspectorDOMStorageAgent.cpp */; };
@@ -1655,8 +1712,6 @@
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 */; };
84224184107E77F400766A87 /* JSSVGFEMorphologyElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 84224182107E77F400766A87 /* JSSVGFEMorphologyElement.h */; };
8422418C107E786F00766A87 /* DOMSVGFEMorphologyElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 84224189107E786F00766A87 /* DOMSVGFEMorphologyElement.h */; };
@@ -1721,8 +1776,6 @@
84852286119016A7006EDC7F /* DOMSVGVKernElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84852282119016A7006EDC7F /* DOMSVGVKernElement.mm */; };
8485228A1190173C006EDC7F /* SVGVKernElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 848522871190173C006EDC7F /* SVGVKernElement.cpp */; };
8485228B1190173C006EDC7F /* SVGVKernElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 848522881190173C006EDC7F /* SVGVKernElement.h */; };
- 8499A514115FB33000F566E3 /* RenderSVGResourceMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8499A512115FB33000F566E3 /* RenderSVGResourceMarker.cpp */; };
- 8499A515115FB33000F566E3 /* RenderSVGResourceMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8499A513115FB33000F566E3 /* RenderSVGResourceMarker.h */; };
849F77760EFEC6200090849D /* StrokeStyleApplier.h in Headers */ = {isa = PBXBuildFile; fileRef = 849F77750EFEC6200090849D /* StrokeStyleApplier.h */; };
84A81F3D0FC7DFF000955300 /* SourceAlpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84A81F3B0FC7DFF000955300 /* SourceAlpha.cpp */; };
84A81F3E0FC7DFF000955300 /* SourceAlpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 84A81F3C0FC7DFF000955300 /* SourceAlpha.h */; };
@@ -1730,8 +1783,6 @@
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 */; };
84C5B2FA1216DC810088B53A /* SVGPathTraversalStateBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C5B2F81216DC810088B53A /* SVGPathTraversalStateBuilder.cpp */; };
84C5B2FB1216DC810088B53A /* SVGPathTraversalStateBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 84C5B2F91216DC810088B53A /* SVGPathTraversalStateBuilder.h */; };
84C6784C1214814700A92902 /* SVGPathBlender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84C6784A1214814700A92902 /* SVGPathBlender.cpp */; };
@@ -1985,12 +2036,6 @@
853BF4DB0ABB6B55008647BB /* DOMNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 853BF4D90ABB6B55008647BB /* DOMNode.h */; };
853BF4DC0ABB6B55008647BB /* DOMNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = 853BF4DA0ABB6B55008647BB /* DOMNode.mm */; };
853BF4EC0ABB6EB9008647BB /* DOMNode.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 853BF4D90ABB6B55008647BB /* DOMNode.h */; };
- 853CA9D60AEEC5E9002372DC /* RenderSVGContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 853CA9CA0AEEC5E9002372DC /* RenderSVGContainer.cpp */; };
- 853CA9D70AEEC5E9002372DC /* RenderSVGContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 853CA9CB0AEEC5E9002372DC /* RenderSVGContainer.h */; };
- 853CA9D80AEEC5E9002372DC /* RenderSVGImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 853CA9CC0AEEC5E9002372DC /* RenderSVGImage.cpp */; };
- 853CA9D90AEEC5E9002372DC /* RenderSVGImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 853CA9CD0AEEC5E9002372DC /* RenderSVGImage.h */; };
- 853CA9EC0AEEC63C002372DC /* RenderForeignObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 853CA9EA0AEEC63C002372DC /* RenderForeignObject.cpp */; };
- 853CA9ED0AEEC63C002372DC /* RenderForeignObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 853CA9EB0AEEC63C002372DC /* RenderForeignObject.h */; };
854074FC0AD6C22E00620C57 /* DOMSVGNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 854074F90AD6C22E00620C57 /* DOMSVGNumber.h */; };
854074FD0AD6C22E00620C57 /* DOMSVGPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 854074FA0AD6C22E00620C57 /* DOMSVGPoint.h */; };
854074FE0AD6C22E00620C57 /* DOMSVGRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 854074FB0AD6C22E00620C57 /* DOMSVGRect.h */; };
@@ -2458,7 +2503,7 @@
85E711910AC5D5350053270F /* DOMCounterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711420AC5D5340053270F /* DOMCounterInternal.h */; };
85E711920AC5D5350053270F /* DOMCSSRuleListInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711430AC5D5340053270F /* DOMCSSRuleListInternal.h */; };
85E711930AC5D5350053270F /* DOMCSSStyleDeclarationInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711440AC5D5340053270F /* DOMCSSStyleDeclarationInternal.h */; };
- 85E711940AC5D5350053270F /* DOMDocumentFragmentInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85E711450AC5D5340053270F /* DOMDocumentFragmentInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 85E711940AC5D5350053270F /* DOMDocumentFragmentInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85E711450AC5D5340053270F /* DOMDocumentFragmentInternal.h */; };
85E711950AC5D5350053270F /* DOMDocumentInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711460AC5D5340053270F /* DOMDocumentInternal.h */; };
85E711960AC5D5350053270F /* DOMDocumentTypeInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711470AC5D5340053270F /* DOMDocumentTypeInternal.h */; };
85E711970AC5D5350053270F /* DOMDOMImplementationInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 85E711480AC5D5340053270F /* DOMDOMImplementationInternal.h */; };
@@ -3118,8 +3163,6 @@
A622A8FF122C44A600A785B3 /* GenericBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = A622A8F9122C44A600A785B3 /* GenericBinding.h */; };
A718760E0B2A120100A16ECE /* DragActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A718760D0B2A120100A16ECE /* DragActions.h */; settings = {ATTRIBUTES = (Private, ); }; };
A71878900B2D04AC00A16ECE /* DragControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */; };
- A7352C190B1BB89D00A986D0 /* RenderSVGBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7352C170B1BB89D00A986D0 /* RenderSVGBlock.cpp */; };
- A7352C1A0B1BB89D00A986D0 /* RenderSVGBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = A7352C180B1BB89D00A986D0 /* RenderSVGBlock.h */; };
A75E497610752ACB00C9B896 /* SerializedScriptValue.h in Headers */ = {isa = PBXBuildFile; fileRef = A75E497410752ACB00C9B896 /* SerializedScriptValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
A75E497710752ACB00C9B896 /* SerializedScriptValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A75E497510752ACB00C9B896 /* SerializedScriptValue.cpp */; };
A75E8B880E1DE2D6007F2481 /* FEBlend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A75E8B800E1DE2D6007F2481 /* FEBlend.cpp */; };
@@ -3163,10 +3206,6 @@
A7DBF8DE1276919C006B6008 /* TextCheckingHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = A7DBF8DC1276919C006B6008 /* TextCheckingHelper.h */; };
A7F338A311C0EFCA00A320A7 /* ShadowElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7F338A111C0EFCA00A320A7 /* ShadowElement.cpp */; };
A7F338A411C0EFCA00A320A7 /* ShadowElement.h in Headers */ = {isa = PBXBuildFile; fileRef = A7F338A211C0EFCA00A320A7 /* ShadowElement.h */; };
- A809F1470B73793A002E4D7F /* RenderSVGGradientStop.h in Headers */ = {isa = PBXBuildFile; fileRef = A809F1450B73793A002E4D7F /* RenderSVGGradientStop.h */; };
- A809F1480B73793B002E4D7F /* RenderSVGGradientStop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A809F1460B73793A002E4D7F /* RenderSVGGradientStop.cpp */; };
- A809F1AA0B737FB6002E4D7F /* RenderSVGHiddenContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = A809F1A80B737FB6002E4D7F /* RenderSVGHiddenContainer.h */; };
- A809F1AB0B737FB6002E4D7F /* RenderSVGHiddenContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A809F1A90B737FB6002E4D7F /* RenderSVGHiddenContainer.cpp */; };
A80A38FE0E50CC8200A25EBC /* PatternCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A80A38FD0E50CC8200A25EBC /* PatternCG.cpp */; };
A80D67080E9E9DEB00E420F0 /* GraphicsContextPlatformPrivateCG.h in Headers */ = {isa = PBXBuildFile; fileRef = A80D67070E9E9DEB00E420F0 /* GraphicsContextPlatformPrivateCG.h */; };
A80E6CE40A1989CA007FB8C5 /* CSSValueList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A80E6CBA0A1989CA007FB8C5 /* CSSValueList.cpp */; };
@@ -3549,8 +3588,6 @@
A89943290B42338800D7C802 /* BitmapImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A89943270B42338700D7C802 /* BitmapImage.cpp */; };
A89CCC520F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A89CCC500F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.cpp */; };
A89CCC530F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A89CCC510F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.h */; };
- A8A909AC0CBCD6B50029B807 /* RenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */; };
- A8A909AD0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */; };
A8BC04921214F69600B5F122 /* HTMLEntityTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8BC04911214F69600B5F122 /* HTMLEntityTable.cpp */; };
A8C2280E11D4A59700D5A7D3 /* DocumentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8C2280D11D4A59700D5A7D3 /* DocumentParser.cpp */; };
A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */; };
@@ -3956,10 +3993,6 @@
A8F46B7C0CB20A9D003A9670 /* DOMSVGLinearGradientElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85C9A2FB0AD7E94200FBFF1E /* DOMSVGLinearGradientElement.h */; };
A8F46B7D0CB20A9D003A9670 /* DOMSVGRadialGradientElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 859D62790AD888EE00012995 /* DOMSVGRadialGradientElement.h */; };
A8F46B810CB20A9D003A9670 /* DOMSVGStringList.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85D79AD20ACA17EB00F02FC5 /* DOMSVGStringList.h */; };
- A8F4FB940C169E7B002AFED5 /* SVGRenderSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A8F4FB930C169E7B002AFED5 /* SVGRenderSupport.h */; };
- A8F4FB960C169E85002AFED5 /* SVGRenderSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8F4FB950C169E85002AFED5 /* SVGRenderSupport.cpp */; };
- A8F5C0B80F9285AC0098E06B /* RenderSVGModelObject.h in Headers */ = {isa = PBXBuildFile; fileRef = A8F5C0B60F9285AC0098E06B /* RenderSVGModelObject.h */; };
- A8F5C0B90F9285AC0098E06B /* RenderSVGModelObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8F5C0B70F9285AC0098E06B /* RenderSVGModelObject.cpp */; };
A8FA6E5D0E4CFDED00D5CF49 /* Pattern.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FA6E5B0E4CFDED00D5CF49 /* Pattern.h */; settings = {ATTRIBUTES = (Private, ); }; };
A8FA6E5E0E4CFDED00D5CF49 /* Pattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A8FA6E5C0E4CFDED00D5CF49 /* Pattern.cpp */; };
A9C6E4E30D745E05006442E9 /* DOMMimeType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C6E4E10D745E05006442E9 /* DOMMimeType.cpp */; };
@@ -3990,8 +4023,6 @@
A9D248090D757E7D00FDF959 /* JSDOMMimeTypeArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A9D248050D757E7D00FDF959 /* JSDOMMimeTypeArray.h */; };
AA21ECCA0ABF0FBA002B834C /* CSSCursorImageValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA0978ED0ABAA6E100874480 /* CSSCursorImageValue.cpp */; };
AA21ECCD0ABF0FC6002B834C /* CSSCursorImageValue.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
- AA31B5B40C1DFD1000AE7083 /* RenderSVGRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA31B5B20C1DFD1000AE7083 /* RenderSVGRoot.cpp */; };
- AA31B5B50C1DFD1000AE7083 /* RenderSVGRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = AA31B5B30C1DFD1000AE7083 /* RenderSVGRoot.h */; };
AA4C3A760B2B1679002334A2 /* StyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA4C3A740B2B1679002334A2 /* StyleElement.cpp */; };
AA4C3A770B2B1679002334A2 /* StyleElement.h in Headers */ = {isa = PBXBuildFile; fileRef = AA4C3A750B2B1679002334A2 /* StyleElement.h */; };
AB014DE30E689A4300E10445 /* TextControlInnerElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB014DE10E689A4300E10445 /* TextControlInnerElements.cpp */; };
@@ -4320,8 +4351,6 @@
B275357E0B053814002CE64F /* IntSizeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B27535510B053814002CE64F /* IntSizeMac.mm */; };
B275357F0B053814002CE64F /* Path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27535520B053814002CE64F /* Path.cpp */; };
B27535800B053814002CE64F /* Path.h in Headers */ = {isa = PBXBuildFile; fileRef = B27535530B053814002CE64F /* Path.h */; settings = {ATTRIBUTES = (Private, ); }; };
- B27535810B053814002CE64F /* Pen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27535540B053814002CE64F /* Pen.cpp */; };
- B27535820B053814002CE64F /* Pen.h in Headers */ = {isa = PBXBuildFile; fileRef = B27535550B053814002CE64F /* Pen.h */; };
B275358E0B053A66002CE64F /* IconMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B275358D0B053A66002CE64F /* IconMac.mm */; };
B277B4040B22F37C0004BEC6 /* GraphicsContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */; };
B27B28250CEF0C0700D39D54 /* JSSVGFontElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27B281F0CEF0C0700D39D54 /* JSSVGFontElement.cpp */; };
@@ -4437,14 +4466,10 @@
B2CB92620B5BDA02009BAA78 /* DOMSVGElementInstance.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2CB925E0B5BDA02009BAA78 /* DOMSVGElementInstance.mm */; };
B2CB92630B5BDA02009BAA78 /* DOMSVGElementInstanceList.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CB925F0B5BDA02009BAA78 /* DOMSVGElementInstanceList.h */; };
B2CB92640B5BDA02009BAA78 /* DOMSVGElementInstanceList.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2CB92600B5BDA02009BAA78 /* DOMSVGElementInstanceList.mm */; };
- B2CCEC470C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2CCEC450C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp */; };
- B2CCEC480C6CA9F1006A5424 /* RenderSVGViewportContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CCEC460C6CA9F1006A5424 /* RenderSVGViewportContainer.h */; };
B2E27C9F0B0F2B0900F17C7B /* FloatPoint3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */; };
B2E27CA00B0F2B0900F17C7B /* FloatPoint3D.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E27C9E0B0F2B0900F17C7B /* FloatPoint3D.h */; settings = {ATTRIBUTES = (Private, ); }; };
B2E4EC970D00C22B00432643 /* SVGZoomEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E4EC940D00C22B00432643 /* SVGZoomEvent.cpp */; };
B2E4EC980D00C22B00432643 /* SVGZoomEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = B2E4EC950D00C22B00432643 /* SVGZoomEvent.h */; };
- B2EBDC9C0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2EBDC9A0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp */; };
- B2EBDC9D0AF77E3400AE4A68 /* SVGRenderTreeAsText.h in Headers */ = {isa = PBXBuildFile; fileRef = B2EBDC9B0AF77E3400AE4A68 /* SVGRenderTreeAsText.h */; };
B2ED97710B1F55CE00257D0F /* GraphicsContextCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2ED97700B1F55CE00257D0F /* GraphicsContextCG.cpp */; };
B2F34FE60E82F81400F627CD /* DNS.h in Headers */ = {isa = PBXBuildFile; fileRef = B2F34FE50E82F81400F627CD /* DNS.h */; };
B2F34FE90E82F82700F627CD /* DNSCFNet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2F34FE80E82F82700F627CD /* DNSCFNet.cpp */; };
@@ -5569,6 +5594,8 @@
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 */; };
+ F3335BF812E07DC300D33011 /* InspectorConsoleAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3335BF612E07DC300D33011 /* InspectorConsoleAgent.cpp */; };
+ F3335BF912E07DC300D33011 /* InspectorConsoleAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F3335BF712E07DC300D33011 /* InspectorConsoleAgent.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 */; };
@@ -5584,6 +5611,8 @@
F39BE95C12673BF400E0A674 /* ScriptArguments.h in Headers */ = {isa = PBXBuildFile; fileRef = F39BE95A12673BF400E0A674 /* ScriptArguments.h */; };
F3D461481161D53200CA0D09 /* JSWorkerContextErrorHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3D461461161D53200CA0D09 /* JSWorkerContextErrorHandler.cpp */; };
F3D461491161D53200CA0D09 /* JSWorkerContextErrorHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D461471161D53200CA0D09 /* JSWorkerContextErrorHandler.h */; };
+ F3D4C47812E07663003DA150 /* InspectorBrowserDebuggerAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3D4C47612E07663003DA150 /* InspectorBrowserDebuggerAgent.cpp */; };
+ F3D4C47912E07663003DA150 /* InspectorBrowserDebuggerAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = F3D4C47712E07663003DA150 /* InspectorBrowserDebuggerAgent.h */; };
F4EAF4AE10C742B1009100D3 /* OpenTypeSanitizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4EAF4AC10C742B1009100D3 /* OpenTypeSanitizer.cpp */; };
F4EAF4AF10C742B1009100D3 /* OpenTypeSanitizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */; };
F55B3DAD1251F12D003EF269 /* BaseTextInputType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F55B3D791251F12D003EF269 /* BaseTextInputType.cpp */; };
@@ -5657,20 +5686,8 @@
F98FFF4411A2676200F548E8 /* CSSOMUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F98FFF4211A2676200F548E8 /* CSSOMUtils.cpp */; };
F98FFF4511A2676200F548E8 /* CSSOMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = F98FFF4311A2676200F548E8 /* CSSOMUtils.h */; };
F9F0ED7A0DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F9F0ED770DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h */; };
- FA0B1F8611125CEE007F9839 /* RenderMathMLMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */; };
- FA0B1F8711125CEE007F9839 /* RenderMathMLMath.h in Headers */ = {isa = PBXBuildFile; fileRef = FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */; };
- FA0B1F8811125CEE007F9839 /* RenderMathMLRow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */; };
- FA0B1F8911125CEE007F9839 /* RenderMathMLRow.h in Headers */ = {isa = PBXBuildFile; fileRef = FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */; };
- FA5FAE4211126A5D00D3750F /* RenderMathMLOperator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */; };
- FA5FAE4311126A5D00D3750F /* RenderMathMLOperator.h in Headers */ = {isa = PBXBuildFile; fileRef = FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */; };
FA654A6B1108ABED002615E0 /* MathMLTextElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA654A691108ABED002615E0 /* MathMLTextElement.cpp */; };
FA654A6C1108ABED002615E0 /* MathMLTextElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FA654A6A1108ABED002615E0 /* MathMLTextElement.h */; };
- FA654A6F1108ABFF002615E0 /* RenderMathMLBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA654A6D1108ABFF002615E0 /* RenderMathMLBlock.cpp */; };
- FA654A701108ABFF002615E0 /* RenderMathMLBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = FA654A6E1108ABFF002615E0 /* RenderMathMLBlock.h */; };
- FA7EFB051120D25400CF79C7 /* RenderMathMLUnderOver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA7EFB031120D25400CF79C7 /* RenderMathMLUnderOver.cpp */; };
- FA7EFB061120D25400CF79C7 /* RenderMathMLUnderOver.h in Headers */ = {isa = PBXBuildFile; fileRef = FA7EFB041120D25400CF79C7 /* RenderMathMLUnderOver.h */; };
- FAA10570114C2DF700940A01 /* RenderMathMLFraction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAA1056E114C2DF700940A01 /* RenderMathMLFraction.cpp */; };
- FAA10571114C2DF700940A01 /* RenderMathMLFraction.h in Headers */ = {isa = PBXBuildFile; fileRef = FAA1056F114C2DF700940A01 /* RenderMathMLFraction.h */; };
FABE72F41059C1EB00D999DD /* MathMLElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */; };
FABE72F51059C1EB00D999DD /* MathMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FABE72EE1059C1EB00D999DD /* MathMLElement.h */; };
FABE72F61059C1EB00D999DD /* MathMLInlineContainerElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72EF1059C1EB00D999DD /* MathMLInlineContainerElement.cpp */; };
@@ -5679,8 +5696,6 @@
FABE72F91059C1EB00D999DD /* MathMLMathElement.h in Headers */ = {isa = PBXBuildFile; fileRef = FABE72F21059C1EB00D999DD /* MathMLMathElement.h */; };
FABE72FD1059C21100D999DD /* MathMLElementFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72FB1059C21100D999DD /* MathMLElementFactory.cpp */; };
FABE72FE1059C21100D999DD /* MathMLNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FABE72FC1059C21100D999DD /* MathMLNames.cpp */; };
- FAC12CC41120DA6900DACC36 /* RenderMathMLSubSup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAC12CC21120DA6900DACC36 /* RenderMathMLSubSup.cpp */; };
- FAC12CC51120DA6900DACC36 /* RenderMathMLSubSup.h in Headers */ = {isa = PBXBuildFile; fileRef = FAC12CC31120DA6900DACC36 /* RenderMathMLSubSup.h */; };
FBC220DF1237FBEB00BCF788 /* GraphicsContext3DOpenGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FBC220DE1237FBEB00BCF788 /* GraphicsContext3DOpenGL.cpp */; };
FD2DBF1212B048A300ED98C6 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD2DBF0E12B048A300ED98C6 /* Accelerate.framework */; };
FD2DBF1312B048A300ED98C6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD2DBF0F12B048A300ED98C6 /* AudioToolbox.framework */; };
@@ -5927,7 +5942,9 @@
1C11CCBD0AA6093700DADB20 /* DOMDocument.h in Copy Generated Headers */,
1C11CCC60AA6093700DADB20 /* DOMDocumentFragment.h in Copy Generated Headers */,
85E711940AC5D5350053270F /* DOMDocumentFragmentInternal.h in Copy Generated Headers */,
+ 44311CD912E4E257000A8D19 /* DOMDocumentFragmentPrivate.h in Copy Generated Headers */,
1CB4214A0AF2B2CA0085AD91 /* DOMDocumentInternal.h in Copy Generated Headers */,
+ 44311CD812E4E24B000A8D19 /* DOMDocumentPrivate.h in Copy Generated Headers */,
1C11CCC00AA6093700DADB20 /* DOMDocumentType.h in Copy Generated Headers */,
1C11CCC10AA6093700DADB20 /* DOMDOMImplementation.h in Copy Generated Headers */,
1C11CCC40AA6093700DADB20 /* DOMElement.h in Copy Generated Headers */,
@@ -6347,7 +6364,6 @@
0804BF6C0EE09C3B0006C000 /* WMLDoElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLDoElement.cpp; sourceTree = "<group>"; };
0804BF6D0EE09C3B0006C000 /* WMLDoElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLDoElement.h; sourceTree = "<group>"; };
0806E57912893045007CED32 /* SVGMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMatrix.h; sourceTree = "<group>"; };
- 08082372117987C100241DE8 /* RenderSVGResourceContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceContainer.h; sourceTree = "<group>"; };
080AEC7D0ED8708A00DF4CCE /* WMLIntrinsicEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLIntrinsicEvent.cpp; sourceTree = "<group>"; };
080AEC7E0ED8708B00DF4CCE /* WMLIntrinsicEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLIntrinsicEvent.h; sourceTree = "<group>"; };
080AEC7F0ED8708B00DF4CCE /* WMLIntrinsicEventHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLIntrinsicEventHandler.cpp; sourceTree = "<group>"; };
@@ -6381,10 +6397,6 @@
0823D158127AD6AC000EBC95 /* SVGAnimatedInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedInteger.h; sourceTree = "<group>"; };
08250938128BD4D800E2ED8E /* SVGAnimatedTransformList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformList.h; sourceTree = "<group>"; };
082DE42C1292621600D923DF /* SVGPathSegWithContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegWithContext.h; sourceTree = "<group>"; };
- 083192A7112B43050083C3B9 /* RenderSVGResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResource.h; sourceTree = "<group>"; };
- 083192A8112B43050083C3B9 /* RenderSVGResourceMasker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMasker.cpp; sourceTree = "<group>"; };
- 083192A9112B43050083C3B9 /* RenderSVGResourceMasker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMasker.h; sourceTree = "<group>"; };
- 08385FF510F0186000BFE07B /* SVGMarkerData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerData.h; sourceTree = "<group>"; };
083DAEA20F01A7FB00342754 /* RenderTextControlMultiLine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControlMultiLine.cpp; sourceTree = "<group>"; };
083DAEA30F01A7FB00342754 /* RenderTextControlMultiLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextControlMultiLine.h; sourceTree = "<group>"; };
083DAEA40F01A7FB00342754 /* RenderTextControlSingleLine.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextControlSingleLine.cpp; sourceTree = "<group>"; };
@@ -6396,10 +6408,6 @@
084CE5C80F27DADC00E6240E /* WMLOptGroupElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLOptGroupElement.h; sourceTree = "<group>"; };
084CE5C90F27DADC00E6240E /* WMLOptionElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLOptionElement.cpp; sourceTree = "<group>"; };
084CE5CA0F27DADC00E6240E /* WMLOptionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLOptionElement.h; sourceTree = "<group>"; };
- 084D0E3811F5816100081E1A /* SVGResources.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResources.cpp; sourceTree = "<group>"; };
- 084D0E3911F5816100081E1A /* SVGResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResources.h; sourceTree = "<group>"; };
- 084D0E3A11F5816100081E1A /* SVGResourcesCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourcesCache.cpp; sourceTree = "<group>"; };
- 084D0E3B11F5816100081E1A /* SVGResourcesCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCache.h; sourceTree = "<group>"; };
084DB59A128008CC002A6D64 /* SVGAnimatedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedString.h; sourceTree = "<group>"; };
084DBA9D0ED39D350038C226 /* WMLVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLVariables.cpp; sourceTree = "<group>"; };
084DBA9E0ED39D360038C226 /* WMLVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLVariables.h; sourceTree = "<group>"; };
@@ -6422,30 +6430,22 @@
0854B0111255E4E600B9CDD0 /* SVGRootInlineBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRootInlineBox.h; sourceTree = "<group>"; };
0854B0121255E4E600B9CDD0 /* SVGTextQuery.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextQuery.cpp; sourceTree = "<group>"; };
0854B0131255E4E600B9CDD0 /* SVGTextQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTextQuery.h; sourceTree = "<group>"; };
- 08563BB2117861770012B578 /* RenderSVGResourcePattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourcePattern.cpp; sourceTree = "<group>"; };
- 08563BB3117861770012B578 /* RenderSVGResourcePattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourcePattern.h; sourceTree = "<group>"; };
- 08563BCF117865F50012B578 /* RenderSVGResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResource.cpp; sourceTree = "<group>"; };
085797081278394C00A8EC5F /* SVGAnimatedBoolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedBoolean.h; sourceTree = "<group>"; };
08591AA40F085C4E009BACB1 /* InputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputElement.h; sourceTree = "<group>"; };
085A15921289A8DD002710E3 /* SVGAnimatedTransformListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedTransformListPropertyTearOff.h; sourceTree = "<group>"; };
085AFDC60F2977350061F2B3 /* WMLFormControlElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLFormControlElement.cpp; sourceTree = "<group>"; };
085AFDC70F2977350061F2B3 /* WMLFormControlElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLFormControlElement.h; sourceTree = "<group>"; };
- 085B05C011FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourcesCycleSolver.cpp; sourceTree = "<group>"; };
- 085B05C111FAE16C004D65F6 /* SVGResourcesCycleSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCycleSolver.h; sourceTree = "<group>"; };
085B92B80EFDE73D00E6123C /* FormDataBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormDataBuilder.cpp; sourceTree = "<group>"; };
085B92B90EFDE73D00E6123C /* FormDataBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormDataBuilder.h; sourceTree = "<group>"; };
08641D4512142F7D008DE9F6 /* RenderImageResourceStyleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderImageResourceStyleImage.cpp; sourceTree = "<group>"; };
08641D4612142F7D008DE9F6 /* RenderImageResourceStyleImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderImageResourceStyleImage.h; sourceTree = "<group>"; };
0865CCE40EDDF51B00DF9EC3 /* WMLNoopElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLNoopElement.cpp; sourceTree = "<group>"; };
0865CCE50EDDF51B00DF9EC3 /* WMLNoopElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLNoopElement.h; sourceTree = "<group>"; };
- 086A400511F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceContainer.cpp; sourceTree = "<group>"; };
08700BE60F086C5300919419 /* InputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InputElement.cpp; sourceTree = "<group>"; };
087281510F26B9B600AFC596 /* OptionElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionElement.cpp; sourceTree = "<group>"; };
087281520F26B9B600AFC596 /* OptionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionElement.h; sourceTree = "<group>"; };
087281530F26B9B600AFC596 /* OptionGroupElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionGroupElement.cpp; sourceTree = "<group>"; };
087281540F26B9B600AFC596 /* OptionGroupElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionGroupElement.h; sourceTree = "<group>"; };
- 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGMarkerLayoutInfo.cpp; sourceTree = "<group>"; };
- 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerLayoutInfo.h; sourceTree = "<group>"; };
08744BA90EDB7D86004C9E63 /* WMLOnEventElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLOnEventElement.cpp; sourceTree = "<group>"; };
08744BAD0EDB7D92004C9E63 /* WMLOnEventElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLOnEventElement.h; sourceTree = "<group>"; };
087B84951272CEC700A14417 /* SVGAnimatedAngle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedAngle.h; sourceTree = "<group>"; };
@@ -6493,20 +6493,10 @@
08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGElementInstanceCustom.cpp; sourceTree = "<group>"; };
08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumber.h; sourceTree = "<group>"; };
08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumberList.h; sourceTree = "<group>"; };
- 08C34AF11179C056002D7456 /* RenderSVGResourceGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceGradient.cpp; sourceTree = "<group>"; };
- 08C34AF21179C057002D7456 /* RenderSVGResourceGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceGradient.h; sourceTree = "<group>"; };
- 08C34AF31179C057002D7456 /* RenderSVGResourceLinearGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceLinearGradient.cpp; sourceTree = "<group>"; };
- 08C34AF41179C057002D7456 /* RenderSVGResourceLinearGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceLinearGradient.h; sourceTree = "<group>"; };
- 08C34AFB1179C072002D7456 /* RenderSVGResourceRadialGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceRadialGradient.cpp; sourceTree = "<group>"; };
- 08C34AFC1179C072002D7456 /* RenderSVGResourceRadialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceRadialGradient.h; sourceTree = "<group>"; };
- 08C46B671212F15D0011AF40 /* SVGImageBufferTools.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImageBufferTools.cpp; sourceTree = "<group>"; };
- 08C46B681212F15D0011AF40 /* SVGImageBufferTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageBufferTools.h; sourceTree = "<group>"; };
08C4C5140EF19A4000E4840F /* WMLImageElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLImageElement.cpp; sourceTree = "<group>"; };
08C4C5150EF19A4000E4840F /* WMLImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLImageElement.h; sourceTree = "<group>"; };
08C4C5160EF19A4000E4840F /* WMLImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLImageLoader.cpp; sourceTree = "<group>"; };
08C4C5170EF19A4000E4840F /* WMLImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLImageLoader.h; sourceTree = "<group>"; };
- 08C6A7A9117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceSolidColor.cpp; sourceTree = "<group>"; };
- 08C6A7AA117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceSolidColor.h; sourceTree = "<group>"; };
08C7136D128956A3001B107E /* SVGTransformListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTransformListPropertyTearOff.h; sourceTree = "<group>"; };
08C859BF1274575300A5728D /* SVGAnimatedRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedRect.h; sourceTree = "<group>"; };
08C925170FCC7C4A00480DEC /* FilterEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FilterEffect.cpp; path = filters/FilterEffect.cpp; sourceTree = "<group>"; };
@@ -6515,10 +6505,6 @@
08CD61B80ED3929C002DDF51 /* WMLTaskElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLTaskElement.cpp; sourceTree = "<group>"; };
08CD61B90ED3929C002DDF51 /* WMLTaskElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLTaskElement.h; sourceTree = "<group>"; };
08D46CE2127AD5FC0089694B /* SVGAnimatedEnumeration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedEnumeration.h; sourceTree = "<group>"; };
- 08DAB9B81103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGShadowTreeRootContainer.cpp; sourceTree = "<group>"; };
- 08DAB9B91103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGShadowTreeRootContainer.h; sourceTree = "<group>"; };
- 08DAB9C01103D9C1003E7ABA /* SVGShadowTreeElements.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGShadowTreeElements.cpp; sourceTree = "<group>"; };
- 08DAB9C11103D9C1003E7ABA /* SVGShadowTreeElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGShadowTreeElements.h; sourceTree = "<group>"; };
08E192510EDE0C390087B780 /* WMLErrorHandling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLErrorHandling.cpp; sourceTree = "<group>"; };
08E192520EDE0C3A0087B780 /* WMLErrorHandling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLErrorHandling.h; sourceTree = "<group>"; };
08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGLengthCustom.cpp; sourceTree = "<group>"; };
@@ -6569,8 +6555,6 @@
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>"; };
0FCF33230F2B9715004B6795 /* ColorCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ColorCG.cpp; sourceTree = "<group>"; };
@@ -6584,10 +6568,6 @@
0FD308D4117D168400A791F7 /* RenderIFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderIFrame.h; sourceTree = "<group>"; };
0FD723800EC8BD9300CA5DD7 /* FloatQuad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatQuad.h; sourceTree = "<group>"; };
0FD723810EC8BD9300CA5DD7 /* FloatQuad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FloatQuad.cpp; sourceTree = "<group>"; };
- 0FF2813211821CB6007B7CD6 /* RenderMathMLRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLRoot.cpp; sourceTree = "<group>"; };
- 0FF2813311821CB6007B7CD6 /* RenderMathMLRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLRoot.h; sourceTree = "<group>"; };
- 0FF2813411821CB6007B7CD6 /* RenderMathMLSquareRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLSquareRoot.cpp; sourceTree = "<group>"; };
- 0FF2813511821CB6007B7CD6 /* RenderMathMLSquareRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLSquareRoot.h; sourceTree = "<group>"; };
0FF50259102BA9010066F39A /* DOMStyleMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMStyleMedia.h; sourceTree = "<group>"; };
0FF5025A102BA9010066F39A /* DOMStyleMedia.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMStyleMedia.mm; sourceTree = "<group>"; };
0FF50262102BA92B0066F39A /* DOMStyleMediaInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMStyleMediaInternal.h; sourceTree = "<group>"; };
@@ -6668,8 +6648,6 @@
1921327111C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEConvolveMatrixElement.cpp; sourceTree = "<group>"; };
1921327211C0E6BB00456238 /* SVGFEConvolveMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEConvolveMatrixElement.h; sourceTree = "<group>"; };
1921327311C0E6BB00456238 /* SVGFEConvolveMatrixElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SVGFEConvolveMatrixElement.idl; sourceTree = "<group>"; };
- 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceFilterPrimitive.cpp; sourceTree = "<group>"; };
- 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceFilterPrimitive.h; sourceTree = "<group>"; };
19BFF64611C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGFEConvolveMatrixElement.h; sourceTree = "<group>"; };
19BFF64711C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGFEConvolveMatrixElement.mm; sourceTree = "<group>"; };
19BFF64811C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGFEConvolveMatrixElementInternal.h; sourceTree = "<group>"; };
@@ -7052,6 +7030,11 @@
2E2D99E510E2BC1C00496337 /* DOMBlob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMBlob.h; sourceTree = "<group>"; };
2E2D99E610E2BC1C00496337 /* DOMBlob.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMBlob.mm; sourceTree = "<group>"; };
2E2D99E910E2BC3800496337 /* DOMBlobInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMBlobInternal.h; sourceTree = "<group>"; };
+ 2E37DFD712DBAFB800A6B233 /* DOMURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMURL.cpp; sourceTree = "<group>"; };
+ 2E37DFD812DBAFB800A6B233 /* DOMURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMURL.h; sourceTree = "<group>"; };
+ 2E37DFD912DBAFB800A6B233 /* DOMURL.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = DOMURL.idl; sourceTree = "<group>"; };
+ 2E37E00312DBC5A400A6B233 /* JSDOMURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMURL.cpp; sourceTree = "<group>"; };
+ 2E37E00412DBC5A400A6B233 /* JSDOMURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMURL.h; sourceTree = "<group>"; };
2E3BBF051162DA1100B9409A /* UUID.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UUID.cpp; sourceTree = "<group>"; };
2E3BBF061162DA1100B9409A /* UUID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UUID.h; sourceTree = "<group>"; };
2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileError.cpp; sourceTree = "<group>"; };
@@ -7301,12 +7284,97 @@
41F1D21D0EF35C2A00DA8753 /* ScriptCachedFrameData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptCachedFrameData.h; sourceTree = "<group>"; };
41F1D21E0EF35C2A00DA8753 /* ScriptCachedFrameData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptCachedFrameData.cpp; sourceTree = "<group>"; };
41F584C6104652CB009CAA64 /* JSMessagePortCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMessagePortCustom.h; sourceTree = "<group>"; };
+ 4367088112D9CA4A00044234 /* RenderSVGBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGBlock.cpp; sourceTree = "<group>"; };
+ 4367088212D9CA4A00044234 /* RenderSVGBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGBlock.h; sourceTree = "<group>"; };
+ 4367088312D9CA4A00044234 /* RenderSVGContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGContainer.cpp; sourceTree = "<group>"; };
+ 4367088412D9CA4A00044234 /* RenderSVGContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGContainer.h; sourceTree = "<group>"; };
+ 4367088512D9CA4A00044234 /* RenderSVGGradientStop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGGradientStop.cpp; sourceTree = "<group>"; };
+ 4367088612D9CA4A00044234 /* RenderSVGGradientStop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGGradientStop.h; sourceTree = "<group>"; };
+ 4367088712D9CA4A00044234 /* RenderSVGHiddenContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGHiddenContainer.cpp; sourceTree = "<group>"; };
+ 4367088812D9CA4A00044234 /* RenderSVGHiddenContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGHiddenContainer.h; sourceTree = "<group>"; };
+ 4367088912D9CA4A00044234 /* RenderSVGImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGImage.cpp; sourceTree = "<group>"; };
+ 4367088A12D9CA4A00044234 /* RenderSVGImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGImage.h; sourceTree = "<group>"; };
+ 4367088B12D9CA4A00044234 /* RenderSVGModelObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGModelObject.cpp; sourceTree = "<group>"; };
+ 4367088C12D9CA4A00044234 /* RenderSVGModelObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGModelObject.h; sourceTree = "<group>"; };
+ 4367088D12D9CA4A00044234 /* RenderSVGResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResource.cpp; sourceTree = "<group>"; };
+ 4367088E12D9CA4A00044234 /* RenderSVGResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResource.h; sourceTree = "<group>"; };
+ 4367088F12D9CA4A00044234 /* RenderSVGResourceClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceClipper.cpp; sourceTree = "<group>"; };
+ 4367089012D9CA4A00044234 /* RenderSVGResourceClipper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceClipper.h; sourceTree = "<group>"; };
+ 4367089112D9CA4A00044234 /* RenderSVGResourceContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceContainer.cpp; sourceTree = "<group>"; };
+ 4367089212D9CA4A00044234 /* RenderSVGResourceContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceContainer.h; sourceTree = "<group>"; };
+ 4367089312D9CA4A00044234 /* RenderSVGResourceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceFilter.cpp; sourceTree = "<group>"; };
+ 4367089412D9CA4A00044234 /* RenderSVGResourceFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceFilter.h; sourceTree = "<group>"; };
+ 4367089512D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceFilterPrimitive.cpp; sourceTree = "<group>"; };
+ 4367089612D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceFilterPrimitive.h; sourceTree = "<group>"; };
+ 4367089712D9CA4A00044234 /* RenderSVGResourceGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceGradient.cpp; sourceTree = "<group>"; };
+ 4367089812D9CA4A00044234 /* RenderSVGResourceGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceGradient.h; sourceTree = "<group>"; };
+ 4367089912D9CA4B00044234 /* RenderSVGResourceLinearGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceLinearGradient.cpp; sourceTree = "<group>"; };
+ 4367089A12D9CA4B00044234 /* RenderSVGResourceLinearGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceLinearGradient.h; sourceTree = "<group>"; };
+ 4367089B12D9CA4B00044234 /* RenderSVGResourceMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMarker.cpp; sourceTree = "<group>"; };
+ 4367089C12D9CA4B00044234 /* RenderSVGResourceMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMarker.h; sourceTree = "<group>"; };
+ 4367089D12D9CA4B00044234 /* RenderSVGResourceMasker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMasker.cpp; sourceTree = "<group>"; };
+ 4367089E12D9CA4B00044234 /* RenderSVGResourceMasker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMasker.h; sourceTree = "<group>"; };
+ 4367089F12D9CA4B00044234 /* RenderSVGResourcePattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourcePattern.cpp; sourceTree = "<group>"; };
+ 436708A012D9CA4B00044234 /* RenderSVGResourcePattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourcePattern.h; sourceTree = "<group>"; };
+ 436708A112D9CA4B00044234 /* RenderSVGResourceRadialGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceRadialGradient.cpp; sourceTree = "<group>"; };
+ 436708A212D9CA4B00044234 /* RenderSVGResourceRadialGradient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceRadialGradient.h; sourceTree = "<group>"; };
+ 436708A312D9CA4B00044234 /* RenderSVGResourceSolidColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceSolidColor.cpp; sourceTree = "<group>"; };
+ 436708A412D9CA4B00044234 /* RenderSVGResourceSolidColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceSolidColor.h; sourceTree = "<group>"; };
+ 436708A512D9CA4B00044234 /* RenderSVGRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGRoot.cpp; sourceTree = "<group>"; };
+ 436708A612D9CA4B00044234 /* RenderSVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGRoot.h; sourceTree = "<group>"; };
+ 436708A712D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGShadowTreeRootContainer.cpp; sourceTree = "<group>"; };
+ 436708A812D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGShadowTreeRootContainer.h; sourceTree = "<group>"; };
+ 436708A912D9CA4B00044234 /* RenderSVGTransformableContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGTransformableContainer.cpp; sourceTree = "<group>"; };
+ 436708AA12D9CA4B00044234 /* RenderSVGTransformableContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGTransformableContainer.h; sourceTree = "<group>"; };
+ 436708AB12D9CA4B00044234 /* RenderSVGViewportContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGViewportContainer.cpp; sourceTree = "<group>"; };
+ 436708AC12D9CA4B00044234 /* RenderSVGViewportContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGViewportContainer.h; sourceTree = "<group>"; };
+ 436708AD12D9CA4B00044234 /* SVGImageBufferTools.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImageBufferTools.cpp; sourceTree = "<group>"; };
+ 436708AE12D9CA4B00044234 /* SVGImageBufferTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImageBufferTools.h; sourceTree = "<group>"; };
+ 436708AF12D9CA4B00044234 /* SVGMarkerData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerData.h; sourceTree = "<group>"; };
+ 436708B012D9CA4B00044234 /* SVGMarkerLayoutInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGMarkerLayoutInfo.cpp; sourceTree = "<group>"; };
+ 436708B112D9CA4B00044234 /* SVGMarkerLayoutInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMarkerLayoutInfo.h; sourceTree = "<group>"; };
+ 436708B212D9CA4B00044234 /* SVGRenderSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGRenderSupport.cpp; sourceTree = "<group>"; };
+ 436708B312D9CA4B00044234 /* SVGRenderSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRenderSupport.h; sourceTree = "<group>"; };
+ 436708B412D9CA4B00044234 /* SVGRenderTreeAsText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGRenderTreeAsText.cpp; sourceTree = "<group>"; };
+ 436708B512D9CA4B00044234 /* SVGRenderTreeAsText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRenderTreeAsText.h; sourceTree = "<group>"; };
+ 436708B612D9CA4B00044234 /* SVGResources.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResources.cpp; sourceTree = "<group>"; };
+ 436708B712D9CA4B00044234 /* SVGResources.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResources.h; sourceTree = "<group>"; };
+ 436708B812D9CA4B00044234 /* SVGResourcesCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourcesCache.cpp; sourceTree = "<group>"; };
+ 436708B912D9CA4B00044234 /* SVGResourcesCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCache.h; sourceTree = "<group>"; };
+ 436708BA12D9CA4B00044234 /* SVGResourcesCycleSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourcesCycleSolver.cpp; sourceTree = "<group>"; };
+ 436708BB12D9CA4B00044234 /* SVGResourcesCycleSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGResourcesCycleSolver.h; sourceTree = "<group>"; };
+ 436708BC12D9CA4B00044234 /* SVGShadowTreeElements.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGShadowTreeElements.cpp; sourceTree = "<group>"; };
+ 436708BD12D9CA4B00044234 /* SVGShadowTreeElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGShadowTreeElements.h; sourceTree = "<group>"; };
+ 439046C312DA25E800AF80A2 /* RenderMathMLBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLBlock.cpp; path = mathml/RenderMathMLBlock.cpp; sourceTree = "<group>"; };
+ 439046C412DA25E800AF80A2 /* RenderMathMLBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLBlock.h; path = mathml/RenderMathMLBlock.h; sourceTree = "<group>"; };
+ 439046C512DA25E800AF80A2 /* RenderMathMLFenced.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLFenced.cpp; path = mathml/RenderMathMLFenced.cpp; sourceTree = "<group>"; };
+ 439046C612DA25E800AF80A2 /* RenderMathMLFenced.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLFenced.h; path = mathml/RenderMathMLFenced.h; sourceTree = "<group>"; };
+ 439046C712DA25E800AF80A2 /* RenderMathMLFraction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLFraction.cpp; path = mathml/RenderMathMLFraction.cpp; sourceTree = "<group>"; };
+ 439046C812DA25E800AF80A2 /* RenderMathMLFraction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLFraction.h; path = mathml/RenderMathMLFraction.h; sourceTree = "<group>"; };
+ 439046C912DA25E800AF80A2 /* RenderMathMLMath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLMath.cpp; path = mathml/RenderMathMLMath.cpp; sourceTree = "<group>"; };
+ 439046CA12DA25E800AF80A2 /* RenderMathMLMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLMath.h; path = mathml/RenderMathMLMath.h; sourceTree = "<group>"; };
+ 439046CB12DA25E800AF80A2 /* RenderMathMLOperator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLOperator.cpp; path = mathml/RenderMathMLOperator.cpp; sourceTree = "<group>"; };
+ 439046CC12DA25E800AF80A2 /* RenderMathMLOperator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLOperator.h; path = mathml/RenderMathMLOperator.h; sourceTree = "<group>"; };
+ 439046CD12DA25E800AF80A2 /* RenderMathMLRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLRoot.cpp; path = mathml/RenderMathMLRoot.cpp; sourceTree = "<group>"; };
+ 439046CE12DA25E800AF80A2 /* RenderMathMLRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLRoot.h; path = mathml/RenderMathMLRoot.h; sourceTree = "<group>"; };
+ 439046CF12DA25E800AF80A2 /* RenderMathMLRow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLRow.cpp; path = mathml/RenderMathMLRow.cpp; sourceTree = "<group>"; };
+ 439046D012DA25E800AF80A2 /* RenderMathMLRow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLRow.h; path = mathml/RenderMathMLRow.h; sourceTree = "<group>"; };
+ 439046D112DA25E800AF80A2 /* RenderMathMLSquareRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLSquareRoot.cpp; path = mathml/RenderMathMLSquareRoot.cpp; sourceTree = "<group>"; };
+ 439046D212DA25E800AF80A2 /* RenderMathMLSquareRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLSquareRoot.h; path = mathml/RenderMathMLSquareRoot.h; sourceTree = "<group>"; };
+ 439046D312DA25E800AF80A2 /* RenderMathMLSubSup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLSubSup.cpp; path = mathml/RenderMathMLSubSup.cpp; sourceTree = "<group>"; };
+ 439046D412DA25E800AF80A2 /* RenderMathMLSubSup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLSubSup.h; path = mathml/RenderMathMLSubSup.h; sourceTree = "<group>"; };
+ 439046D512DA25E800AF80A2 /* RenderMathMLUnderOver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMathMLUnderOver.cpp; path = mathml/RenderMathMLUnderOver.cpp; sourceTree = "<group>"; };
+ 439046D612DA25E800AF80A2 /* RenderMathMLUnderOver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderMathMLUnderOver.h; path = mathml/RenderMathMLUnderOver.h; sourceTree = "<group>"; };
+ 43C092B912D9E4EE00A989C3 /* RenderSVGForeignObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGForeignObject.cpp; sourceTree = "<group>"; };
+ 43C092BA12D9E4EE00A989C3 /* RenderSVGForeignObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGForeignObject.h; sourceTree = "<group>"; };
4415292C0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLPlugInImageElement.h; sourceTree = "<group>"; };
4415292D0E1AE8A000C4A2D0 /* HTMLPlugInImageElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLPlugInImageElement.cpp; sourceTree = "<group>"; };
4429AAFB0CB84E88007647C5 /* DOMHTMLEmbedElementPrivate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLEmbedElementPrivate.h; sourceTree = "<group>"; };
4429AAFD0CB84EA5007647C5 /* DOMHTMLIFrameElementPrivate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLIFrameElementPrivate.h; sourceTree = "<group>"; };
4429AAFF0CB84EC3007647C5 /* DOMHTMLObjectElementPrivate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMHTMLObjectElementPrivate.h; sourceTree = "<group>"; };
4429AB070CB84F81007647C5 /* DOMTextEventInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMTextEventInternal.h; sourceTree = "<group>"; };
+ 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDocumentFragmentPrivate.h; sourceTree = "<group>"; };
+ 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMDocumentPrivate.h; sourceTree = "<group>"; };
445C8DB610015FC90031531A /* IconDatabaseNone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabaseNone.cpp; sourceTree = "<group>"; };
447D69010FA626810015CCB1 /* RuntimeApplicationChecks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeApplicationChecks.h; sourceTree = "<group>"; };
447D69020FA626810015CCB1 /* RuntimeApplicationChecks.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RuntimeApplicationChecks.mm; sourceTree = "<group>"; };
@@ -7315,6 +7383,8 @@
448AD27A0A4813790023D179 /* JSHTMLOptionsCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLOptionsCollectionCustom.cpp; sourceTree = "<group>"; };
449098B10F8F82520076A327 /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; };
449B19F30FA72ECE0015CA4A /* HTMLParserQuirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLParserQuirks.h; sourceTree = "<group>"; };
+ 44A28AAB12DFB8AC00AE923B /* MathMLElementFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLElementFactory.h; sourceTree = "<group>"; };
+ 44A28AAE12DFB8BF00AE923B /* MathMLNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLNames.h; sourceTree = "<group>"; };
4614A1FD0B23A8D600446E1C /* copyCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = copyCursor.png; sourceTree = "<group>"; };
464EA2710B8A350B00A8E6E3 /* crossHairCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = crossHairCursor.png; sourceTree = "<group>"; };
464EA2720B8A350B00A8E6E3 /* notAllowedCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = notAllowedCursor.png; sourceTree = "<group>"; };
@@ -8007,6 +8077,10 @@
7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorClient.cpp; 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>"; };
+ 7A563E5412DE32B000F4536D /* InjectedScriptSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedScriptSource.h; sourceTree = "<group>"; };
+ 7A563F9512DF5C9100F4536D /* InjectedScriptSource.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = InjectedScriptSource.js; sourceTree = "<group>"; };
+ 7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorSettings.cpp; sourceTree = "<group>"; };
+ 7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorSettings.h; sourceTree = "<group>"; };
7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageGroupLoadDeferrer.cpp; sourceTree = "<group>"; };
7A674BDA0F9EBF4E006CF099 /* PageGroupLoadDeferrer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageGroupLoadDeferrer.h; sourceTree = "<group>"; };
7A74ECB8101839A500BF939E /* InspectorDOMStorageAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDOMStorageAgent.cpp; sourceTree = "<group>"; };
@@ -8061,8 +8135,6 @@
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>"; };
84224182107E77F400766A87 /* JSSVGFEMorphologyElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSVGFEMorphologyElement.h; sourceTree = "<group>"; };
84224189107E786F00766A87 /* DOMSVGFEMorphologyElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGFEMorphologyElement.h; sourceTree = "<group>"; };
@@ -8129,8 +8201,6 @@
848522871190173C006EDC7F /* SVGVKernElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGVKernElement.cpp; sourceTree = "<group>"; };
848522881190173C006EDC7F /* SVGVKernElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGVKernElement.h; sourceTree = "<group>"; };
848522891190173C006EDC7F /* SVGVKernElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SVGVKernElement.idl; sourceTree = "<group>"; };
- 8499A512115FB33000F566E3 /* RenderSVGResourceMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceMarker.cpp; sourceTree = "<group>"; };
- 8499A513115FB33000F566E3 /* RenderSVGResourceMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceMarker.h; sourceTree = "<group>"; };
849F77750EFEC6200090849D /* StrokeStyleApplier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StrokeStyleApplier.h; sourceTree = "<group>"; };
84A81F3B0FC7DFF000955300 /* SourceAlpha.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SourceAlpha.cpp; path = filters/SourceAlpha.cpp; sourceTree = "<group>"; };
84A81F3C0FC7DFF000955300 /* SourceAlpha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SourceAlpha.h; path = filters/SourceAlpha.h; sourceTree = "<group>"; };
@@ -8141,8 +8211,6 @@
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>"; };
84C5B2F81216DC810088B53A /* SVGPathTraversalStateBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathTraversalStateBuilder.cpp; sourceTree = "<group>"; };
84C5B2F91216DC810088B53A /* SVGPathTraversalStateBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathTraversalStateBuilder.h; sourceTree = "<group>"; };
84C6784A1214814700A92902 /* SVGPathBlender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathBlender.cpp; sourceTree = "<group>"; };
@@ -8391,12 +8459,6 @@
8538F0840AD72CB6006A81D1 /* DOMRanges.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMRanges.h; sourceTree = "<group>"; };
853BF4D90ABB6B55008647BB /* DOMNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMNode.h; sourceTree = "<group>"; };
853BF4DA0ABB6B55008647BB /* DOMNode.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMNode.mm; sourceTree = "<group>"; };
- 853CA9CA0AEEC5E9002372DC /* RenderSVGContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGContainer.cpp; sourceTree = "<group>"; };
- 853CA9CB0AEEC5E9002372DC /* RenderSVGContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGContainer.h; sourceTree = "<group>"; };
- 853CA9CC0AEEC5E9002372DC /* RenderSVGImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGImage.cpp; sourceTree = "<group>"; };
- 853CA9CD0AEEC5E9002372DC /* RenderSVGImage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGImage.h; sourceTree = "<group>"; };
- 853CA9EA0AEEC63C002372DC /* RenderForeignObject.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderForeignObject.cpp; sourceTree = "<group>"; };
- 853CA9EB0AEEC63C002372DC /* RenderForeignObject.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderForeignObject.h; sourceTree = "<group>"; };
854074F90AD6C22E00620C57 /* DOMSVGNumber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGNumber.h; sourceTree = "<group>"; };
854074FA0AD6C22E00620C57 /* DOMSVGPoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGPoint.h; sourceTree = "<group>"; };
854074FB0AD6C22E00620C57 /* DOMSVGRect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGRect.h; sourceTree = "<group>"; };
@@ -9471,8 +9533,6 @@
A718760D0B2A120100A16ECE /* DragActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragActions.h; sourceTree = "<group>"; };
A718788F0B2D04AC00A16ECE /* DragControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DragControllerMac.mm; sourceTree = "<group>"; };
A71A70C911AFB02000989D6D /* HTMLMeterElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLMeterElement.idl; sourceTree = "<group>"; };
- A7352C170B1BB89D00A986D0 /* RenderSVGBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGBlock.cpp; sourceTree = "<group>"; };
- A7352C180B1BB89D00A986D0 /* RenderSVGBlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGBlock.h; sourceTree = "<group>"; };
A75E497410752ACB00C9B896 /* SerializedScriptValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SerializedScriptValue.h; sourceTree = "<group>"; };
A75E497510752ACB00C9B896 /* SerializedScriptValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SerializedScriptValue.cpp; sourceTree = "<group>"; };
A75E8B800E1DE2D6007F2481 /* FEBlend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FEBlend.cpp; path = filters/FEBlend.cpp; sourceTree = "<group>"; };
@@ -9518,10 +9578,6 @@
A7DBF8DC1276919C006B6008 /* TextCheckingHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCheckingHelper.h; sourceTree = "<group>"; };
A7F338A111C0EFCA00A320A7 /* ShadowElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShadowElement.cpp; sourceTree = "<group>"; };
A7F338A211C0EFCA00A320A7 /* ShadowElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadowElement.h; sourceTree = "<group>"; };
- A809F1450B73793A002E4D7F /* RenderSVGGradientStop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGGradientStop.h; sourceTree = "<group>"; };
- A809F1460B73793A002E4D7F /* RenderSVGGradientStop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGGradientStop.cpp; sourceTree = "<group>"; };
- A809F1A80B737FB6002E4D7F /* RenderSVGHiddenContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGHiddenContainer.h; sourceTree = "<group>"; };
- A809F1A90B737FB6002E4D7F /* RenderSVGHiddenContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGHiddenContainer.cpp; sourceTree = "<group>"; };
A80A38FD0E50CC8200A25EBC /* PatternCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PatternCG.cpp; sourceTree = "<group>"; };
A80D67070E9E9DEB00E420F0 /* GraphicsContextPlatformPrivateCG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GraphicsContextPlatformPrivateCG.h; sourceTree = "<group>"; };
A80E6CBA0A1989CA007FB8C5 /* CSSValueList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSValueList.cpp; sourceTree = "<group>"; };
@@ -9770,8 +9826,6 @@
A89943270B42338700D7C802 /* BitmapImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitmapImage.cpp; sourceTree = "<group>"; };
A89CCC500F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReplaceNodeWithSpanCommand.cpp; sourceTree = "<group>"; };
A89CCC510F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplaceNodeWithSpanCommand.h; 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>"; };
A8BC04911214F69600B5F122 /* HTMLEntityTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLEntityTable.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>"; };
@@ -10053,10 +10107,6 @@
A8EA80040A19516E00A8EF5F /* StyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StyleSheet.h; sourceTree = "<group>"; };
A8EA80050A19516E00A8EF5F /* StyleSheet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSheet.cpp; sourceTree = "<group>"; };
A8EA80060A19516E00A8EF5F /* MediaList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MediaList.h; sourceTree = "<group>"; };
- A8F4FB930C169E7B002AFED5 /* SVGRenderSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGRenderSupport.h; sourceTree = "<group>"; };
- A8F4FB950C169E85002AFED5 /* SVGRenderSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGRenderSupport.cpp; sourceTree = "<group>"; };
- A8F5C0B60F9285AC0098E06B /* RenderSVGModelObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGModelObject.h; sourceTree = "<group>"; };
- A8F5C0B70F9285AC0098E06B /* RenderSVGModelObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGModelObject.cpp; sourceTree = "<group>"; };
A8FA6E5B0E4CFDED00D5CF49 /* Pattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pattern.h; sourceTree = "<group>"; };
A8FA6E5C0E4CFDED00D5CF49 /* Pattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Pattern.cpp; sourceTree = "<group>"; };
A9C6E4E10D745E05006442E9 /* DOMMimeType.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DOMMimeType.cpp; sourceTree = "<group>"; };
@@ -10092,8 +10142,6 @@
A9D248050D757E7D00FDF959 /* JSDOMMimeTypeArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSDOMMimeTypeArray.h; sourceTree = "<group>"; };
AA0978ED0ABAA6E100874480 /* CSSCursorImageValue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CSSCursorImageValue.cpp; sourceTree = "<group>"; };
AA0978EE0ABAA6E100874480 /* CSSCursorImageValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSCursorImageValue.h; sourceTree = "<group>"; };
- AA31B5B20C1DFD1000AE7083 /* RenderSVGRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGRoot.cpp; sourceTree = "<group>"; };
- AA31B5B30C1DFD1000AE7083 /* RenderSVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGRoot.h; sourceTree = "<group>"; };
AA4C3A740B2B1679002334A2 /* StyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = StyleElement.cpp; sourceTree = "<group>"; };
AA4C3A750B2B1679002334A2 /* StyleElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = StyleElement.h; sourceTree = "<group>"; };
AB014DE10E689A4300E10445 /* TextControlInnerElements.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextControlInnerElements.cpp; sourceTree = "<group>"; };
@@ -10563,8 +10611,6 @@
B27535510B053814002CE64F /* IntSizeMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = IntSizeMac.mm; sourceTree = "<group>"; };
B27535520B053814002CE64F /* Path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Path.cpp; sourceTree = "<group>"; };
B27535530B053814002CE64F /* Path.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Path.h; sourceTree = "<group>"; };
- B27535540B053814002CE64F /* Pen.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Pen.cpp; sourceTree = "<group>"; };
- B27535550B053814002CE64F /* Pen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pen.h; sourceTree = "<group>"; };
B275358D0B053A66002CE64F /* IconMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = IconMac.mm; sourceTree = "<group>"; };
B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = GraphicsContextMac.mm; sourceTree = "<group>"; };
B27B281F0CEF0C0700D39D54 /* JSSVGFontElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGFontElement.cpp; sourceTree = "<group>"; };
@@ -10684,15 +10730,11 @@
B2CB925E0B5BDA02009BAA78 /* DOMSVGElementInstance.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGElementInstance.mm; sourceTree = "<group>"; };
B2CB925F0B5BDA02009BAA78 /* DOMSVGElementInstanceList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGElementInstanceList.h; sourceTree = "<group>"; };
B2CB92600B5BDA02009BAA78 /* DOMSVGElementInstanceList.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGElementInstanceList.mm; sourceTree = "<group>"; };
- B2CCEC450C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGViewportContainer.cpp; sourceTree = "<group>"; };
- B2CCEC460C6CA9F1006A5424 /* RenderSVGViewportContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGViewportContainer.h; sourceTree = "<group>"; };
B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FloatPoint3D.cpp; sourceTree = "<group>"; };
B2E27C9E0B0F2B0900F17C7B /* FloatPoint3D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FloatPoint3D.h; sourceTree = "<group>"; };
B2E4EC940D00C22B00432643 /* SVGZoomEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGZoomEvent.cpp; sourceTree = "<group>"; };
B2E4EC950D00C22B00432643 /* SVGZoomEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGZoomEvent.h; sourceTree = "<group>"; };
B2E4EC960D00C22B00432643 /* SVGZoomEvent.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGZoomEvent.idl; sourceTree = "<group>"; };
- B2EBDC9A0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGRenderTreeAsText.cpp; sourceTree = "<group>"; };
- B2EBDC9B0AF77E3400AE4A68 /* SVGRenderTreeAsText.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGRenderTreeAsText.h; sourceTree = "<group>"; };
B2ED97700B1F55CE00257D0F /* GraphicsContextCG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContextCG.cpp; sourceTree = "<group>"; };
B2F34FE50E82F81400F627CD /* DNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNS.h; sourceTree = "<group>"; };
B2F34FE80E82F82700F627CD /* DNSCFNet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DNSCFNet.cpp; sourceTree = "<group>"; };
@@ -11896,6 +11938,8 @@
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; };
+ F3335BF612E07DC300D33011 /* InspectorConsoleAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorConsoleAgent.cpp; sourceTree = "<group>"; };
+ F3335BF712E07DC300D33011 /* InspectorConsoleAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorConsoleAgent.h; sourceTree = "<group>"; };
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>"; };
@@ -11911,6 +11955,8 @@
F39BE95A12673BF400E0A674 /* ScriptArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptArguments.h; sourceTree = "<group>"; };
F3D461461161D53200CA0D09 /* JSWorkerContextErrorHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWorkerContextErrorHandler.cpp; sourceTree = "<group>"; };
F3D461471161D53200CA0D09 /* JSWorkerContextErrorHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWorkerContextErrorHandler.h; sourceTree = "<group>"; };
+ F3D4C47612E07663003DA150 /* InspectorBrowserDebuggerAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorBrowserDebuggerAgent.cpp; sourceTree = "<group>"; };
+ F3D4C47712E07663003DA150 /* InspectorBrowserDebuggerAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorBrowserDebuggerAgent.h; sourceTree = "<group>"; };
F4EAF4AC10C742B1009100D3 /* OpenTypeSanitizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OpenTypeSanitizer.cpp; path = opentype/OpenTypeSanitizer.cpp; sourceTree = "<group>"; };
F4EAF4AD10C742B1009100D3 /* OpenTypeSanitizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OpenTypeSanitizer.h; path = opentype/OpenTypeSanitizer.h; sourceTree = "<group>"; };
F523D23B02DE4396018635CA /* HTMLDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLDocument.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
@@ -12011,22 +12057,10 @@
F98FFF4311A2676200F548E8 /* CSSOMUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSOMUtils.h; sourceTree = "<group>"; };
F9F0ED770DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XMLHttpRequestProgressEvent.h; sourceTree = "<group>"; };
F9F0ED780DB50CA200D16DB9 /* XMLHttpRequestProgressEvent.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = XMLHttpRequestProgressEvent.idl; sourceTree = "<group>"; };
- FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLMath.cpp; sourceTree = "<group>"; };
- FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLMath.h; sourceTree = "<group>"; };
- FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLRow.cpp; sourceTree = "<group>"; };
- FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLRow.h; sourceTree = "<group>"; };
- FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLOperator.cpp; sourceTree = "<group>"; };
- FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLOperator.h; sourceTree = "<group>"; };
FA654A631108ABB7002615E0 /* mathml.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = mathml.css; sourceTree = "<group>"; };
FA654A671108ABE2002615E0 /* mathattrs.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mathattrs.in; sourceTree = "<group>"; };
FA654A691108ABED002615E0 /* MathMLTextElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLTextElement.cpp; sourceTree = "<group>"; };
FA654A6A1108ABED002615E0 /* MathMLTextElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLTextElement.h; sourceTree = "<group>"; };
- FA654A6D1108ABFF002615E0 /* RenderMathMLBlock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLBlock.cpp; sourceTree = "<group>"; };
- FA654A6E1108ABFF002615E0 /* RenderMathMLBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLBlock.h; sourceTree = "<group>"; };
- FA7EFB031120D25400CF79C7 /* RenderMathMLUnderOver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLUnderOver.cpp; sourceTree = "<group>"; };
- FA7EFB041120D25400CF79C7 /* RenderMathMLUnderOver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLUnderOver.h; sourceTree = "<group>"; };
- FAA1056E114C2DF700940A01 /* RenderMathMLFraction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLFraction.cpp; sourceTree = "<group>"; };
- FAA1056F114C2DF700940A01 /* RenderMathMLFraction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLFraction.h; sourceTree = "<group>"; };
FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLElement.cpp; sourceTree = "<group>"; };
FABE72EE1059C1EB00D999DD /* MathMLElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLElement.h; sourceTree = "<group>"; };
FABE72EF1059C1EB00D999DD /* MathMLInlineContainerElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLInlineContainerElement.cpp; sourceTree = "<group>"; };
@@ -12036,8 +12070,6 @@
FABE72F31059C1EB00D999DD /* mathtags.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mathtags.in; sourceTree = "<group>"; };
FABE72FB1059C21100D999DD /* MathMLElementFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLElementFactory.cpp; sourceTree = "<group>"; };
FABE72FC1059C21100D999DD /* MathMLNames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MathMLNames.cpp; sourceTree = "<group>"; };
- FAC12CC21120DA6900DACC36 /* RenderMathMLSubSup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLSubSup.cpp; sourceTree = "<group>"; };
- FAC12CC31120DA6900DACC36 /* RenderMathMLSubSup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLSubSup.h; sourceTree = "<group>"; };
FBC220DE1237FBEB00BCF788 /* GraphicsContext3DOpenGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext3DOpenGL.cpp; sourceTree = "<group>"; };
FD2DBF0E12B048A300ED98C6 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = "<absolute>"; };
FD2DBF0F12B048A300ED98C6 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
@@ -12392,24 +12424,87 @@
088C2F7412390080003D65CE /* svg */ = {
isa = PBXGroup;
children = (
+ 4367088112D9CA4A00044234 /* RenderSVGBlock.cpp */,
+ 4367088212D9CA4A00044234 /* RenderSVGBlock.h */,
+ 4367088312D9CA4A00044234 /* RenderSVGContainer.cpp */,
+ 4367088412D9CA4A00044234 /* RenderSVGContainer.h */,
+ 43C092B912D9E4EE00A989C3 /* RenderSVGForeignObject.cpp */,
+ 43C092BA12D9E4EE00A989C3 /* RenderSVGForeignObject.h */,
+ 4367088512D9CA4A00044234 /* RenderSVGGradientStop.cpp */,
+ 4367088612D9CA4A00044234 /* RenderSVGGradientStop.h */,
+ 4367088712D9CA4A00044234 /* RenderSVGHiddenContainer.cpp */,
+ 4367088812D9CA4A00044234 /* RenderSVGHiddenContainer.h */,
+ 4367088912D9CA4A00044234 /* RenderSVGImage.cpp */,
+ 4367088A12D9CA4A00044234 /* RenderSVGImage.h */,
0854B0021255E4E600B9CDD0 /* RenderSVGInline.cpp */,
0854B0031255E4E600B9CDD0 /* RenderSVGInline.h */,
0854B0041255E4E600B9CDD0 /* RenderSVGInlineText.cpp */,
0854B0051255E4E600B9CDD0 /* RenderSVGInlineText.h */,
+ 4367088B12D9CA4A00044234 /* RenderSVGModelObject.cpp */,
+ 4367088C12D9CA4A00044234 /* RenderSVGModelObject.h */,
ADDF1AD41257CD9A0003A759 /* RenderSVGPath.cpp */,
ADDF1AD51257CD9A0003A759 /* RenderSVGPath.h */,
+ 4367088D12D9CA4A00044234 /* RenderSVGResource.cpp */,
+ 4367088E12D9CA4A00044234 /* RenderSVGResource.h */,
+ 4367088F12D9CA4A00044234 /* RenderSVGResourceClipper.cpp */,
+ 4367089012D9CA4A00044234 /* RenderSVGResourceClipper.h */,
+ 4367089112D9CA4A00044234 /* RenderSVGResourceContainer.cpp */,
+ 4367089212D9CA4A00044234 /* RenderSVGResourceContainer.h */,
+ 4367089312D9CA4A00044234 /* RenderSVGResourceFilter.cpp */,
+ 4367089412D9CA4A00044234 /* RenderSVGResourceFilter.h */,
+ 4367089512D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.cpp */,
+ 4367089612D9CA4A00044234 /* RenderSVGResourceFilterPrimitive.h */,
+ 4367089712D9CA4A00044234 /* RenderSVGResourceGradient.cpp */,
+ 4367089812D9CA4A00044234 /* RenderSVGResourceGradient.h */,
+ 4367089912D9CA4B00044234 /* RenderSVGResourceLinearGradient.cpp */,
+ 4367089A12D9CA4B00044234 /* RenderSVGResourceLinearGradient.h */,
+ 4367089B12D9CA4B00044234 /* RenderSVGResourceMarker.cpp */,
+ 4367089C12D9CA4B00044234 /* RenderSVGResourceMarker.h */,
+ 4367089D12D9CA4B00044234 /* RenderSVGResourceMasker.cpp */,
+ 4367089E12D9CA4B00044234 /* RenderSVGResourceMasker.h */,
+ 4367089F12D9CA4B00044234 /* RenderSVGResourcePattern.cpp */,
+ 436708A012D9CA4B00044234 /* RenderSVGResourcePattern.h */,
+ 436708A112D9CA4B00044234 /* RenderSVGResourceRadialGradient.cpp */,
+ 436708A212D9CA4B00044234 /* RenderSVGResourceRadialGradient.h */,
+ 436708A312D9CA4B00044234 /* RenderSVGResourceSolidColor.cpp */,
+ 436708A412D9CA4B00044234 /* RenderSVGResourceSolidColor.h */,
+ 436708A512D9CA4B00044234 /* RenderSVGRoot.cpp */,
+ 436708A612D9CA4B00044234 /* RenderSVGRoot.h */,
+ 436708A712D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.cpp */,
+ 436708A812D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.h */,
0854B0061255E4E600B9CDD0 /* RenderSVGText.cpp */,
0854B0071255E4E600B9CDD0 /* RenderSVGText.h */,
0854B0081255E4E600B9CDD0 /* RenderSVGTextPath.cpp */,
0854B0091255E4E600B9CDD0 /* RenderSVGTextPath.h */,
+ 436708A912D9CA4B00044234 /* RenderSVGTransformableContainer.cpp */,
+ 436708AA12D9CA4B00044234 /* RenderSVGTransformableContainer.h */,
0854B00A1255E4E600B9CDD0 /* RenderSVGTSpan.cpp */,
0854B00B1255E4E600B9CDD0 /* RenderSVGTSpan.h */,
+ 436708AB12D9CA4B00044234 /* RenderSVGViewportContainer.cpp */,
+ 436708AC12D9CA4B00044234 /* RenderSVGViewportContainer.h */,
+ 436708AD12D9CA4B00044234 /* SVGImageBufferTools.cpp */,
+ 436708AE12D9CA4B00044234 /* SVGImageBufferTools.h */,
0854B00C1255E4E600B9CDD0 /* SVGInlineFlowBox.cpp */,
0854B00D1255E4E600B9CDD0 /* SVGInlineFlowBox.h */,
0854B00E1255E4E600B9CDD0 /* SVGInlineTextBox.cpp */,
0854B00F1255E4E600B9CDD0 /* SVGInlineTextBox.h */,
+ 436708AF12D9CA4B00044234 /* SVGMarkerData.h */,
+ 436708B012D9CA4B00044234 /* SVGMarkerLayoutInfo.cpp */,
+ 436708B112D9CA4B00044234 /* SVGMarkerLayoutInfo.h */,
+ 436708B212D9CA4B00044234 /* SVGRenderSupport.cpp */,
+ 436708B312D9CA4B00044234 /* SVGRenderSupport.h */,
+ 436708B412D9CA4B00044234 /* SVGRenderTreeAsText.cpp */,
+ 436708B512D9CA4B00044234 /* SVGRenderTreeAsText.h */,
+ 436708B612D9CA4B00044234 /* SVGResources.cpp */,
+ 436708B712D9CA4B00044234 /* SVGResources.h */,
+ 436708B812D9CA4B00044234 /* SVGResourcesCache.cpp */,
+ 436708B912D9CA4B00044234 /* SVGResourcesCache.h */,
+ 436708BA12D9CA4B00044234 /* SVGResourcesCycleSolver.cpp */,
+ 436708BB12D9CA4B00044234 /* SVGResourcesCycleSolver.h */,
0854B0101255E4E600B9CDD0 /* SVGRootInlineBox.cpp */,
0854B0111255E4E600B9CDD0 /* SVGRootInlineBox.h */,
+ 436708BC12D9CA4B00044234 /* SVGShadowTreeElements.cpp */,
+ 436708BD12D9CA4B00044234 /* SVGShadowTreeElements.h */,
08F0BFBD1255C53C00075185 /* SVGTextChunk.cpp */,
08F0BFBE1255C53C00075185 /* SVGTextChunk.h */,
081668D1125603BF006F25DE /* SVGTextChunkBuilder.cpp */,
@@ -12810,6 +12905,7 @@
1C5FAECA0DCFD8C900D58F78 /* Inspector */ = {
isa = PBXGroup;
children = (
+ 7A563E5412DE32B000F4536D /* InjectedScriptSource.h */,
4F707A9711EF679400ACDA69 /* InspectorBackendDispatcher.cpp */,
4F707A9811EF679400ACDA69 /* InspectorBackendDispatcher.h */,
4F4F5FFA11CBD2D200A186BF /* InspectorFrontend.cpp */,
@@ -12839,10 +12935,17 @@
7A0E76F610BF08ED00A0276E /* InjectedScriptHost.cpp */,
7A0E76F710BF08ED00A0276E /* InjectedScriptHost.h */,
7A0E76F810BF08ED00A0276E /* InjectedScriptHost.idl */,
+ 7A563F9512DF5C9100F4536D /* InjectedScriptSource.js */,
+ 7A5640BD12DF9E5E00F4536D /* InspectorSettings.cpp */,
+ 7A5640BE12DF9E5E00F4536D /* InspectorSettings.h */,
B885E8D211E06DD2009FFBF4 /* InspectorApplicationCacheAgent.cpp */,
B885E8D311E06DD2009FFBF4 /* InspectorApplicationCacheAgent.h */,
+ F3D4C47612E07663003DA150 /* InspectorBrowserDebuggerAgent.cpp */,
+ F3D4C47712E07663003DA150 /* InspectorBrowserDebuggerAgent.h */,
7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */,
1C81B9580E97330800266E07 /* InspectorClient.h */,
+ F3335BF612E07DC300D33011 /* InspectorConsoleAgent.cpp */,
+ F3335BF712E07DC300D33011 /* InspectorConsoleAgent.h */,
1C81B9570E97330800266E07 /* InspectorController.cpp */,
1C81B9560E97330800266E07 /* InspectorController.h */,
82AB1741124B99EC00C5069D /* InspectorCSSAgent.cpp */,
@@ -12949,10 +13052,10 @@
A409C983116D0DDD007197BD /* AccessibilityProgressIndicator.h */,
29A812080FBB9C1D00510293 /* AccessibilityRenderObject.cpp */,
29A8121B0FBB9C1D00510293 /* AccessibilityRenderObject.h */,
- 29489FC612C00F0300D83F0F /* AccessibilityScrollView.cpp */,
- 29489FC512C00F0300D83F0F /* AccessibilityScrollView.h */,
93C4F6E81108F9A50099D0DB /* AccessibilityScrollbar.cpp */,
93C4F6E91108F9A50099D0DB /* AccessibilityScrollbar.h */,
+ 29489FC612C00F0300D83F0F /* AccessibilityScrollView.cpp */,
+ 29489FC512C00F0300D83F0F /* AccessibilityScrollView.h */,
0709FC4B1025DED80059CDBA /* AccessibilitySlider.cpp */,
0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */,
29A812090FBB9C1D00510293 /* AccessibilityTable.cpp */,
@@ -13083,6 +13186,33 @@
path = shadow;
sourceTree = "<group>";
};
+ 439046C212DA25CE00AF80A2 /* mathml */ = {
+ isa = PBXGroup;
+ children = (
+ 439046C312DA25E800AF80A2 /* RenderMathMLBlock.cpp */,
+ 439046C412DA25E800AF80A2 /* RenderMathMLBlock.h */,
+ 439046C512DA25E800AF80A2 /* RenderMathMLFenced.cpp */,
+ 439046C612DA25E800AF80A2 /* RenderMathMLFenced.h */,
+ 439046C712DA25E800AF80A2 /* RenderMathMLFraction.cpp */,
+ 439046C812DA25E800AF80A2 /* RenderMathMLFraction.h */,
+ 439046C912DA25E800AF80A2 /* RenderMathMLMath.cpp */,
+ 439046CA12DA25E800AF80A2 /* RenderMathMLMath.h */,
+ 439046CB12DA25E800AF80A2 /* RenderMathMLOperator.cpp */,
+ 439046CC12DA25E800AF80A2 /* RenderMathMLOperator.h */,
+ 439046CD12DA25E800AF80A2 /* RenderMathMLRoot.cpp */,
+ 439046CE12DA25E800AF80A2 /* RenderMathMLRoot.h */,
+ 439046CF12DA25E800AF80A2 /* RenderMathMLRow.cpp */,
+ 439046D012DA25E800AF80A2 /* RenderMathMLRow.h */,
+ 439046D112DA25E800AF80A2 /* RenderMathMLSquareRoot.cpp */,
+ 439046D212DA25E800AF80A2 /* RenderMathMLSquareRoot.h */,
+ 439046D312DA25E800AF80A2 /* RenderMathMLSubSup.cpp */,
+ 439046D412DA25E800AF80A2 /* RenderMathMLSubSup.h */,
+ 439046D512DA25E800AF80A2 /* RenderMathMLUnderOver.cpp */,
+ 439046D612DA25E800AF80A2 /* RenderMathMLUnderOver.h */,
+ );
+ name = mathml;
+ sourceTree = "<group>";
+ };
449195900FBE175B00D9F824 /* Exports */ = {
isa = PBXGroup;
children = (
@@ -13095,9 +13225,6 @@
49484FAE102CF01E00187DD3 /* canvas */ = {
isa = PBXGroup;
children = (
- 93F1D5B712D532C400832BEC /* WebKitLoseContext.cpp */,
- 93F1D5B812D532C400832BEC /* WebKitLoseContext.h */,
- 93F1D5B912D532C400832BEC /* WebKitLoseContext.idl */,
49EECDCA10503C2300099FAB /* ArrayBuffer.cpp */,
49EECDCB10503C2300099FAB /* ArrayBuffer.h */,
49EECDCC10503C2300099FAB /* ArrayBuffer.idl */,
@@ -13191,6 +13318,9 @@
0C3F1F5710C8871200D72CE1 /* WebGLUniformLocation.cpp */,
0C3F1F5810C8871200D72CE1 /* WebGLUniformLocation.h */,
0C3F1F5910C8871200D72CE1 /* WebGLUniformLocation.idl */,
+ 93F1D5B712D532C400832BEC /* WebKitLoseContext.cpp */,
+ 93F1D5B812D532C400832BEC /* WebKitLoseContext.h */,
+ 93F1D5B912D532C400832BEC /* WebKitLoseContext.idl */,
);
name = canvas;
sourceTree = "<group>";
@@ -13589,7 +13719,9 @@
8574D1F10ADE6122004CBA11 /* JSSVGElementWrapperFactory.cpp */,
8574D1F20ADE6122004CBA11 /* JSSVGElementWrapperFactory.h */,
FABE72FB1059C21100D999DD /* MathMLElementFactory.cpp */,
+ 44A28AAB12DFB8AC00AE923B /* MathMLElementFactory.h */,
FABE72FC1059C21100D999DD /* MathMLNames.cpp */,
+ 44A28AAE12DFB8BF00AE923B /* MathMLNames.h */,
656581E609D1508D000E61D7 /* SVGElementFactory.cpp */,
656581E709D1508D000E61D7 /* SVGElementFactory.h */,
656581E809D1508D000E61D7 /* SVGNames.cpp */,
@@ -14022,6 +14154,8 @@
85ACABAF0A9CAF8000671E90 /* DOMDocument.mm */,
85089CD30A98C42800A275AA /* DOMDocumentFragment.h */,
85089CD40A98C42800A275AA /* DOMDocumentFragment.mm */,
+ 44311CD412E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h */,
+ 44311CD512E4E22D000A8D19 /* DOMDocumentPrivate.h */,
85CA975A0A962E5400690CCF /* DOMDocumentType.h */,
85CA975B0A962E5400690CCF /* DOMDocumentType.mm */,
8518DCE70A9CC80C0091B7A6 /* DOMDOMImplementation.h */,
@@ -15300,6 +15434,9 @@
76FC2B0812370DA0006A991A /* DOMTokenList.cpp */,
76FC2B0912370DA0006A991A /* DOMTokenList.h */,
76FC2B0A12370DA0006A991A /* DOMTokenList.idl */,
+ 2E37DFD712DBAFB800A6B233 /* DOMURL.cpp */,
+ 2E37DFD812DBAFB800A6B233 /* DOMURL.h */,
+ 2E37DFD912DBAFB800A6B233 /* DOMURL.idl */,
F55B3D871251F12D003EF269 /* EmailInputType.cpp */,
F55B3D881251F12D003EF269 /* EmailInputType.h */,
F55B3D891251F12D003EF269 /* FileInputType.cpp */,
@@ -15841,8 +15978,6 @@
A83B79080CCAFF2B000B0825 /* HTML */ = {
isa = PBXGroup;
children = (
- 93F1D5BE12D5335600832BEC /* JSWebKitLoseContext.cpp */,
- 93F1D5BF12D5335600832BEC /* JSWebKitLoseContext.h */,
49EECEF2105070C400099FAB /* JSArrayBuffer.cpp */,
49EECEF3105070C400099FAB /* JSArrayBuffer.h */,
49EECF19105072F300099FAB /* JSArrayBufferView.cpp */,
@@ -15867,6 +16002,8 @@
4ACBC0C912713D0A0094F9B2 /* JSDOMSettableTokenList.h */,
7694563A1214D97C0007CBAE /* JSDOMTokenList.cpp */,
7694563B1214D97C0007CBAE /* JSDOMTokenList.h */,
+ 2E37E00312DBC5A400A6B233 /* JSDOMURL.cpp */,
+ 2E37E00412DBC5A400A6B233 /* JSDOMURL.h */,
49EECEF4105070C400099FAB /* JSFloat32Array.cpp */,
49EECEF5105070C400099FAB /* JSFloat32Array.h */,
BC97E410109154FA0010D361 /* JSHTMLAllCollection.cpp */,
@@ -16061,6 +16198,8 @@
49C7B9921042D2D30009D447 /* JSWebGLTexture.h */,
0C45342510CDBBFA00869157 /* JSWebGLUniformLocation.cpp */,
0C45342610CDBBFA00869157 /* JSWebGLUniformLocation.h */,
+ 93F1D5BE12D5335600832BEC /* JSWebKitLoseContext.cpp */,
+ 93F1D5BF12D5335600832BEC /* JSWebKitLoseContext.h */,
);
name = HTML;
sourceTree = "<group>";
@@ -17321,8 +17460,6 @@
A88DD4860B4629A300C02990 /* PathTraversalState.h */,
A8FA6E5C0E4CFDED00D5CF49 /* Pattern.cpp */,
A8FA6E5B0E4CFDED00D5CF49 /* Pattern.h */,
- B27535540B053814002CE64F /* Pen.cpp */,
- B27535550B053814002CE64F /* Pen.h */,
371F4FFB0D25E7F300ECE0D5 /* SegmentedFontData.cpp */,
371F4FFA0D25E7F300ECE0D5 /* SegmentedFontData.h */,
B2C3DA530D006CD600EF6F26 /* SimpleFontData.cpp */,
@@ -18480,6 +18617,7 @@
F523D2F302DE443B018635CA /* rendering */ = {
isa = PBXGroup;
children = (
+ 439046C212DA25CE00AF80A2 /* mathml */,
BC8C8FAA0DDCD2F200B592F4 /* style */,
088C2F7412390080003D65CE /* svg */,
A8CFF04B0A154F09000A4234 /* AutoTableLayout.cpp */,
@@ -18546,8 +18684,6 @@
066C772F0AB603FD00238CC4 /* RenderFileUploadControl.h */,
BCEA482E097D93020094C9E4 /* RenderFlexibleBox.cpp */,
BCEA482F097D93020094C9E4 /* RenderFlexibleBox.h */,
- 853CA9EA0AEEC63C002372DC /* RenderForeignObject.cpp */,
- 853CA9EB0AEEC63C002372DC /* RenderForeignObject.h */,
A871DECC0A1530C700B12A68 /* RenderFrame.cpp */,
A871DECB0A1530C700B12A68 /* RenderFrame.h */,
0FD3080C117CF7E700A791F7 /* RenderFrameBase.cpp */,
@@ -18626,50 +18762,6 @@
AB247A6B0AFD6383003FA5FD /* RenderSlider.h */,
D302754B12A5FEAB004BD828 /* RenderSummary.cpp */,
D302754C12A5FEAB004BD828 /* RenderSummary.h */,
- A7352C170B1BB89D00A986D0 /* RenderSVGBlock.cpp */,
- A7352C180B1BB89D00A986D0 /* RenderSVGBlock.h */,
- 853CA9CA0AEEC5E9002372DC /* RenderSVGContainer.cpp */,
- 853CA9CB0AEEC5E9002372DC /* RenderSVGContainer.h */,
- A809F1460B73793A002E4D7F /* RenderSVGGradientStop.cpp */,
- A809F1450B73793A002E4D7F /* RenderSVGGradientStop.h */,
- A809F1A90B737FB6002E4D7F /* RenderSVGHiddenContainer.cpp */,
- A809F1A80B737FB6002E4D7F /* RenderSVGHiddenContainer.h */,
- 853CA9CC0AEEC5E9002372DC /* RenderSVGImage.cpp */,
- 853CA9CD0AEEC5E9002372DC /* RenderSVGImage.h */,
- A8F5C0B70F9285AC0098E06B /* RenderSVGModelObject.cpp */,
- A8F5C0B60F9285AC0098E06B /* RenderSVGModelObject.h */,
- 08563BCF117865F50012B578 /* RenderSVGResource.cpp */,
- 083192A7112B43050083C3B9 /* RenderSVGResource.h */,
- 84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */,
- 84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */,
- 086A400511F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp */,
- 08082372117987C100241DE8 /* RenderSVGResourceContainer.h */,
- 841FDC241178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp */,
- 841FDC251178C9BE00F8AC9B /* RenderSVGResourceFilter.h */,
- 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */,
- 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */,
- 08C34AF11179C056002D7456 /* RenderSVGResourceGradient.cpp */,
- 08C34AF21179C057002D7456 /* RenderSVGResourceGradient.h */,
- 08C34AF31179C057002D7456 /* RenderSVGResourceLinearGradient.cpp */,
- 08C34AF41179C057002D7456 /* RenderSVGResourceLinearGradient.h */,
- 8499A512115FB33000F566E3 /* RenderSVGResourceMarker.cpp */,
- 8499A513115FB33000F566E3 /* RenderSVGResourceMarker.h */,
- 083192A8112B43050083C3B9 /* RenderSVGResourceMasker.cpp */,
- 083192A9112B43050083C3B9 /* RenderSVGResourceMasker.h */,
- 08563BB2117861770012B578 /* RenderSVGResourcePattern.cpp */,
- 08563BB3117861770012B578 /* RenderSVGResourcePattern.h */,
- 08C34AFB1179C072002D7456 /* RenderSVGResourceRadialGradient.cpp */,
- 08C34AFC1179C072002D7456 /* RenderSVGResourceRadialGradient.h */,
- 08C6A7A9117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp */,
- 08C6A7AA117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h */,
- AA31B5B20C1DFD1000AE7083 /* RenderSVGRoot.cpp */,
- AA31B5B30C1DFD1000AE7083 /* RenderSVGRoot.h */,
- 08DAB9B81103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp */,
- 08DAB9B91103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h */,
- A8A909AB0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp */,
- A8A909AA0CBCD6B50029B807 /* RenderSVGTransformableContainer.h */,
- B2CCEC450C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp */,
- B2CCEC460C6CA9F1006A5424 /* RenderSVGViewportContainer.h */,
A8DF4AE20980C42C0052981B /* RenderTable.cpp */,
A8DF4AE10980C42C0052981B /* RenderTable.h */,
A8DF4AE00980C42C0052981B /* RenderTableCell.cpp */,
@@ -18710,23 +18802,6 @@
5D925B660F64D4DD00B847F0 /* ScrollBehavior.h */,
A7F338A111C0EFCA00A320A7 /* ShadowElement.cpp */,
A7F338A211C0EFCA00A320A7 /* ShadowElement.h */,
- 08C46B671212F15D0011AF40 /* SVGImageBufferTools.cpp */,
- 08C46B681212F15D0011AF40 /* SVGImageBufferTools.h */,
- 08385FF510F0186000BFE07B /* SVGMarkerData.h */,
- 08735FB610E91232006D6FAD /* SVGMarkerLayoutInfo.cpp */,
- 08735FB710E91232006D6FAD /* SVGMarkerLayoutInfo.h */,
- A8F4FB950C169E85002AFED5 /* SVGRenderSupport.cpp */,
- A8F4FB930C169E7B002AFED5 /* SVGRenderSupport.h */,
- B2EBDC9A0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp */,
- B2EBDC9B0AF77E3400AE4A68 /* SVGRenderTreeAsText.h */,
- 084D0E3811F5816100081E1A /* SVGResources.cpp */,
- 084D0E3911F5816100081E1A /* SVGResources.h */,
- 084D0E3A11F5816100081E1A /* SVGResourcesCache.cpp */,
- 084D0E3B11F5816100081E1A /* SVGResourcesCache.h */,
- 085B05C011FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp */,
- 085B05C111FAE16C004D65F6 /* SVGResourcesCycleSolver.h */,
- 08DAB9C01103D9C1003E7ABA /* SVGShadowTreeElements.cpp */,
- 08DAB9C11103D9C1003E7ABA /* SVGShadowTreeElements.h */,
A8CFF04C0A154F09000A4234 /* TableLayout.h */,
AB014DE10E689A4300E10445 /* TextControlInnerElements.cpp */,
AB014DE20E689A4300E10445 /* TextControlInnerElements.h */,
@@ -19058,26 +19133,6 @@
FA654A691108ABED002615E0 /* MathMLTextElement.cpp */,
FA654A6A1108ABED002615E0 /* MathMLTextElement.h */,
FABE72F31059C1EB00D999DD /* mathtags.in */,
- FA654A6D1108ABFF002615E0 /* RenderMathMLBlock.cpp */,
- FA654A6E1108ABFF002615E0 /* RenderMathMLBlock.h */,
- 0F69B9C7120FE1D6000E1FC7 /* RenderMathMLFenced.cpp */,
- 0F69B9C8120FE1D6000E1FC7 /* RenderMathMLFenced.h */,
- FAA1056E114C2DF700940A01 /* RenderMathMLFraction.cpp */,
- FAA1056F114C2DF700940A01 /* RenderMathMLFraction.h */,
- FA0B1F8211125CEE007F9839 /* RenderMathMLMath.cpp */,
- FA0B1F8311125CEE007F9839 /* RenderMathMLMath.h */,
- FA5FAE4011126A5D00D3750F /* RenderMathMLOperator.cpp */,
- FA5FAE4111126A5D00D3750F /* RenderMathMLOperator.h */,
- 0FF2813211821CB6007B7CD6 /* RenderMathMLRoot.cpp */,
- 0FF2813311821CB6007B7CD6 /* RenderMathMLRoot.h */,
- FA0B1F8411125CEE007F9839 /* RenderMathMLRow.cpp */,
- FA0B1F8511125CEE007F9839 /* RenderMathMLRow.h */,
- 0FF2813411821CB6007B7CD6 /* RenderMathMLSquareRoot.cpp */,
- 0FF2813511821CB6007B7CD6 /* RenderMathMLSquareRoot.h */,
- FAC12CC21120DA6900DACC36 /* RenderMathMLSubSup.cpp */,
- FAC12CC31120DA6900DACC36 /* RenderMathMLSubSup.h */,
- FA7EFB031120D25400CF79C7 /* RenderMathMLUnderOver.cpp */,
- FA7EFB041120D25400CF79C7 /* RenderMathMLUnderOver.h */,
);
path = mathml;
sourceTree = "<group>";
@@ -19302,7 +19357,6 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
- CDEA7C841276230400B846DD /* RenderFullScreen.h in Headers */,
B5B5DC6A119BB3D5002A8790 /* AbstractDatabase.h in Headers */,
41E1B1D10FF5986900576B3B /* AbstractWorker.h in Headers */,
29A8122E0FBB9C1D00510293 /* AccessibilityARIAGridCell.h in Headers */,
@@ -19320,6 +19374,7 @@
A409C985116D0DDD007197BD /* AccessibilityProgressIndicator.h in Headers */,
29A812390FBB9C1D00510293 /* AccessibilityRenderObject.h in Headers */,
93C4F6EB1108F9A50099D0DB /* AccessibilityScrollbar.h in Headers */,
+ 29489FC712C00F0300D83F0F /* AccessibilityScrollView.h in Headers */,
0709FC4E1025DEE30059CDBA /* AccessibilitySlider.h in Headers */,
29A8122B0FBB9C1D00510293 /* AccessibilityTable.h in Headers */,
29A812320FBB9C1D00510293 /* AccessibilityTableCell.h in Headers */,
@@ -19391,6 +19446,8 @@
FD31602212B0267600C1A359 /* AudioSourceNode.h in Headers */,
FD31608912B026F700C1A359 /* AudioSourceProvider.h in Headers */,
FD31608B12B026F700C1A359 /* AudioUtilities.h in Headers */,
+ 7EE6846012D26E3800E79415 /* AuthenticationCF.h in Headers */,
+ 7EE6846112D26E3800E79415 /* AuthenticationChallenge.h in Headers */,
934F713A0D5A6F1000018D69 /* AuthenticationChallengeBase.h in Headers */,
E124748410AA161D00B79493 /* AuthenticationClient.h in Headers */,
514C764C0CE9234E007EF3CD /* AuthenticationMac.h in Headers */,
@@ -19513,6 +19570,7 @@
FD31602912B0267600C1A359 /* ConvolverNode.h in Headers */,
D8B6152F1032495100C8554A /* Cookie.h in Headers */,
9352088209BD45E900F2038D /* CookieJar.h in Headers */,
+ 7EE6846412D26E3800E79415 /* CookieStorageCFNet.h in Headers */,
FE6FD4880F676E5700092873 /* Coordinates.h in Headers */,
B8A6A6D5127B338D008673BA /* CorrectionPanelInfo.h in Headers */,
A80E6D040A1989CA007FB8C5 /* Counter.h in Headers */,
@@ -19698,7 +19756,10 @@
BC7DAAEF0FF9615D00CE0138 /* DOMDataGridDataSource.h in Headers */,
85ACABB00A9CAF8000671E90 /* DOMDocument.h in Headers */,
85089CDB0A98C42800A275AA /* DOMDocumentFragment.h in Headers */,
+ 44311F8212E4E66C000A8D19 /* DOMDocumentFragmentInternal.h in Headers */,
+ 44311CD612E4E22D000A8D19 /* DOMDocumentFragmentPrivate.h in Headers */,
85E711950AC5D5350053270F /* DOMDocumentInternal.h in Headers */,
+ 44311CD712E4E22D000A8D19 /* DOMDocumentPrivate.h in Headers */,
85CA975C0A962E5400690CCF /* DOMDocumentType.h in Headers */,
85E711960AC5D5350053270F /* DOMDocumentTypeInternal.h in Headers */,
8518DCE90A9CC80D0091B7A6 /* DOMDOMImplementation.h in Headers */,
@@ -20532,6 +20593,7 @@
514C76700CE923A1007EF3CD /* FormData.h in Headers */,
085B92BB0EFDE73D00E6123C /* FormDataBuilder.h in Headers */,
A8136D380973A8E700D74463 /* FormDataList.h in Headers */,
+ 7EE6846712D26E3800E79415 /* FormDataStreamCFNet.h in Headers */,
514C764E0CE9234E007EF3CD /* FormDataStreamMac.h in Headers */,
656D373A0ADBA5DE00A4554D /* FormState.h in Headers */,
41885B9311B6FDA6003383BB /* FormSubmission.h in Headers */,
@@ -20772,6 +20834,7 @@
B885E8D511E06DD2009FFBF4 /* InspectorApplicationCacheAgent.h in Headers */,
4F707A9A11EF679400ACDA69 /* InspectorBackendDispatcher.h in Headers */,
1C81B95C0E97330800266E07 /* InspectorClient.h in Headers */,
+ F3335BF912E07DC300D33011 /* InspectorConsoleAgent.h in Headers */,
1C81B95A0E97330800266E07 /* InspectorController.h in Headers */,
82AB1744124B99EC00C5069D /* InspectorCSSAgent.h in Headers */,
7AB0B1C11211A62200A76940 /* InspectorDatabaseAgent.h in Headers */,
@@ -21281,6 +21344,7 @@
316FE0740E6CCBEE00BF6088 /* JSWebKitCSSKeyframesRule.h in Headers */,
498391400F1E767500C23782 /* JSWebKitCSSMatrix.h in Headers */,
31611E5B0E1C4DE000F6A579 /* JSWebKitCSSTransformValue.h in Headers */,
+ 93F1D5C112D5335600832BEC /* JSWebKitLoseContext.h in Headers */,
494BD79E0F55C94C00747828 /* JSWebKitPoint.h in Headers */,
31C0FF400E4CEFAC007D6FE5 /* JSWebKitTransitionEvent.h in Headers */,
5DA5E0FD102B953800088CF9 /* JSWebSocket.h in Headers */,
@@ -21323,6 +21387,7 @@
89B5EAA211E8003D00F2367E /* LineEnding.h in Headers */,
A7AD2F880EC89D07008AB002 /* LinkHash.h in Headers */,
656D37320ADBA5DE00A4554D /* LoaderNSURLExtras.h in Headers */,
+ 7EE6846912D26E3800E79415 /* LoaderRunLoopCF.h in Headers */,
06E81ED70AB5D5E900C87837 /* LocalCurrentGraphicsContext.h in Headers */,
89878568122CA064003AABDA /* LocalFileSystem.h in Headers */,
BC5CFCA911F793320099ED09 /* LocalizationStrategy.h in Headers */,
@@ -21342,8 +21407,10 @@
93309DF8099E64920056E581 /* markup.h in Headers */,
9728C3141268E4390041E89B /* MarkupAccumulator.h in Headers */,
FABE72F51059C1EB00D999DD /* MathMLElement.h in Headers */,
+ 44A28AAC12DFB8AC00AE923B /* MathMLElementFactory.h in Headers */,
FABE72F71059C1EB00D999DD /* MathMLInlineContainerElement.h in Headers */,
FABE72F91059C1EB00D999DD /* MathMLMathElement.h in Headers */,
+ 44A28AAF12DFB8BF00AE923B /* MathMLNames.h in Headers */,
FA654A6C1108ABED002615E0 /* MathMLTextElement.h in Headers */,
49D5DC2C0F423A73008F20FD /* Matrix3DTransformOperation.h in Headers */,
49E911C70EF86D47009D0CAF /* MatrixTransformOperation.h in Headers */,
@@ -21449,7 +21516,6 @@
A8FA6E5D0E4CFDED00D5CF49 /* Pattern.h in Headers */,
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 */,
8AF4E55611DC5A36000ED3DE /* PerformanceNavigation.h in Headers */,
@@ -21459,6 +21525,7 @@
377C4CDF1014E9F600B9AE42 /* PlaceholderDocument.h in Headers */,
499B3EDD128DB50200E726C2 /* PlatformCAAnimation.h in Headers */,
499B3EC5128CCC4700E726C2 /* PlatformCALayer.h in Headers */,
+ 493E5E0912D6420500020081 /* PlatformCALayerClient.h in Headers */,
935C476809AC4D4300A6AAB4 /* PlatformKeyboardEvent.h in Headers */,
932871C00B20DEB70049035A /* PlatformMenuDescription.h in Headers */,
41BF70100FE86F61005E8DEC /* PlatformMessagePortChannel.h in Headers */,
@@ -21534,10 +21601,10 @@
A8EA73C40A1900E300A8EF5F /* RenderFieldset.h in Headers */,
066C77310AB603FD00238CC4 /* RenderFileUploadControl.h in Headers */,
BCEA486E097D93020094C9E4 /* RenderFlexibleBox.h in Headers */,
- 853CA9ED0AEEC63C002372DC /* RenderForeignObject.h in Headers */,
A871DED30A1530C700B12A68 /* RenderFrame.h in Headers */,
0FD3080F117CF7E700A791F7 /* RenderFrameBase.h in Headers */,
A871DED10A1530C700B12A68 /* RenderFrameSet.h in Headers */,
+ CDEA7C841276230400B846DD /* RenderFullScreen.h in Headers */,
BCEA486A097D93020094C9E4 /* RenderHTMLCanvas.h in Headers */,
0FD308D6117D168500A791F7 /* RenderIFrame.h in Headers */,
BCEA4876097D93020094C9E4 /* RenderImage.h in Headers */,
@@ -21554,16 +21621,16 @@
A8EA7A520A191A5200A8EF5F /* RenderListItem.h in Headers */,
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 */,
- 0FF2859111864053007B7CD6 /* RenderMathMLRoot.h in Headers */,
- FA0B1F8911125CEE007F9839 /* RenderMathMLRow.h in Headers */,
- 0FF2859311864055007B7CD6 /* RenderMathMLSquareRoot.h in Headers */,
- FAC12CC51120DA6900DACC36 /* RenderMathMLSubSup.h in Headers */,
- FA7EFB061120D25400CF79C7 /* RenderMathMLUnderOver.h in Headers */,
+ 439046D812DA25E800AF80A2 /* RenderMathMLBlock.h in Headers */,
+ 439046DA12DA25E800AF80A2 /* RenderMathMLFenced.h in Headers */,
+ 439046DC12DA25E800AF80A2 /* RenderMathMLFraction.h in Headers */,
+ 439046DE12DA25E800AF80A2 /* RenderMathMLMath.h in Headers */,
+ 439046E012DA25E800AF80A2 /* RenderMathMLOperator.h in Headers */,
+ 439046E212DA25E800AF80A2 /* RenderMathMLRoot.h in Headers */,
+ 439046E412DA25E800AF80A2 /* RenderMathMLRow.h in Headers */,
+ 439046E612DA25E800AF80A2 /* RenderMathMLSquareRoot.h in Headers */,
+ 439046E812DA25E800AF80A2 /* RenderMathMLSubSup.h in Headers */,
+ 439046EA12DA25E800AF80A2 /* RenderMathMLUnderOver.h in Headers */,
E4C279590CF9741900E97B98 /* RenderMedia.h in Headers */,
ABDDFE7A0A5C6E7000A3E11D /* RenderMenuList.h in Headers */,
A454424F119B3687009BE912 /* RenderMeter.h in Headers */,
@@ -21586,34 +21653,35 @@
BC8C8FAE0DDCD31B00B592F4 /* RenderStyle.h in Headers */,
BC5EB6680E81CB7100B25965 /* RenderStyleConstants.h in Headers */,
D302754E12A5FEAB004BD828 /* RenderSummary.h in Headers */,
- A7352C1A0B1BB89D00A986D0 /* RenderSVGBlock.h in Headers */,
- 853CA9D70AEEC5E9002372DC /* RenderSVGContainer.h in Headers */,
- A809F1470B73793A002E4D7F /* RenderSVGGradientStop.h in Headers */,
- A809F1AA0B737FB6002E4D7F /* RenderSVGHiddenContainer.h in Headers */,
- 853CA9D90AEEC5E9002372DC /* RenderSVGImage.h in Headers */,
+ 436708C112D9CA4B00044234 /* RenderSVGBlock.h in Headers */,
+ 436708C312D9CA4B00044234 /* RenderSVGContainer.h in Headers */,
+ 43C092BC12D9E4EE00A989C3 /* RenderSVGForeignObject.h in Headers */,
+ 436708C512D9CA4B00044234 /* RenderSVGGradientStop.h in Headers */,
+ 436708C712D9CA4B00044234 /* RenderSVGHiddenContainer.h in Headers */,
+ 436708C912D9CA4B00044234 /* RenderSVGImage.h in Headers */,
0854B0151255E4E600B9CDD0 /* RenderSVGInline.h in Headers */,
0854B0171255E4E600B9CDD0 /* RenderSVGInlineText.h in Headers */,
- A8F5C0B80F9285AC0098E06B /* RenderSVGModelObject.h in Headers */,
+ 436708CB12D9CA4B00044234 /* RenderSVGModelObject.h in Headers */,
ADDF1AD71257CD9A0003A759 /* RenderSVGPath.h in Headers */,
- 083192AA112B43050083C3B9 /* RenderSVGResource.h in Headers */,
- 84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */,
- 08082373117987C100241DE8 /* RenderSVGResourceContainer.h in Headers */,
- 841FDC271178C9BE00F8AC9B /* RenderSVGResourceFilter.h in Headers */,
- 19423B511234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h in Headers */,
- 08C34AF61179C057002D7456 /* RenderSVGResourceGradient.h in Headers */,
- 08C34AF81179C057002D7456 /* RenderSVGResourceLinearGradient.h in Headers */,
- 8499A515115FB33000F566E3 /* RenderSVGResourceMarker.h in Headers */,
- 083192AC112B43050083C3B9 /* RenderSVGResourceMasker.h in Headers */,
- 08563BB5117861780012B578 /* RenderSVGResourcePattern.h in Headers */,
- 08C34AFE1179C072002D7456 /* RenderSVGResourceRadialGradient.h in Headers */,
- 08C6A7AC117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h in Headers */,
- AA31B5B50C1DFD1000AE7083 /* RenderSVGRoot.h in Headers */,
- 08DAB9BB1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.h in Headers */,
+ 436708CD12D9CA4B00044234 /* RenderSVGResource.h in Headers */,
+ 436708CF12D9CA4B00044234 /* RenderSVGResourceClipper.h in Headers */,
+ 436708D112D9CA4B00044234 /* RenderSVGResourceContainer.h in Headers */,
+ 436708D312D9CA4B00044234 /* RenderSVGResourceFilter.h in Headers */,
+ 436708D512D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.h in Headers */,
+ 436708D712D9CA4B00044234 /* RenderSVGResourceGradient.h in Headers */,
+ 436708D912D9CA4B00044234 /* RenderSVGResourceLinearGradient.h in Headers */,
+ 436708DB12D9CA4B00044234 /* RenderSVGResourceMarker.h in Headers */,
+ 436708DD12D9CA4B00044234 /* RenderSVGResourceMasker.h in Headers */,
+ 436708DF12D9CA4B00044234 /* RenderSVGResourcePattern.h in Headers */,
+ 436708E112D9CA4B00044234 /* RenderSVGResourceRadialGradient.h in Headers */,
+ 436708E312D9CA4B00044234 /* RenderSVGResourceSolidColor.h in Headers */,
+ 436708E512D9CA4B00044234 /* RenderSVGRoot.h in Headers */,
+ 436708E712D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.h in Headers */,
0854B0191255E4E600B9CDD0 /* RenderSVGText.h in Headers */,
0854B01B1255E4E600B9CDD0 /* RenderSVGTextPath.h in Headers */,
- A8A909AC0CBCD6B50029B807 /* RenderSVGTransformableContainer.h in Headers */,
+ 436708E912D9CA4B00044234 /* RenderSVGTransformableContainer.h in Headers */,
0854B01D1255E4E600B9CDD0 /* RenderSVGTSpan.h in Headers */,
- B2CCEC480C6CA9F1006A5424 /* RenderSVGViewportContainer.h in Headers */,
+ 436708EB12D9CA4B00044234 /* RenderSVGViewportContainer.h in Headers */,
A8DF4AEB0980C42C0052981B /* RenderTable.h in Headers */,
A8DF4AE90980C42C0052981B /* RenderTableCell.h in Headers */,
A8DF4AF10980C42C0052981B /* RenderTableCol.h in Headers */,
@@ -21634,6 +21702,7 @@
A89CCC530F44E98100B5DA10 /* ReplaceNodeWithSpanCommand.h in Headers */,
93309E0A099E64920056E581 /* ReplaceSelectionCommand.h in Headers */,
F55B3DD01251F12D003EF269 /* ResetInputType.h in Headers */,
+ 7EE6846A12D26E3800E79415 /* ResourceError.h in Headers */,
934F713C0D5A6F1900018D69 /* ResourceErrorBase.h in Headers */,
514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */,
514C767A0CE923A1007EF3CD /* ResourceHandleClient.h in Headers */,
@@ -21644,7 +21713,10 @@
E4295FA412B0614E00D1ACE0 /* ResourceLoadPriority.h in Headers */,
D0CE58F9125E4CC200F3F199 /* ResourceLoadScheduler.h in Headers */,
8A81BF8511DCFD9000DA2B98 /* ResourceLoadTiming.h in Headers */,
+ 7EE6846D12D26E3800E79415 /* ResourceRequest.h in Headers */,
514C767D0CE923A1007EF3CD /* ResourceRequestBase.h in Headers */,
+ 7EE6846F12D26E3800E79415 /* ResourceRequestCFNet.h in Headers */,
+ 7EE6847012D26E3800E79415 /* ResourceResponse.h in Headers */,
514C767F0CE923A1007EF3CD /* ResourceResponseBase.h in Headers */,
FD3160A512B026F700C1A359 /* Reverb.h in Headers */,
FD3160A712B026F700C1A359 /* ReverbAccumulationBuffer.h in Headers */,
@@ -21919,7 +21991,7 @@
B2227A2A0D00BF220071B782 /* SVGGradientElement.h in Headers */,
650FBF2B0D9AF047008FC292 /* SVGHKernElement.h in Headers */,
B25599A40D00D8BA00BB825C /* SVGImage.h in Headers */,
- 08C46B6A1212F15E0011AF40 /* SVGImageBufferTools.h in Headers */,
+ 436708ED12D9CA4B00044234 /* SVGImageBufferTools.h in Headers */,
B2227A2D0D00BF220071B782 /* SVGImageElement.h in Headers */,
B28C6A2A0D00C44800334AA4 /* SVGImageLoader.h in Headers */,
0854B01F1255E4E600B9CDD0 /* SVGInlineFlowBox.h in Headers */,
@@ -21932,9 +22004,9 @@
0810764412828556007C63BA /* SVGListProperty.h in Headers */,
088A0E09126EF1DB00978F7A /* SVGListPropertyTearOff.h in Headers */,
B2227A410D00BF220071B782 /* SVGLocatable.h in Headers */,
- 08385FF610F0186000BFE07B /* SVGMarkerData.h in Headers */,
+ 436708EE12D9CA4B00044234 /* SVGMarkerData.h in Headers */,
B2227A440D00BF220071B782 /* SVGMarkerElement.h in Headers */,
- 08735FB910E91232006D6FAD /* SVGMarkerLayoutInfo.h in Headers */,
+ 436708F012D9CA4B00044234 /* SVGMarkerLayoutInfo.h in Headers */,
B2227A470D00BF220071B782 /* SVGMaskElement.h in Headers */,
0806E57A12893045007CED32 /* SVGMatrix.h in Headers */,
B2227A4B0D00BF220071B782 /* SVGMetadataElement.h in Headers */,
@@ -21987,15 +22059,15 @@
B2227AA00D00BF220071B782 /* SVGRenderingIntent.h in Headers */,
BC2274790E8366E200E7F975 /* SVGRenderStyle.h in Headers */,
BC22747B0E8366E200E7F975 /* SVGRenderStyleDefs.h in Headers */,
- A8F4FB940C169E7B002AFED5 /* SVGRenderSupport.h in Headers */,
- B2EBDC9D0AF77E3400AE4A68 /* SVGRenderTreeAsText.h in Headers */,
- 084D0E3D11F5816100081E1A /* SVGResources.h in Headers */,
- 084D0E3F11F5816100081E1A /* SVGResourcesCache.h in Headers */,
- 085B05C311FAE16C004D65F6 /* SVGResourcesCycleSolver.h in Headers */,
+ 436708F212D9CA4B00044234 /* SVGRenderSupport.h in Headers */,
+ 436708F412D9CA4B00044234 /* SVGRenderTreeAsText.h in Headers */,
+ 436708F612D9CA4B00044234 /* SVGResources.h in Headers */,
+ 436708F812D9CA4B00044234 /* SVGResourcesCache.h in Headers */,
+ 436708FA12D9CA4B00044234 /* SVGResourcesCycleSolver.h in Headers */,
0854B0231255E4E600B9CDD0 /* SVGRootInlineBox.h in Headers */,
B2227AA30D00BF220071B782 /* SVGScriptElement.h in Headers */,
B2227AA60D00BF220071B782 /* SVGSetElement.h in Headers */,
- 08DAB9C31103D9C1003E7ABA /* SVGShadowTreeElements.h in Headers */,
+ 436708FC12D9CA4B00044234 /* SVGShadowTreeElements.h in Headers */,
E4AFD0100DAF335500F5F55C /* SVGSMILElement.h in Headers */,
0880F70E1282B46D00948505 /* SVGStaticListPropertyTearOff.h in Headers */,
0813A4EA1284132600992511 /* SVGStaticPropertyTearOff.h in Headers */,
@@ -22168,6 +22240,7 @@
31288E750E3005D6003619AE /* WebKitCSSKeyframesRule.h in Headers */,
498391590F1E776900C23782 /* WebKitCSSMatrix.h in Headers */,
BC9ADD230CC4032600098C4C /* WebKitCSSTransformValue.h in Headers */,
+ 93F1D5BB12D532C400832BEC /* WebKitLoseContext.h in Headers */,
494BD7950F55C8EE00747828 /* WebKitPoint.h in Headers */,
31C0FF250E4CEB6E007D6FE5 /* WebKitTransitionEvent.h in Headers */,
0FCF332F0F2B9A25004B6795 /* WebLayer.h in Headers */,
@@ -22279,19 +22352,10 @@
93F199ED08245E59001E9ABC /* XSLTProcessor.h in Headers */,
E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
97DD4D870FDF4D6E00ECF9A4 /* XSSAuditor.h in Headers */,
- 29489FC712C00F0300D83F0F /* AccessibilityScrollView.h in Headers */,
- 7EE6846012D26E3800E79415 /* AuthenticationCF.h in Headers */,
- 7EE6846112D26E3800E79415 /* AuthenticationChallenge.h in Headers */,
- 7EE6846412D26E3800E79415 /* CookieStorageCFNet.h in Headers */,
- 7EE6846712D26E3800E79415 /* FormDataStreamCFNet.h in Headers */,
- 7EE6846912D26E3800E79415 /* LoaderRunLoopCF.h in Headers */,
- 7EE6846A12D26E3800E79415 /* ResourceError.h in Headers */,
- 7EE6846D12D26E3800E79415 /* ResourceRequest.h in Headers */,
- 7EE6846F12D26E3800E79415 /* ResourceRequestCFNet.h in Headers */,
- 7EE6847012D26E3800E79415 /* ResourceResponse.h in Headers */,
- 493E5E0912D6420500020081 /* PlatformCALayerClient.h in Headers */,
- 93F1D5BB12D532C400832BEC /* WebKitLoseContext.h in Headers */,
- 93F1D5C112D5335600832BEC /* JSWebKitLoseContext.h in Headers */,
+ 2E37DFDB12DBAFB800A6B233 /* DOMURL.h in Headers */,
+ 2E37E00612DBC5A400A6B233 /* JSDOMURL.h in Headers */,
+ 7A5640C012DF9E5E00F4536D /* InspectorSettings.h in Headers */,
+ F3D4C47912E07663003DA150 /* InspectorBrowserDebuggerAgent.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -22609,6 +22673,7 @@
A409C984116D0DDD007197BD /* AccessibilityProgressIndicator.cpp in Sources */,
29A812260FBB9C1D00510293 /* AccessibilityRenderObject.cpp in Sources */,
93C4F6EA1108F9A50099D0DB /* AccessibilityScrollbar.cpp in Sources */,
+ 29489FC812C00F0300D83F0F /* AccessibilityScrollView.cpp in Sources */,
0709FC4C1025DED80059CDBA /* AccessibilitySlider.cpp in Sources */,
29A812270FBB9C1D00510293 /* AccessibilityTable.cpp in Sources */,
29A8122A0FBB9C1D00510293 /* AccessibilityTableCell.cpp in Sources */,
@@ -22666,6 +22731,7 @@
FD31608512B026F700C1A359 /* AudioResampler.cpp in Sources */,
FD31608712B026F700C1A359 /* AudioResamplerKernel.cpp in Sources */,
FD31608A12B026F700C1A359 /* AudioUtilities.cpp in Sources */,
+ 7EE6845F12D26E3800E79415 /* AuthenticationCF.cpp in Sources */,
934F71380D5A6EFF00018D69 /* AuthenticationChallengeBase.cpp in Sources */,
514C764D0CE9234E007EF3CD /* AuthenticationMac.mm in Sources */,
51E1ECAF0C91C54600DC255B /* AutodrainedPool.mm in Sources */,
@@ -22766,12 +22832,15 @@
93B6A0EA0B0BCA8400F5027A /* ContextMenuMac.mm in Sources */,
FD31602812B0267600C1A359 /* ConvolverNode.cpp in Sources */,
9352087709BD453400F2038D /* CookieJar.mm in Sources */,
+ 7EE6846212D26E3800E79415 /* CookieJarCFNet.cpp in Sources */,
+ 7EE6846312D26E3800E79415 /* CookieStorageCFNet.cpp in Sources */,
E13F01F11270E19000DFBA71 /* CookieStorageMac.mm in Sources */,
BC5EB9500E82056B00B25965 /* CounterDirectives.cpp in Sources */,
9392F1500AD1862300691BD4 /* CounterNode.cpp in Sources */,
D0B0556909C6700100307E43 /* CreateLinkCommand.cpp in Sources */,
514C766D0CE923A1007EF3CD /* Credential.cpp in Sources */,
51A052341058774F00CC9E95 /* CredentialStorage.cpp in Sources */,
+ 7EE6846512D26E3800E79415 /* CredentialStorageCFNet.cpp in Sources */,
E1B4CD2510B322E200BFFD7E /* CredentialStorageMac.mm in Sources */,
E1C416170F6563180092D2FB /* CrossOriginAccessControl.cpp in Sources */,
E1C415DE0F655D7C0092D2FB /* CrossOriginPreflightResultCache.cpp in Sources */,
@@ -23286,6 +23355,7 @@
514C766F0CE923A1007EF3CD /* FormData.cpp in Sources */,
085B92BA0EFDE73D00E6123C /* FormDataBuilder.cpp in Sources */,
A8136D390973A8E700D74463 /* FormDataList.cpp in Sources */,
+ 7EE6846612D26E3800E79415 /* FormDataStreamCFNet.cpp in Sources */,
514C764F0CE9234E007EF3CD /* FormDataStreamMac.mm in Sources */,
656D373B0ADBA5DE00A4554D /* FormState.cpp in Sources */,
41885B9411B6FDA6003383BB /* FormSubmission.cpp in Sources */,
@@ -23497,6 +23567,7 @@
B885E8D411E06DD2009FFBF4 /* InspectorApplicationCacheAgent.cpp in Sources */,
4F707A9911EF679400ACDA69 /* InspectorBackendDispatcher.cpp in Sources */,
7A1F2B52126C61B20006A7E6 /* InspectorClient.cpp in Sources */,
+ F3335BF812E07DC300D33011 /* InspectorConsoleAgent.cpp in Sources */,
1C81B95B0E97330800266E07 /* InspectorController.cpp in Sources */,
82AB1743124B99EC00C5069D /* InspectorCSSAgent.cpp in Sources */,
7AB0B1C01211A62200A76940 /* InspectorDatabaseAgent.cpp in Sources */,
@@ -24107,6 +24178,7 @@
4983913F0F1E767500C23782 /* JSWebKitCSSMatrix.cpp in Sources */,
BC275B7D11C5D23500C9206C /* JSWebKitCSSMatrixCustom.cpp in Sources */,
31611E5A0E1C4DE000F6A579 /* JSWebKitCSSTransformValue.cpp in Sources */,
+ 93F1D5C012D5335600832BEC /* JSWebKitLoseContext.cpp in Sources */,
494BD79D0F55C94C00747828 /* JSWebKitPoint.cpp in Sources */,
BC275B7911C5D1C300C9206C /* JSWebKitPointCustom.cpp in Sources */,
31C0FF3F0E4CEFAC007D6FE5 /* JSWebKitTransitionEvent.cpp in Sources */,
@@ -24156,6 +24228,7 @@
89B5EAA111E8003D00F2367E /* LineEnding.cpp in Sources */,
A7AD2F870EC89D07008AB002 /* LinkHash.cpp in Sources */,
656D37330ADBA5DE00A4554D /* LoaderNSURLExtras.mm in Sources */,
+ 7EE6846812D26E3800E79415 /* LoaderRunLoopCF.cpp in Sources */,
06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */,
89878567122CA064003AABDA /* LocalFileSystem.cpp in Sources */,
C046E1AC1208A9FE00BA2CF7 /* LocalizedStrings.cpp in Sources */,
@@ -24260,7 +24333,6 @@
A8FA6E5E0E4CFDED00D5CF49 /* Pattern.cpp in Sources */,
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 */,
8AF4E55511DC5A36000ED3DE /* PerformanceNavigation.cpp in Sources */,
@@ -24322,10 +24394,10 @@
A8EA73C30A1900E300A8EF5F /* RenderFieldset.cpp in Sources */,
066C77300AB603FD00238CC4 /* RenderFileUploadControl.cpp in Sources */,
BCEA486D097D93020094C9E4 /* RenderFlexibleBox.cpp in Sources */,
- 853CA9EC0AEEC63C002372DC /* RenderForeignObject.cpp in Sources */,
A871DED40A1530C700B12A68 /* RenderFrame.cpp in Sources */,
0FD3080E117CF7E700A791F7 /* RenderFrameBase.cpp in Sources */,
A871DED20A1530C700B12A68 /* RenderFrameSet.cpp in Sources */,
+ CDEA7C851276230400B846DD /* RenderFullScreen.cpp in Sources */,
BCEA4869097D93020094C9E4 /* RenderHTMLCanvas.cpp in Sources */,
0FD308D5117D168500A791F7 /* RenderIFrame.cpp in Sources */,
BCEA4875097D93020094C9E4 /* RenderImage.cpp in Sources */,
@@ -24342,16 +24414,16 @@
A8EA7A4E0A191A5200A8EF5F /* RenderListItem.cpp in Sources */,
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 */,
- 0FF2859011864052007B7CD6 /* RenderMathMLRoot.cpp in Sources */,
- FA0B1F8811125CEE007F9839 /* RenderMathMLRow.cpp in Sources */,
- 0FF2859211864054007B7CD6 /* RenderMathMLSquareRoot.cpp in Sources */,
- FAC12CC41120DA6900DACC36 /* RenderMathMLSubSup.cpp in Sources */,
- FA7EFB051120D25400CF79C7 /* RenderMathMLUnderOver.cpp in Sources */,
+ 439046D712DA25E800AF80A2 /* RenderMathMLBlock.cpp in Sources */,
+ 439046D912DA25E800AF80A2 /* RenderMathMLFenced.cpp in Sources */,
+ 439046DB12DA25E800AF80A2 /* RenderMathMLFraction.cpp in Sources */,
+ 439046DD12DA25E800AF80A2 /* RenderMathMLMath.cpp in Sources */,
+ 439046DF12DA25E800AF80A2 /* RenderMathMLOperator.cpp in Sources */,
+ 439046E112DA25E800AF80A2 /* RenderMathMLRoot.cpp in Sources */,
+ 439046E312DA25E800AF80A2 /* RenderMathMLRow.cpp in Sources */,
+ 439046E512DA25E800AF80A2 /* RenderMathMLSquareRoot.cpp in Sources */,
+ 439046E712DA25E800AF80A2 /* RenderMathMLSubSup.cpp in Sources */,
+ 439046E912DA25E800AF80A2 /* RenderMathMLUnderOver.cpp in Sources */,
E4C279580CF9741900E97B98 /* RenderMedia.cpp in Sources */,
ABDDFE790A5C6E7000A3E11D /* RenderMenuList.cpp in Sources */,
A454424E119B3687009BE912 /* RenderMeter.cpp in Sources */,
@@ -24371,34 +24443,35 @@
AB247A6C0AFD6383003FA5FD /* RenderSlider.cpp in Sources */,
BC8C8FAD0DDCD31B00B592F4 /* RenderStyle.cpp in Sources */,
D302754D12A5FEAB004BD828 /* RenderSummary.cpp in Sources */,
- A7352C190B1BB89D00A986D0 /* RenderSVGBlock.cpp in Sources */,
- 853CA9D60AEEC5E9002372DC /* RenderSVGContainer.cpp in Sources */,
- A809F1480B73793B002E4D7F /* RenderSVGGradientStop.cpp in Sources */,
- A809F1AB0B737FB6002E4D7F /* RenderSVGHiddenContainer.cpp in Sources */,
- 853CA9D80AEEC5E9002372DC /* RenderSVGImage.cpp in Sources */,
+ 436708C012D9CA4B00044234 /* RenderSVGBlock.cpp in Sources */,
+ 436708C212D9CA4B00044234 /* RenderSVGContainer.cpp in Sources */,
+ 43C092BB12D9E4EE00A989C3 /* RenderSVGForeignObject.cpp in Sources */,
+ 436708C412D9CA4B00044234 /* RenderSVGGradientStop.cpp in Sources */,
+ 436708C612D9CA4B00044234 /* RenderSVGHiddenContainer.cpp in Sources */,
+ 436708C812D9CA4B00044234 /* RenderSVGImage.cpp in Sources */,
0854B0141255E4E600B9CDD0 /* RenderSVGInline.cpp in Sources */,
0854B0161255E4E600B9CDD0 /* RenderSVGInlineText.cpp in Sources */,
- A8F5C0B90F9285AC0098E06B /* RenderSVGModelObject.cpp in Sources */,
+ 436708CA12D9CA4B00044234 /* RenderSVGModelObject.cpp in Sources */,
ADDF1AD61257CD9A0003A759 /* RenderSVGPath.cpp in Sources */,
- 08563BD0117865F50012B578 /* RenderSVGResource.cpp in Sources */,
- 84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */,
- 086A400611F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp in Sources */,
- 841FDC261178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp in Sources */,
- 19423B501234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp in Sources */,
- 08C34AF51179C057002D7456 /* RenderSVGResourceGradient.cpp in Sources */,
- 08C34AF71179C057002D7456 /* RenderSVGResourceLinearGradient.cpp in Sources */,
- 8499A514115FB33000F566E3 /* RenderSVGResourceMarker.cpp in Sources */,
- 083192AB112B43050083C3B9 /* RenderSVGResourceMasker.cpp in Sources */,
- 08563BB4117861780012B578 /* RenderSVGResourcePattern.cpp in Sources */,
- 08C34AFD1179C072002D7456 /* RenderSVGResourceRadialGradient.cpp in Sources */,
- 08C6A7AB117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp in Sources */,
- AA31B5B40C1DFD1000AE7083 /* RenderSVGRoot.cpp in Sources */,
- 08DAB9BA1103D9A5003E7ABA /* RenderSVGShadowTreeRootContainer.cpp in Sources */,
+ 436708CC12D9CA4B00044234 /* RenderSVGResource.cpp in Sources */,
+ 436708CE12D9CA4B00044234 /* RenderSVGResourceClipper.cpp in Sources */,
+ 436708D012D9CA4B00044234 /* RenderSVGResourceContainer.cpp in Sources */,
+ 436708D212D9CA4B00044234 /* RenderSVGResourceFilter.cpp in Sources */,
+ 436708D412D9CA4B00044234 /* RenderSVGResourceFilterPrimitive.cpp in Sources */,
+ 436708D612D9CA4B00044234 /* RenderSVGResourceGradient.cpp in Sources */,
+ 436708D812D9CA4B00044234 /* RenderSVGResourceLinearGradient.cpp in Sources */,
+ 436708DA12D9CA4B00044234 /* RenderSVGResourceMarker.cpp in Sources */,
+ 436708DC12D9CA4B00044234 /* RenderSVGResourceMasker.cpp in Sources */,
+ 436708DE12D9CA4B00044234 /* RenderSVGResourcePattern.cpp in Sources */,
+ 436708E012D9CA4B00044234 /* RenderSVGResourceRadialGradient.cpp in Sources */,
+ 436708E212D9CA4B00044234 /* RenderSVGResourceSolidColor.cpp in Sources */,
+ 436708E412D9CA4B00044234 /* RenderSVGRoot.cpp in Sources */,
+ 436708E612D9CA4B00044234 /* RenderSVGShadowTreeRootContainer.cpp in Sources */,
0854B0181255E4E600B9CDD0 /* RenderSVGText.cpp in Sources */,
0854B01A1255E4E600B9CDD0 /* RenderSVGTextPath.cpp in Sources */,
- A8A909AD0CBCD6B50029B807 /* RenderSVGTransformableContainer.cpp in Sources */,
+ 436708E812D9CA4B00044234 /* RenderSVGTransformableContainer.cpp in Sources */,
0854B01C1255E4E600B9CDD0 /* RenderSVGTSpan.cpp in Sources */,
- B2CCEC470C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp in Sources */,
+ 436708EA12D9CA4B00044234 /* RenderSVGViewportContainer.cpp in Sources */,
A8DF4AEC0980C42C0052981B /* RenderTable.cpp in Sources */,
A8DF4AEA0980C42C0052981B /* RenderTableCell.cpp in Sources */,
A8DF4AE80980C42C0052981B /* RenderTableCol.cpp in Sources */,
@@ -24420,16 +24493,21 @@
93309E09099E64920056E581 /* ReplaceSelectionCommand.cpp in Sources */,
F55B3DCF1251F12D003EF269 /* ResetInputType.cpp in Sources */,
934F713E0D5A6F2800018D69 /* ResourceErrorBase.cpp in Sources */,
+ 7EE6846B12D26E3800E79415 /* ResourceErrorCF.cpp in Sources */,
514C76500CE9234E007EF3CD /* ResourceErrorMac.mm in Sources */,
514C76780CE923A1007EF3CD /* ResourceHandle.cpp in Sources */,
+ 7EE6846C12D26E3800E79415 /* ResourceHandleCFNet.cpp in Sources */,
514C76510CE9234E007EF3CD /* ResourceHandleMac.mm in Sources */,
93E227E30AF589AD00D48324 /* ResourceLoader.cpp in Sources */,
+ 7EE6847512D26E7000E79415 /* ResourceLoaderCFNet.cpp in Sources */,
51AA3F6F0BD5AA9E00892971 /* ResourceLoaderMac.mm in Sources */,
973E325610883B7C005BC493 /* ResourceLoadNotifier.cpp in Sources */,
D0CE58F8125E4CC200F3F199 /* ResourceLoadScheduler.cpp in Sources */,
514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */,
+ 7EE6846E12D26E3800E79415 /* ResourceRequestCFNet.cpp in Sources */,
514C76530CE9234E007EF3CD /* ResourceRequestMac.mm in Sources */,
514C767E0CE923A1007EF3CD /* ResourceResponseBase.cpp in Sources */,
+ 7EE6847112D26E3800E79415 /* ResourceResponseCFNet.cpp in Sources */,
514C76550CE9234F007EF3CD /* ResourceResponseMac.mm in Sources */,
FD3160A412B026F700C1A359 /* Reverb.cpp in Sources */,
FD3160A612B026F700C1A359 /* ReverbAccumulationBuffer.cpp in Sources */,
@@ -24667,7 +24745,7 @@
B2227A290D00BF220071B782 /* SVGGradientElement.cpp in Sources */,
650FBF2A0D9AF047008FC292 /* SVGHKernElement.cpp in Sources */,
B25599A30D00D8BA00BB825C /* SVGImage.cpp in Sources */,
- 08C46B691212F15E0011AF40 /* SVGImageBufferTools.cpp in Sources */,
+ 436708EC12D9CA4B00044234 /* SVGImageBufferTools.cpp in Sources */,
B2227A2C0D00BF220071B782 /* SVGImageElement.cpp in Sources */,
B28C6A290D00C44800334AA4 /* SVGImageLoader.cpp in Sources */,
0854B01E1255E4E600B9CDD0 /* SVGInlineFlowBox.cpp in Sources */,
@@ -24679,7 +24757,7 @@
B2227A3B0D00BF220071B782 /* SVGLineElement.cpp in Sources */,
B2227A400D00BF220071B782 /* SVGLocatable.cpp in Sources */,
B2227A430D00BF220071B782 /* SVGMarkerElement.cpp in Sources */,
- 08735FB810E91232006D6FAD /* SVGMarkerLayoutInfo.cpp in Sources */,
+ 436708EF12D9CA4B00044234 /* SVGMarkerLayoutInfo.cpp in Sources */,
B2227A460D00BF220071B782 /* SVGMaskElement.cpp in Sources */,
B2227A4A0D00BF220071B782 /* SVGMetadataElement.cpp in Sources */,
B2A1F2B00CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp in Sources */,
@@ -24712,15 +24790,15 @@
B2227A9D0D00BF220071B782 /* SVGRectElement.cpp in Sources */,
BC2274780E8366E200E7F975 /* SVGRenderStyle.cpp in Sources */,
BC22747A0E8366E200E7F975 /* SVGRenderStyleDefs.cpp in Sources */,
- A8F4FB960C169E85002AFED5 /* SVGRenderSupport.cpp in Sources */,
- B2EBDC9C0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp in Sources */,
- 084D0E3C11F5816100081E1A /* SVGResources.cpp in Sources */,
- 084D0E3E11F5816100081E1A /* SVGResourcesCache.cpp in Sources */,
- 085B05C211FAE16C004D65F6 /* SVGResourcesCycleSolver.cpp in Sources */,
+ 436708F112D9CA4B00044234 /* SVGRenderSupport.cpp in Sources */,
+ 436708F312D9CA4B00044234 /* SVGRenderTreeAsText.cpp in Sources */,
+ 436708F512D9CA4B00044234 /* SVGResources.cpp in Sources */,
+ 436708F712D9CA4B00044234 /* SVGResourcesCache.cpp in Sources */,
+ 436708F912D9CA4B00044234 /* SVGResourcesCycleSolver.cpp in Sources */,
0854B0221255E4E600B9CDD0 /* SVGRootInlineBox.cpp in Sources */,
B2227AA20D00BF220071B782 /* SVGScriptElement.cpp in Sources */,
B2227AA50D00BF220071B782 /* SVGSetElement.cpp in Sources */,
- 08DAB9C21103D9C1003E7ABA /* SVGShadowTreeElements.cpp in Sources */,
+ 436708FB12D9CA4B00044234 /* SVGShadowTreeElements.cpp in Sources */,
E4AFD00F0DAF335500F5F55C /* SVGSMILElement.cpp in Sources */,
B2227AA80D00BF220071B782 /* SVGStopElement.cpp in Sources */,
B2227AAB0D00BF220071B782 /* SVGStringList.cpp in Sources */,
@@ -24860,6 +24938,7 @@
31288E740E3005D6003619AE /* WebKitCSSKeyframesRule.cpp in Sources */,
498391580F1E776900C23782 /* WebKitCSSMatrix.cpp in Sources */,
BC9ADD800CC4092200098C4C /* WebKitCSSTransformValue.cpp in Sources */,
+ 93F1D5BA12D532C400832BEC /* WebKitLoseContext.cpp in Sources */,
31C0FF240E4CEB6E007D6FE5 /* WebKitTransitionEvent.cpp in Sources */,
0FCF332E0F2B9A25004B6795 /* WebLayer.mm in Sources */,
1CAF34820A6C405200ABE06E /* WebScriptObject.mm in Sources */,
@@ -24961,21 +25040,10 @@
93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */,
- 29489FC812C00F0300D83F0F /* AccessibilityScrollView.cpp in Sources */,
- 7EE6845F12D26E3800E79415 /* AuthenticationCF.cpp in Sources */,
- 7EE6846212D26E3800E79415 /* CookieJarCFNet.cpp in Sources */,
- 7EE6846312D26E3800E79415 /* CookieStorageCFNet.cpp in Sources */,
- 7EE6846512D26E3800E79415 /* CredentialStorageCFNet.cpp in Sources */,
- 7EE6846612D26E3800E79415 /* FormDataStreamCFNet.cpp in Sources */,
- 7EE6846812D26E3800E79415 /* LoaderRunLoopCF.cpp in Sources */,
- 7EE6846B12D26E3800E79415 /* ResourceErrorCF.cpp in Sources */,
- 7EE6846C12D26E3800E79415 /* ResourceHandleCFNet.cpp in Sources */,
- 7EE6846E12D26E3800E79415 /* ResourceRequestCFNet.cpp in Sources */,
- 7EE6847112D26E3800E79415 /* ResourceResponseCFNet.cpp in Sources */,
- 7EE6847512D26E7000E79415 /* ResourceLoaderCFNet.cpp in Sources */,
- 93F1D5BA12D532C400832BEC /* WebKitLoseContext.cpp in Sources */,
- 93F1D5C012D5335600832BEC /* JSWebKitLoseContext.cpp in Sources */,
- CDEA7C851276230400B846DD /* RenderFullScreen.cpp in Sources */,
+ 2E37DFDA12DBAFB800A6B233 /* DOMURL.cpp in Sources */,
+ 2E37E00512DBC5A400A6B233 /* JSDOMURL.cpp in Sources */,
+ 7A5640BF12DF9E5E00F4536D /* InspectorSettings.cpp in Sources */,
+ F3D4C47812E07663003DA150 /* InspectorBrowserDebuggerAgent.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
index 7dc6840..8b0c5ca 100644
--- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -2026,8 +2026,8 @@ void AccessibilityRenderObject::setSelectedTextRange(const PlainTextRange& range
if (!frame)
return;
Node* node = m_renderer->node();
- frame->selection()->setSelection(VisibleSelection(Position(node, range.start),
- Position(node, range.start + range.length), DOWNSTREAM));
+ frame->selection()->setSelection(VisibleSelection(Position(node, range.start, Position::PositionIsOffsetInAnchor),
+ Position(node, range.start + range.length, Position::PositionIsOffsetInAnchor), DOWNSTREAM));
}
KURL AccessibilityRenderObject::url() const
diff --git a/Source/WebCore/bindings/js/GCController.cpp b/Source/WebCore/bindings/js/GCController.cpp
index f193b2e..fe0e36f 100644
--- a/Source/WebCore/bindings/js/GCController.cpp
+++ b/Source/WebCore/bindings/js/GCController.cpp
@@ -29,7 +29,7 @@
#include "JSDOMWindow.h"
#include <runtime/JSGlobalData.h>
#include <runtime/JSLock.h>
-#include <runtime/Collector.h>
+#include <runtime/Heap.h>
#include <wtf/StdLibExtras.h>
#if USE(PTHREADS)
diff --git a/Source/WebCore/bindings/js/JSDirectoryEntryCustom.cpp b/Source/WebCore/bindings/js/JSDirectoryEntryCustom.cpp
index a0e0455..ceb3ccb 100644
--- a/Source/WebCore/bindings/js/JSDirectoryEntryCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDirectoryEntryCustom.cpp
@@ -34,6 +34,7 @@
#include "JSDirectoryEntry.h"
+#include "ExceptionCode.h"
#include "JSDOMBinding.h"
#include "JSEntryCallback.h"
#include "JSErrorCallback.h"
diff --git a/Source/WebCore/bindings/js/JSDocumentCustom.cpp b/Source/WebCore/bindings/js/JSDocumentCustom.cpp
index 5f61e2a..4cc176c 100644
--- a/Source/WebCore/bindings/js/JSDocumentCustom.cpp
+++ b/Source/WebCore/bindings/js/JSDocumentCustom.cpp
@@ -31,8 +31,11 @@
#include "JSDOMWindowCustom.h"
#include "JSHTMLDocument.h"
#include "JSLocation.h"
+#include "JSTouch.h"
+#include "JSTouchList.h"
#include "Location.h"
#include "ScriptController.h"
+#include "TouchList.h"
#if ENABLE(SVG)
#include "JSSVGDocument.h"
@@ -124,4 +127,16 @@ JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, Document* documen
return wrapper;
}
+#if ENABLE(TOUCH_EVENTS)
+JSValue JSDocument::createTouchList(ExecState* exec)
+{
+ RefPtr<TouchList> touchList = TouchList::create();
+
+ for (int i = 0; i < exec->argumentCount(); i++)
+ touchList->append(toTouch(exec->argument(i)));
+
+ return toJS(exec, touchList.release());
+}
+#endif
+
} // namespace WebCore
diff --git a/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp b/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
index de72dea..971098d 100644
--- a/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
+++ b/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
@@ -199,8 +199,7 @@ InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* scriptState)
if (!canAccessInspectedWindow(scriptState))
return InjectedScript();
- ASSERT(!m_injectedScriptSource.isEmpty());
- pair<long, ScriptObject> injectedScriptObject = injectScript(m_injectedScriptSource, scriptState);
+ pair<long, ScriptObject> injectedScriptObject = injectScript(injectedScriptSource(), scriptState);
globalObject->setInjectedScript(injectedScriptObject.second.jsObject());
InjectedScript result(injectedScriptObject.second);
m_idToInjectedScript.set(injectedScriptObject.first, result);
diff --git a/Source/WebCore/bindings/js/ScriptDebugServer.cpp b/Source/WebCore/bindings/js/ScriptDebugServer.cpp
index 10df223..9845277 100644
--- a/Source/WebCore/bindings/js/ScriptDebugServer.cpp
+++ b/Source/WebCore/bindings/js/ScriptDebugServer.cpp
@@ -287,12 +287,11 @@ void ScriptDebugServer::dispatchDidParseSource(const ListenerSet& listeners, con
String sourceID = ustringToString(JSC::UString::number(source.provider()->asID()));
String url = ustringToString(source.provider()->url());
String data = ustringToString(JSC::UString(source.data(), source.length()));
- int firstLine = source.firstLine();
Vector<ScriptDebugListener*> copy;
copyToVector(listeners, copy);
for (size_t i = 0; i < copy.size(); ++i)
- copy[i]->didParseSource(sourceID, url, data, firstLine, worldType);
+ copy[i]->didParseSource(sourceID, url, data, source.firstLine() - 1, source.firstColumn() - 1, worldType);
}
void ScriptDebugServer::dispatchFailedToParseSource(const ListenerSet& listeners, const SourceCode& source, int errorLine, const String& errorMessage)
diff --git a/Source/WebCore/bindings/js/ScriptGCEvent.cpp b/Source/WebCore/bindings/js/ScriptGCEvent.cpp
index 4b39799..b7fc7b3 100644
--- a/Source/WebCore/bindings/js/ScriptGCEvent.cpp
+++ b/Source/WebCore/bindings/js/ScriptGCEvent.cpp
@@ -34,7 +34,7 @@
#if ENABLE(INSPECTOR)
#include "JSDOMWindow.h"
-#include <runtime/Collector.h>
+#include <runtime/Heap.h>
#include <runtime/JSGlobalData.h>
#include <wtf/CurrentTime.h>
diff --git a/Source/WebCore/bindings/js/ScriptSourceCode.h b/Source/WebCore/bindings/js/ScriptSourceCode.h
index 092eeb8..6cf3987 100644
--- a/Source/WebCore/bindings/js/ScriptSourceCode.h
+++ b/Source/WebCore/bindings/js/ScriptSourceCode.h
@@ -44,7 +44,7 @@ class ScriptSourceCode {
public:
ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition1& startPosition = TextPosition1::minimumPosition())
: m_provider(StringSourceProvider::create(source, url.isNull() ? String() : url.string()))
- , m_code(m_provider, startPosition.m_line.oneBasedInt())
+ , m_code(m_provider, startPosition)
, m_url(url)
{
}
diff --git a/Source/WebCore/bindings/v8/DebuggerScript.js b/Source/WebCore/bindings/v8/DebuggerScript.js
index 50f791d..8c9d98e 100644
--- a/Source/WebCore/bindings/v8/DebuggerScript.js
+++ b/Source/WebCore/bindings/v8/DebuggerScript.js
@@ -83,8 +83,8 @@ DebuggerScript._formatScript = function(script)
id: script.id,
name: script.nameOrSourceURL(),
source: script.source,
- lineOffset: DebuggerScript._v8ToWebkitLineNumber(script.line_offset),
- lineCount: script.lineCount(),
+ lineOffset: script.line_offset,
+ columnOffset: script.column_offset,
scriptWorldType: scriptWorldType
};
}
diff --git a/Source/WebCore/bindings/v8/ScriptDebugServer.cpp b/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
index 4b4611a..1c70a0e 100644
--- a/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
+++ b/Source/WebCore/bindings/v8/ScriptDebugServer.cpp
@@ -447,6 +447,7 @@ void ScriptDebugServer::dispatchDidParseSource(ScriptDebugListener* listener, v8
toWebCoreStringWithNullOrUndefinedCheck(object->Get(v8::String::New("name"))),
toWebCoreStringWithNullOrUndefinedCheck(object->Get(v8::String::New("source"))),
object->Get(v8::String::New("lineOffset"))->ToInteger()->Value(),
+ object->Get(v8::String::New("columnOffset"))->ToInteger()->Value(),
static_cast<ScriptWorldType>(object->Get(v8::String::New("scriptWorldType"))->Int32Value()));
}
diff --git a/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp b/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
index 9fa9f80..cda0737 100644
--- a/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
@@ -35,6 +35,7 @@
#include "Document.h"
#include "ExceptionCode.h"
#include "Node.h"
+#include "TouchList.h"
#include "XPathNSResolver.h"
#include "XPathResult.h"
@@ -46,6 +47,8 @@
#include "V8IsolatedContext.h"
#include "V8Node.h"
#include "V8Proxy.h"
+#include "V8Touch.h"
+#include "V8TouchList.h"
#if ENABLE(3D_CANVAS)
#include "V8WebGLRenderingContext.h"
#endif
@@ -163,4 +166,19 @@ v8::Handle<v8::Value> toV8(Document* impl, bool forceNewObject)
return wrapper;
}
+#if ENABLE(TOUCH_EVENTS)
+v8::Handle<v8::Value> V8Document::createTouchListCallback(const v8::Arguments& args)
+{
+ RefPtr<TouchList> touchList = TouchList::create();
+
+ for (int i = 0; i < args.Length(); i++) {
+ if (!args[i]->IsObject())
+ return v8::Undefined();
+ touchList->append(V8Touch::toNative(args[i]->ToObject()));
+ }
+
+ return toV8(touchList.release());
+}
+#endif
+
} // namespace WebCore
diff --git a/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp b/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
index 81ad955..6bd5abb 100644
--- a/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
+++ b/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp
@@ -241,8 +241,7 @@ InjectedScript InjectedScriptHost::injectedScriptFor(ScriptState* inspectedScrip
if (!canAccessInspectedWindow(inspectedScriptState))
return InjectedScript();
- ASSERT(!m_injectedScriptSource.isEmpty());
- pair<long, ScriptObject> injectedScript = injectScript(m_injectedScriptSource, inspectedScriptState);
+ pair<long, ScriptObject> injectedScript = injectScript(injectedScriptSource(), inspectedScriptState);
InjectedScript result(injectedScript.second);
m_idToInjectedScript.set(injectedScript.first, result);
global->SetHiddenValue(key, injectedScript.second.v8Object());
diff --git a/Source/WebCore/bridge/npruntime.h b/Source/WebCore/bridge/npruntime.h
index 468cf92..828a340 100644
--- a/Source/WebCore/bridge/npruntime.h
+++ b/Source/WebCore/bridge/npruntime.h
@@ -33,12 +33,12 @@
#ifndef _NP_RUNTIME_H_
#define _NP_RUNTIME_H_
+#include "npapi.h"
+
#ifdef __cplusplus
extern "C" {
#endif
-#include "npapi.h"
-
/*
This API is used to facilitate binding code written in C to script
objects. The API in this header does not assume the presence of a
diff --git a/Source/WebCore/config.h b/Source/WebCore/config.h
index 3d54a19..1954e0d 100644
--- a/Source/WebCore/config.h
+++ b/Source/WebCore/config.h
@@ -234,8 +234,10 @@
// this breaks compilation of <QFontDatabase>, at least, so turn it off for now
// Also generates errors on wx on Windows, presumably because these functions
-// are used from wx headers.
-#if !PLATFORM(QT) && !PLATFORM(WX) && !PLATFORM(CHROMIUM)
+// are used from wx headers. On GTK+ for Mac many GTK+ files include <libintl.h>
+// or <glib/gi18n-lib.h>, which in turn include <xlocale/_ctype.h> which uses
+// isacii().
+#if !PLATFORM(QT) && !PLATFORM(WX) && !PLATFORM(CHROMIUM) && !(OS(DARWIN) && PLATFORM(GTK))
#include <wtf/DisallowCType.h>
#endif
diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
index 21cf9ac..89564c3 100644
--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
@@ -24,6 +24,7 @@
#include "CSSComputedStyleDeclaration.h"
#include "AnimationController.h"
+#include "CursorList.h"
#include "CSSBorderImageValue.h"
#include "CSSMutableStyleDeclaration.h"
#include "CSSPrimitiveValue.h"
diff --git a/Source/WebCore/css/CSSFontFaceSource.cpp b/Source/WebCore/css/CSSFontFaceSource.cpp
index 12d2e1e..034b22e 100644
--- a/Source/WebCore/css/CSSFontFaceSource.cpp
+++ b/Source/WebCore/css/CSSFontFaceSource.cpp
@@ -115,7 +115,7 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
}
// See if we have a mapping in our FontData cache.
- unsigned hashKey = fontDescription.computedPixelSize() << 3 | (fontDescription.orientation() == Vertical ? 4 : 0) | (syntheticBold ? 2 : 0) | (syntheticItalic ? 1 : 0);
+ unsigned hashKey = (fontDescription.computedPixelSize() + 1) << 3 | (fontDescription.orientation() == Vertical ? 4 : 0) | (syntheticBold ? 2 : 0) | (syntheticItalic ? 1 : 0);
if (SimpleFontData* cachedData = m_fontDataTable.get(hashKey))
return cachedData;
diff --git a/Source/WebCore/css/CSSGradientValue.cpp b/Source/WebCore/css/CSSGradientValue.cpp
index 8040c6c..fde4a4e 100644
--- a/Source/WebCore/css/CSSGradientValue.cpp
+++ b/Source/WebCore/css/CSSGradientValue.cpp
@@ -43,7 +43,8 @@ namespace WebCore {
Image* CSSGradientValue::image(RenderObject* renderer, const IntSize& size)
{
- ASSERT(m_clients.contains(renderer));
+ if (!m_clients.contains(renderer))
+ return 0;
// Need to look up our size. Create a string of width*height to use as a hash key.
// FIXME: hashing based only on size is not sufficient. Color stops may use context-sensitive units (like em)
diff --git a/Source/WebCore/css/CSSGrammar.y b/Source/WebCore/css/CSSGrammar.y
index ba5855d..a5fe795 100644
--- a/Source/WebCore/css/CSSGrammar.y
+++ b/Source/WebCore/css/CSSGrammar.y
@@ -901,16 +901,13 @@ simple_selector:
}
| element_name specifier_list {
$$ = $2;
- if ($$) {
- CSSParser* p = static_cast<CSSParser*>(parser);
- $$->m_tag = QualifiedName(nullAtom, $1, p->m_defaultNamespace);
- }
+ if ($$)
+ static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, $1, $$);
}
| specifier_list {
$$ = $1;
- CSSParser* p = static_cast<CSSParser*>(parser);
- if ($$ && p->m_defaultNamespace != starAtom)
- $$->m_tag = QualifiedName(nullAtom, starAtom, p->m_defaultNamespace);
+ if ($$)
+ static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName(nullAtom, starAtom, $$);
}
| namespace_selector element_name {
AtomicString namespacePrefix = $1;
@@ -924,25 +921,13 @@ simple_selector:
}
| namespace_selector element_name specifier_list {
$$ = $3;
- if ($$) {
- AtomicString namespacePrefix = $1;
- CSSParser* p = static_cast<CSSParser*>(parser);
- if (p->m_styleSheet)
- $$->m_tag = QualifiedName(namespacePrefix, $2,
- p->m_styleSheet->determineNamespace(namespacePrefix));
- else // FIXME: Shouldn't this case be an error?
- $$->m_tag = QualifiedName(nullAtom, $2, p->m_defaultNamespace);
- }
+ if ($$)
+ static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName($1, $2, $$);
}
| namespace_selector specifier_list {
$$ = $2;
- if ($$) {
- AtomicString namespacePrefix = $1;
- CSSParser* p = static_cast<CSSParser*>(parser);
- if (p->m_styleSheet)
- $$->m_tag = QualifiedName(namespacePrefix, starAtom,
- p->m_styleSheet->determineNamespace(namespacePrefix));
- }
+ if ($$)
+ static_cast<CSSParser*>(parser)->updateSpecifiersWithElementName($1, starAtom, $$);
}
;
@@ -970,13 +955,22 @@ specifier_list:
if (!$2)
$$ = 0;
else if ($1) {
- $$ = $1;
CSSParser* p = static_cast<CSSParser*>(parser);
- CSSSelector* end = $1;
- while (end->tagHistory())
+ CSSSelector* end;
+ CSSSelector* history;
+ // Ensure that unknown pseudo element always stays at the top of selector chain.
+ if ($2->isUnknownPseudoElement()) {
+ end = $2;
+ history = $1;
+ } else {
+ end = $1;
+ history = $2;
+ }
+ $$ = end;
+ while(end->tagHistory())
end = end->tagHistory();
end->m_relation = CSSSelector::SubSelector;
- end->setTagHistory(p->sinkFloatingSelector($2));
+ end->setTagHistory(p->sinkFloatingSelector(history));
}
}
| specifier_list error {
@@ -1141,9 +1135,7 @@ pseudo:
$3.lower();
$$->m_value = $3;
CSSSelector::PseudoType type = $$->pseudoType();
- if (type == CSSSelector::PseudoUnknown)
- $$ = 0;
- else if (type == CSSSelector::PseudoFirstLine) {
+ if (type == CSSSelector::PseudoFirstLine) {
CSSParser* p = static_cast<CSSParser*>(parser);
if (Document* doc = p->document())
doc->setUsesFirstLineRules(true);
diff --git a/Source/WebCore/css/CSSParser.cpp b/Source/WebCore/css/CSSParser.cpp
index abc9300..fd5841f 100644
--- a/Source/WebCore/css/CSSParser.cpp
+++ b/Source/WebCore/css/CSSParser.cpp
@@ -5004,7 +5004,6 @@ bool CSSParser::parseLinearGradient(RefPtr<CSSValue>& gradient, CSSGradientRepea
a = args->next();
expectComma = true;
} else {
-
// Look one or two optional keywords that indicate a side or corner.
RefPtr<CSSPrimitiveValue> startX, startY;
@@ -5043,35 +5042,8 @@ bool CSSParser::parseLinearGradient(RefPtr<CSSValue>& gradient, CSSGradientRepea
result->setFirstY(startY.release());
}
- // Now look for 0 or more color stops.
- while (a) {
- // Look for the comma before the next stop.
- if (expectComma) {
- if (a->unit != CSSParserValue::Operator || a->iValue != ',')
- return false;
-
- a = args->next();
- if (!a)
- return false;
- }
-
- // <color-stop> = <color> [ <percentage> | <length> ]?
- CSSGradientColorStop stop;
- stop.m_color = parseGradientColorOrKeyword(this, a);
- if (!stop.m_color)
- return false;
-
- a = args->next();
- if (a) {
- if (validUnit(a, FLength | FPercent, m_strict)) {
- stop.m_position = CSSPrimitiveValue::create(a->fValue, (CSSPrimitiveValue::UnitTypes)a->unit);
- a = args->next();
- }
- }
-
- result->addStop(stop);
- expectComma = true;
- }
+ if (!parseGradientColorStops(args, result.get(), expectComma))
+ return false;
Vector<CSSGradientColorStop>& stops = result->stops();
if (stops.isEmpty())
@@ -5191,14 +5163,25 @@ bool CSSParser::parseRadialGradient(RefPtr<CSSValue>& gradient, CSSGradientRepea
result->setEndHorizontalSize(horizontalSize);
result->setEndVerticalSize(verticalSize);
- // Now look for 0 or more color stops.
+ if (!parseGradientColorStops(args, result.get(), expectComma))
+ return false;
+
+ gradient = result.release();
+ return true;
+}
+
+bool CSSParser::parseGradientColorStops(CSSParserValueList* valueList, CSSGradientValue* gradient, bool expectComma)
+{
+ CSSParserValue* a = valueList->current();
+
+ // Now look for color stops.
while (a) {
// Look for the comma before the next stop.
if (expectComma) {
if (a->unit != CSSParserValue::Operator || a->iValue != ',')
return false;
- a = args->next();
+ a = valueList->next();
if (!a)
return false;
}
@@ -5209,24 +5192,20 @@ bool CSSParser::parseRadialGradient(RefPtr<CSSValue>& gradient, CSSGradientRepea
if (!stop.m_color)
return false;
- a = args->next();
+ a = valueList->next();
if (a) {
if (validUnit(a, FLength | FPercent, m_strict)) {
stop.m_position = CSSPrimitiveValue::create(a->fValue, (CSSPrimitiveValue::UnitTypes)a->unit);
- a = args->next();
+ a = valueList->next();
}
}
- result->addStop(stop);
+ gradient->addStop(stop);
expectComma = true;
}
- Vector<CSSGradientColorStop>& stops = result->stops();
- if (stops.isEmpty())
- return false;
-
- gradient = result.release();
- return true;
+ // Must have 2 or more stops to be valid.
+ return gradient->stops().size() > 1;
}
bool CSSParser::isGeneratedImageValue(CSSParserValue* val) const
@@ -6026,6 +6005,35 @@ void CSSParser::addNamespace(const AtomicString& prefix, const AtomicString& uri
m_styleSheet->addNamespace(this, prefix, uri);
}
+void CSSParser::updateSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSSelector* specifiers)
+{
+ AtomicString determinedNamespace = namespacePrefix != nullAtom && m_styleSheet ? m_styleSheet->determineNamespace(namespacePrefix) : m_defaultNamespace;
+ QualifiedName tag = QualifiedName(namespacePrefix, elementName, determinedNamespace);
+ if (!specifiers->isUnknownPseudoElement()) {
+ specifiers->m_tag = tag;
+ return;
+ }
+
+ if (Document* doc = document())
+ doc->setUsesDescendantRules(true);
+
+ specifiers->m_relation = CSSSelector::ShadowDescendant;
+ if (CSSSelector* history = specifiers->tagHistory()) {
+ history->m_tag = tag;
+ return;
+ }
+
+ // No need to create an extra element name selector if we are matching any element
+ // in any namespace.
+ if (elementName == starAtom && m_defaultNamespace == starAtom)
+ return;
+
+ CSSSelector* elementNameSelector = fastNew<CSSSelector>();
+ elementNameSelector->m_tag = tag;
+ specifiers->setTagHistory(elementNameSelector);
+}
+
+
CSSRule* CSSParser::createPageRule(CSSSelector* pageSelector)
{
// FIXME: Margin at-rules are ignored.
diff --git a/Source/WebCore/css/CSSParser.h b/Source/WebCore/css/CSSParser.h
index e60519e..496a21a 100644
--- a/Source/WebCore/css/CSSParser.h
+++ b/Source/WebCore/css/CSSParser.h
@@ -160,6 +160,7 @@ namespace WebCore {
bool parseDeprecatedGradient(RefPtr<CSSValue>&);
bool parseLinearGradient(RefPtr<CSSValue>&, CSSGradientRepeat repeating);
bool parseRadialGradient(RefPtr<CSSValue>&, CSSGradientRepeat repeating);
+ bool parseGradientColorStops(CSSParserValueList*, CSSGradientValue*, bool expectComma);
PassRefPtr<CSSValueList> parseTransform();
bool parseTransformOrigin(int propId, int& propId1, int& propId2, int& propId3, RefPtr<CSSValue>&, RefPtr<CSSValue>&, RefPtr<CSSValue>&);
@@ -203,6 +204,7 @@ namespace WebCore {
PassOwnPtr<MediaQuery> sinkFloatingMediaQuery(MediaQuery*);
void addNamespace(const AtomicString& prefix, const AtomicString& uri);
+ void updateSpecifiersWithElementName(const AtomicString& namespacePrefix, const AtomicString& elementName, CSSSelector*);
void invalidBlockHit();
diff --git a/Source/WebCore/css/CSSSegmentedFontFace.cpp b/Source/WebCore/css/CSSSegmentedFontFace.cpp
index cdabec1..1f6e20d 100644
--- a/Source/WebCore/css/CSSSegmentedFontFace.cpp
+++ b/Source/WebCore/css/CSSSegmentedFontFace.cpp
@@ -88,7 +88,7 @@ FontData* CSSSegmentedFontFace::getFontData(const FontDescription& fontDescripti
return 0;
FontTraitsMask desiredTraitsMask = fontDescription.traitsMask();
- unsigned hashKey = (fontDescription.computedPixelSize() << (FontTraitsMaskWidth + 1)) | ((fontDescription.orientation() == Vertical ? 1 : 0) << FontTraitsMaskWidth) | desiredTraitsMask;
+ unsigned hashKey = ((fontDescription.computedPixelSize() + 1) << (FontTraitsMaskWidth + 1)) | ((fontDescription.orientation() == Vertical ? 1 : 0) << FontTraitsMaskWidth) | desiredTraitsMask;
SegmentedFontData* fontData = m_fontDataTable.get(hashKey);
if (fontData)
diff --git a/Source/WebCore/css/CSSSelector.cpp b/Source/WebCore/css/CSSSelector.cpp
index c139dbf..400dd40 100644
--- a/Source/WebCore/css/CSSSelector.cpp
+++ b/Source/WebCore/css/CSSSelector.cpp
@@ -99,7 +99,10 @@ inline unsigned CSSSelector::specificityForOneSelector() const
case Contain:
case Begin:
case End:
- s += 0x100;
+ if (pseudoType() == PseudoNot && simpleSelector())
+ s += simpleSelector()->specificityForOneSelector();
+ else
+ s += 0x100;
case None:
break;
}
@@ -148,8 +151,6 @@ PseudoId CSSSelector::pseudoId(PseudoType type)
case PseudoInputSpeechButton:
return INPUT_SPEECH_BUTTON;
#endif
- case PseudoSliderThumb:
- return SLIDER_THUMB;
case PseudoSearchCancelButton:
return SEARCH_CANCEL_BUTTON;
case PseudoSearchDecoration:
@@ -417,7 +418,6 @@ static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap(
DEFINE_STATIC_LOCAL(AtomicString, searchResultsDecoration, ("-webkit-search-results-decoration"));
DEFINE_STATIC_LOCAL(AtomicString, searchResultsButton, ("-webkit-search-results-button"));
DEFINE_STATIC_LOCAL(AtomicString, selection, ("selection"));
- DEFINE_STATIC_LOCAL(AtomicString, sliderThumb, ("-webkit-slider-thumb"));
DEFINE_STATIC_LOCAL(AtomicString, target, ("target"));
DEFINE_STATIC_LOCAL(AtomicString, visited, ("visited"));
DEFINE_STATIC_LOCAL(AtomicString, windowInactive, ("window-inactive"));
@@ -546,7 +546,6 @@ static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap(
nameToPseudoType->set(searchResultsDecoration.impl(), CSSSelector::PseudoSearchResultsDecoration);
nameToPseudoType->set(searchResultsButton.impl(), CSSSelector::PseudoSearchResultsButton);
nameToPseudoType->set(selection.impl(), CSSSelector::PseudoSelection);
- nameToPseudoType->set(sliderThumb.impl(), CSSSelector::PseudoSliderThumb);
nameToPseudoType->set(target.impl(), CSSSelector::PseudoTarget);
nameToPseudoType->set(visited.impl(), CSSSelector::PseudoVisited);
nameToPseudoType->set(firstPage.impl(), CSSSelector::PseudoFirstPage);
@@ -634,7 +633,6 @@ void CSSSelector::extractPseudoType() const
case PseudoSearchResultsDecoration:
case PseudoSearchResultsButton:
case PseudoSelection:
- case PseudoSliderThumb:
element = true;
break;
case PseudoUnknown:
diff --git a/Source/WebCore/css/CSSSelector.h b/Source/WebCore/css/CSSSelector.h
index 353fb5e..1101eed 100644
--- a/Source/WebCore/css/CSSSelector.h
+++ b/Source/WebCore/css/CSSSelector.h
@@ -109,7 +109,8 @@ namespace WebCore {
Child,
DirectAdjacent,
IndirectAdjacent,
- SubSelector
+ SubSelector,
+ ShadowDescendant
};
enum PseudoType {
@@ -177,7 +178,6 @@ namespace WebCore {
PseudoNoButton,
PseudoSelection,
PseudoFileUploadButton,
- PseudoSliderThumb,
PseudoSearchCancelButton,
PseudoSearchDecoration,
PseudoSearchResultsDecoration,
@@ -277,6 +277,7 @@ namespace WebCore {
extractPseudoType();
return m_match == PseudoElement;
}
+ bool isUnknownPseudoElement() const;
Relation relation() const { return static_cast<Relation>(m_relation); }
@@ -344,6 +345,11 @@ namespace WebCore {
QualifiedName m_tag;
};
+inline bool CSSSelector::isUnknownPseudoElement() const
+{
+ return m_match == PseudoElement && m_pseudoType == PseudoUnknown;
+}
+
} // namespace WebCore
#endif // CSSSelector_h
diff --git a/Source/WebCore/css/CSSSelectorList.cpp b/Source/WebCore/css/CSSSelectorList.cpp
index 7f82ca4..7cb4df4 100644
--- a/Source/WebCore/css/CSSSelectorList.cpp
+++ b/Source/WebCore/css/CSSSelectorList.cpp
@@ -136,4 +136,20 @@ bool CSSSelectorList::selectorsNeedNamespaceResolution()
return forEachSelector(functor, this);
}
+class SelectorHasUnknownPseudoElementFunctor {
+public:
+ bool operator()(CSSSelector* selector)
+ {
+ return selector->isUnknownPseudoElement();
+ }
+};
+
+bool CSSSelectorList::hasUnknownPseudoElements() const
+{
+ SelectorHasUnknownPseudoElementFunctor functor;
+ return forEachSelector(functor, this);
+}
+
+
+
} // namespace WebCore
diff --git a/Source/WebCore/css/CSSSelectorList.h b/Source/WebCore/css/CSSSelectorList.h
index 9e40ef8..7adc6b9 100644
--- a/Source/WebCore/css/CSSSelectorList.h
+++ b/Source/WebCore/css/CSSSelectorList.h
@@ -44,6 +44,7 @@ public:
bool hasOneSelector() const { return m_selectorArray ? m_selectorArray->isLastInSelectorList() : false; }
bool selectorsNeedNamespaceResolution();
+ bool hasUnknownPseudoElements() const;
private:
void deleteSelectors();
diff --git a/Source/WebCore/css/CSSStyleSelector.cpp b/Source/WebCore/css/CSSStyleSelector.cpp
index 986591d..b98b90d 100644
--- a/Source/WebCore/css/CSSStyleSelector.cpp
+++ b/Source/WebCore/css/CSSStyleSelector.cpp
@@ -27,6 +27,9 @@
#include "CSSStyleSelector.h"
#include "Attribute.h"
+#include "ContentData.h"
+#include "CounterContent.h"
+#include "CursorList.h"
#include "CSSBorderImageValue.h"
#include "CSSCursorImageValue.h"
#include "CSSFontFaceRule.h"
@@ -76,6 +79,7 @@
#include "ScaleTransformOperation.h"
#include "SelectionController.h"
#include "Settings.h"
+#include "ShadowData.h"
#include "ShadowValue.h"
#include "SkewTransformOperation.h"
#include "StyleCachedImage.h"
@@ -424,6 +428,7 @@ public:
CSSRuleDataList* getIDRules(AtomicStringImpl* key) { return m_idRules.get(key); }
CSSRuleDataList* getClassRules(AtomicStringImpl* key) { return m_classRules.get(key); }
CSSRuleDataList* getTagRules(AtomicStringImpl* key) { return m_tagRules.get(key); }
+ CSSRuleDataList* getPseudoRules(AtomicStringImpl* key) { return m_pseudoRules.get(key); }
CSSRuleDataList* getUniversalRules() { return m_universalRules.get(); }
CSSRuleDataList* getPageRules() { return m_pageRules.get(); }
@@ -431,6 +436,7 @@ public:
AtomRuleMap m_idRules;
AtomRuleMap m_classRules;
AtomRuleMap m_tagRules;
+ AtomRuleMap m_pseudoRules;
OwnPtr<CSSRuleDataList> m_universalRules;
OwnPtr<CSSRuleDataList> m_pageRules;
unsigned m_ruleCount;
@@ -658,6 +664,10 @@ void CSSStyleSelector::matchRules(CSSRuleSet* rules, int& firstRuleIndex, int& l
for (size_t i = 0; i < size; ++i)
matchRulesForList(rules->getClassRules(classNames[i].impl()), firstRuleIndex, lastRuleIndex, includeEmptyRules);
}
+ if (!m_element->shadowPseudoId().isEmpty()) {
+ ASSERT(m_styledElement);
+ matchRulesForList(rules->getPseudoRules(m_element->shadowPseudoId().impl()), firstRuleIndex, lastRuleIndex, includeEmptyRules);
+ }
matchRulesForList(rules->getTagRules(m_element->localName().impl()), firstRuleIndex, lastRuleIndex, includeEmptyRules);
matchRulesForList(rules->getUniversalRules(), firstRuleIndex, lastRuleIndex, includeEmptyRules);
@@ -816,12 +826,7 @@ inline void CSSStyleSelector::initForStyleResolve(Element* e, RenderStyle* paren
{
m_checker.m_pseudoStyle = pseudoID;
- m_parentNode = e ? e->parentNode() : 0;
-
-#if ENABLE(SVG)
- if (!m_parentNode && e && e->isSVGElement() && e->isShadowRoot())
- m_parentNode = e->shadowHost();
-#endif
+ m_parentNode = e ? e->parentOrHostNode() : 0;
if (parentStyle)
m_parentStyle = parentStyle;
@@ -980,6 +985,7 @@ bool CSSStyleSelector::canShareStyleWithElement(Node* n) const
(s->hovered() == m_element->hovered()) &&
(s->active() == m_element->active()) &&
(s->focused() == m_element->focused()) &&
+ (s->shadowPseudoId() == m_element->shadowPseudoId()) &&
(s != s->document()->cssTarget() && m_element != m_element->document()->cssTarget()) &&
(s->fastGetAttribute(typeAttr) == m_element->fastGetAttribute(typeAttr)) &&
(s->fastGetAttribute(XMLNames::langAttr) == m_element->fastGetAttribute(XMLNames::langAttr)) &&
@@ -2051,6 +2057,14 @@ CSSStyleSelector::SelectorMatch CSSStyleSelector::SelectorChecker::checkSelector
!((RenderScrollbar::scrollbarForStyleResolve() || dynamicPseudo == SCROLLBAR_CORNER || dynamicPseudo == RESIZER) && sel->m_match == CSSSelector::PseudoClass))
return SelectorFailsCompletely;
return checkSelector(sel, e, selectorAttrs, dynamicPseudo, true, encounteredLink, elementStyle, elementParentStyle);
+ case CSSSelector::ShadowDescendant:
+ {
+ Node* shadowHostNode = e->shadowAncestorNode();
+ if (shadowHostNode == e || !shadowHostNode->isElementNode())
+ return SelectorFailsCompletely;
+ e = static_cast<Element*>(shadowHostNode);
+ return checkSelector(sel, e, selectorAttrs, dynamicPseudo, false, encounteredLink);
+ }
}
return SelectorFailsCompletely;
@@ -2703,12 +2717,8 @@ bool CSSStyleSelector::SelectorChecker::checkOneSelector(CSSSelector* sel, Eleme
if (Document* document = e->document())
document->setUsesFirstLetterRules(true);
}
- if (pseudoId != NOPSEUDO) {
+ if (pseudoId != NOPSEUDO)
dynamicPseudo = pseudoId;
- return true;
- }
- ASSERT_NOT_REACHED();
- return false;
}
// ### add the rest of the checks...
return true;
@@ -2829,12 +2839,17 @@ void CSSRuleSet::addRule(CSSStyleRule* rule, CSSSelector* sel)
return;
}
+ if (sel->isUnknownPseudoElement()) {
+ addToRuleSet(sel->m_value.impl(), m_pseudoRules, rule, sel);
+ return;
+ }
+
const AtomicString& localName = sel->m_tag.localName();
if (localName != starAtom) {
addToRuleSet(localName.impl(), m_tagRules, rule, sel);
return;
}
-
+
// Just put it in the universal rule set.
if (!m_universalRules)
m_universalRules = adoptPtr(new CSSRuleDataList(m_ruleCount++, rule, sel));
diff --git a/Source/WebCore/css/CSSValue.h b/Source/WebCore/css/CSSValue.h
index ec1b15e..d1464ca 100644
--- a/Source/WebCore/css/CSSValue.h
+++ b/Source/WebCore/css/CSSValue.h
@@ -21,8 +21,6 @@
#ifndef CSSValue_h
#define CSSValue_h
-#include "StyleBase.h"
-
#include "CSSParserValues.h"
#include "KURLHash.h"
#include <wtf/ListHashSet.h>
diff --git a/Source/WebCore/css/WebKitCSSMatrix.cpp b/Source/WebCore/css/WebKitCSSMatrix.cpp
index a4af7f8..7d60f8c 100644
--- a/Source/WebCore/css/WebKitCSSMatrix.cpp
+++ b/Source/WebCore/css/WebKitCSSMatrix.cpp
@@ -30,6 +30,7 @@
#include "CSSStyleSelector.h"
#include "CSSMutableStyleDeclaration.h"
#include "CSSPropertyNames.h"
+#include "CSSValueKeywords.h"
#include "ExceptionCode.h"
#include "RenderStyle.h"
#include <wtf/MathExtras.h>
@@ -57,9 +58,14 @@ void WebKitCSSMatrix::setMatrixValue(const String& string, ExceptionCode& ec)
if (p.parseValue(styleDeclaration.get(), CSSPropertyWebkitTransform, string, true)) {
// Convert to TransformOperations. This can fail if a property
// requires style (i.e., param uses 'ems' or 'exs')
- PassRefPtr<CSSValue> val = styleDeclaration->getPropertyCSSValue(CSSPropertyWebkitTransform);
+ RefPtr<CSSValue> value = styleDeclaration->getPropertyCSSValue(CSSPropertyWebkitTransform);
+
+ // Check for a "none" or empty transform. In these cases we can use the default identity matrix.
+ if (!value || (value->isPrimitiveValue() && (static_cast<CSSPrimitiveValue*>(value.get()))->getIdent() == CSSValueNone))
+ return;
+
TransformOperations operations;
- if (!CSSStyleSelector::createTransformOperations(val.get(), 0, 0, operations)) {
+ if (!CSSStyleSelector::createTransformOperations(value.get(), 0, 0, operations)) {
ec = SYNTAX_ERR;
return;
}
diff --git a/Source/WebCore/css/html.css b/Source/WebCore/css/html.css
index 823f5f3..3c75559 100644
--- a/Source/WebCore/css/html.css
+++ b/Source/WebCore/css/html.css
@@ -2,7 +2,7 @@
* The default style sheet used to render HTML.
*
* Copyright (C) 2000 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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
@@ -474,6 +474,7 @@ input[type="range"] {
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: sliderthumb-horizontal;
+ display: block;
}
input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled,
@@ -536,10 +537,6 @@ select[size="1"] {
white-space: pre;
}
-datalist {
- display: none;
-}
-
optgroup {
font-weight: bolder;
}
@@ -552,6 +549,59 @@ output {
display: inline;
}
+/* form validation message bubble */
+
+::-webkit-validation-bubble {
+ display: block;
+ z-index: 2147483647;
+ position: absolute;
+ opacity: 0.9;
+ line-height: 0;
+ -webkit-transition: opacity 05.5s ease;
+}
+
+::-webkit-validation-bubble-message {
+ display: block;
+ font: message-box;
+ min-width: 50px;
+ max-width: 200px;
+ border: solid 2px black;
+ background: -webkit-gradient(linear, left top, left bottom, from(#fbf9f9), to(#f0e4e4));
+ padding: 8px;
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: 4px 4px 4px rgba(204,204,204,0.7);
+ line-height: normal;
+}
+
+::-webkit-validation-bubble-top-outer-arrow {
+ display: inline-block;
+ position: relative;
+ left: 14px;
+ height: 0;
+ width: 0;
+ border-style: solid;
+ border-width: 14px;
+ border-bottom-color: black;
+ border-right-color: transparent;
+ border-top-width: 0;
+ border-left-width: 0;
+}
+
+::-webkit-validation-bubble-top-inner-arrow {
+ display: inline-block;
+ height: 0;
+ width: 0;
+ border-style: solid;
+ border-width: 10px; /* <border box width of outer-arrow> - <message border width> * 2 */
+ border-bottom-color: #fbf9f9;
+ border-right-color: transparent;
+ border-top-width: 0;
+ border-left-width: 0;
+ position: relative;
+ top: 2px; /* <message border width> */
+ left: 2px; /* <outer-arrow position> + <message border width> - <border box width of outer-arrow> */
+}
+
/* meter */
meter {
@@ -738,6 +788,7 @@ ruby, rt {
rt {
line-height: normal;
+ -webkit-text-emphasis: none;
}
ruby > rt {
diff --git a/Source/WebCore/css/mediaControlsGtk.css b/Source/WebCore/css/mediaControlsGtk.css
index 18b7dcc..b4637f7 100644
--- a/Source/WebCore/css/mediaControlsGtk.css
+++ b/Source/WebCore/css/mediaControlsGtk.css
@@ -26,7 +26,17 @@ audio {
}
audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel {
- height: 20px;
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: end;
+ -webkit-user-select: none;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ z-index: 0;
+ overflow: hidden;
+ text-align: right;
+ height: 100%;
}
audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button {
@@ -75,3 +85,21 @@ audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-f
width: 20px;
height: 20px;
}
+
+audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container {
+ -webkit-appearance: media-volume-slider-container;
+ position: absolute;
+ height: 100px;
+ width: 20px;
+}
+
+audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider {
+ -webkit-appearance: media-volume-slider;
+ display: inline;
+ position: absolute;
+ width: 14px;
+ height: 95px;
+
+ left: 3px;
+ top: 5px;
+} \ No newline at end of file
diff --git a/Source/WebCore/css/mediaControlsQtFullscreen.css b/Source/WebCore/css/mediaControlsQtFullscreen.css
new file mode 100644
index 0000000..d191331
--- /dev/null
+++ b/Source/WebCore/css/mediaControlsQtFullscreen.css
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2011 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.
+ *
+ * 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,
+ * 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.
+ */
+
+audio {
+ height: 34px;
+ width: 400px;
+}
+
+audio::-webkit-media-controls-panel {
+ display: -webkit-box;
+ -webkit-box-orient: horizontal;
+ -webkit-box-align: end;
+ -webkit-user-select: none;
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ z-index: 0;
+ overflow: visible;
+ height: 100%;
+ text-align: right;
+}
+
+video::-webkit-media-controls-panel {
+/* The control panel is only play button for full screen */
+ display: -webkit-box;
+ -webkit-box-align: center;
+ -webkit-box-pack: center;
+ width: 100%;
+ height: 100%;
+}
+
+video:-webkit-full-page-media::-webkit-media-controls-panel {
+ display: none;
+}
+
+audio::-webkit-media-controls-mute-button {
+ width: 12px;
+ height: 12px;
+ padding: 6px;
+ margin: 5px 5px 5px 3px;
+}
+
+video::-webkit-media-controls-mute-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-play-button {
+ width: 9px;
+ height: 12px;
+ padding: 6px 12px 6px 11px;
+ margin: 5px 3px 5px 5px;
+}
+
+video::-webkit-media-controls-play-button {
+ display: -webkit-box;
+ -webkit-box-align: center;
+ -webkit-box-pack: center;
+ width: 50px;
+ height: 50px;
+ padding: 20px;
+}
+
+audio::-webkit-media-controls-timeline-container {
+ height: 34px;
+}
+
+video::-webkit-media-controls-timeline-container {
+ display: none;
+}
+
+audio::-webkit-media-controls-current-time-display {
+ -webkit-appearance: media-current-time-display;
+ -webkit-user-select: none;
+ display: inline-block;
+ height: 12px;
+ padding: 6px;
+ margin: 5px 3px;
+
+ overflow: hidden;
+ cursor: default;
+
+ text-align: center;
+ font-size: 10px;
+ font-family: Verdana;
+ font-weight: bold;
+ color: white;
+}
+
+video::-webkit-media-controls-current-time-display {
+ -webkit-appearance: media-current-time-display;
+ -webkit-user-select: none;
+ display: none;
+}
+
+audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display {
+ display: none;
+}
+
+audio::-webkit-media-controls-timeline {
+ height: 12px;
+ padding: 6px 8px;
+ margin: 5px 3px;
+}
+
+video::-webkit-media-controls-timeline {
+ display: none;
+}
+
+audio::-webkit-media-controls-volume-slider-container {
+ -webkit-appearance: media-volume-slider-container;
+ position: absolute;
+ height: 103px;
+ width: 24px;
+}
+
+video::-webkit-media-controls-volume-slider-container {
+ -webkit-appearance: media-volume-slider-container;
+ display: none;
+}
+
+audio::-webkit-media-controls-volume-slider {
+ -webkit-appearance: media-volume-slider;
+ display: inline;
+ position: absolute;
+
+ width: 12px;
+ padding: 6px;
+ height: 88px;
+ margin: 0 0 3px 0;
+}
+
+video::-webkit-media-controls-volume-slider {
+ -webkit-appearance: media-volume-slider;
+ display: none;
+}
+
+audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-fullscreen-button {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ width: 12px;
+ height: 12px;
+ padding: 6px;
+ margin: 5px 5px 5px 3px;
+}
+
+video::-webkit-media-controls-fullscreen-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button {
+ display: none;
+}
+
+audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button {
+ display: none;
+}
diff --git a/Source/WebCore/css/themeQtMobile.css b/Source/WebCore/css/themeQtMobile.css
index f6327a9..27be523 100644
--- a/Source/WebCore/css/themeQtMobile.css
+++ b/Source/WebCore/css/themeQtMobile.css
@@ -128,3 +128,7 @@ input[type="url"]:active,
textarea:active {
background: ButtonShadow;
}
+
+video {
+ background-color: #000000;
+}
diff --git a/Source/WebCore/dom/BeforeLoadEvent.h b/Source/WebCore/dom/BeforeLoadEvent.h
index f60e438..fc5814a 100644
--- a/Source/WebCore/dom/BeforeLoadEvent.h
+++ b/Source/WebCore/dom/BeforeLoadEvent.h
@@ -28,6 +28,7 @@
#define BeforeLoadEvent_h
#include "Event.h"
+#include "EventNames.h"
namespace WebCore {
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index 0c865c9..1787b52 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -92,7 +92,6 @@
#include "HitTestRequest.h"
#include "HitTestResult.h"
#include "ImageLoader.h"
-#include "InspectorController.h"
#include "InspectorInstrumentation.h"
#include "KeyboardEvent.h"
#include "Logging.h"
@@ -938,9 +937,8 @@ PassRefPtr<Node> Document::adoptNode(PassRefPtr<Node> source, ExceptionCode& ec)
if (source->parentNode())
source->parentNode()->removeChild(source.get(), ec);
}
-
- for (Node* node = source.get(); node; node = node->traverseNextNode(source.get()))
- node->setDocument(this);
+
+ source->setDocumentRecursively(this);
return source;
}
@@ -1196,6 +1194,16 @@ KURL Document::baseURI() const
return m_baseURL;
}
+void Document::setContent(const String& content)
+{
+ removeAllChildren();
+
+ open();
+ m_parser->append(content);
+ m_parser->finish();
+ close();
+}
+
// FIXME: We need to discuss the DOM API here at some point. Ideas:
// * making it receive a rect as parameter, i.e. nodesFromRect(x, y, w, h);
// * making it receive the expading size of each direction separately,
@@ -3451,11 +3459,13 @@ void Document::nodeWillBeRemoved(Node* n)
ASSERT(n);
if (n->contains(m_fullScreenElement.get())) {
ASSERT(n != documentElement());
+
+ if (m_fullScreenRenderer)
+ m_fullScreenRenderer->remove();
+
setFullScreenRenderer(0);
m_fullScreenElement = documentElement();
- m_fullScreenElement->setNeedsStyleRecalc();
- m_fullScreenElement->detach();
- updateStyleIfNeeded();
+ recalcStyle(Force);
m_fullScreenChangeDelayTimer.startOneShot(0);
}
#endif
@@ -4309,13 +4319,7 @@ void Document::finishedParsing()
f->loader()->finishedParsing();
-#if ENABLE(INSPECTOR)
- if (!page())
- return;
-
- if (InspectorController* controller = page()->inspectorController())
- controller->mainResourceFiredDOMContentEvent(f->loader()->documentLoader(), url());
-#endif
+ InspectorInstrumentation::mainResourceFiredDOMContentEvent(f, url());
}
}
@@ -4866,13 +4870,6 @@ bool Document::isXHTMLMPDocument() const
}
#endif
-#if ENABLE(INSPECTOR)
-InspectorController* Document::inspectorController() const
-{
- return page() ? page()->inspectorController() : 0;
-}
-#endif
-
#if ENABLE(FULLSCREEN_API)
void Document::webkitRequestFullScreenForElement(Element* element, unsigned short flags)
{
diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h
index e114385..e70063a 100644
--- a/Source/WebCore/dom/Document.h
+++ b/Source/WebCore/dom/Document.h
@@ -91,7 +91,6 @@ class HTMLInputElement;
class HTMLMapElement;
class HitTestRequest;
class HitTestResult;
-class InspectorController;
class IntPoint;
class DOMWrapperWorld;
class JSNode;
@@ -349,6 +348,8 @@ public:
void setCharset(const String&);
+ void setContent(const String&);
+
String contentLanguage() const { return m_contentLanguage; }
void setContentLanguage(const String& lang) { m_contentLanguage = lang; }
@@ -500,9 +501,6 @@ public:
Frame* frame() const { return m_frame; } // can be NULL
Page* page() const; // can be NULL
Settings* settings() const; // can be NULL
-#if ENABLE(INSPECTOR)
- virtual InspectorController* inspectorController() const; // can be NULL
-#endif
PassRefPtr<Range> createRange();
diff --git a/Source/WebCore/dom/Document.idl b/Source/WebCore/dom/Document.idl
index 89f53ec..8d7a71b 100644
--- a/Source/WebCore/dom/Document.idl
+++ b/Source/WebCore/dom/Document.idl
@@ -333,7 +333,7 @@ module core {
in long ScreenX,
in long screenY)
raises (DOMException);
- [ReturnsNew, EnabledAtRuntime] TouchList createTouchList()
+ [ReturnsNew, EnabledAtRuntime, Custom] TouchList createTouchList()
raises (DOMException);
#endif
diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index 4c10a32..5d91db7 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -1497,7 +1497,7 @@ void Element::updateFocusAppearance(bool /*restorePreviousSelection*/)
return;
// FIXME: We should restore the previous selection if there is one.
- VisibleSelection newSelection = VisibleSelection(Position(this, 0), DOWNSTREAM);
+ VisibleSelection newSelection = VisibleSelection(firstPositionInNode(this), DOWNSTREAM);
if (frame->selection()->shouldChangeSelection(newSelection)) {
frame->selection()->setSelection(newSelection);
diff --git a/Source/WebCore/dom/Element.h b/Source/WebCore/dom/Element.h
index e552376..5e6c047 100644
--- a/Source/WebCore/dom/Element.h
+++ b/Source/WebCore/dom/Element.h
@@ -230,6 +230,7 @@ public:
Node* shadowRoot();
void setShadowRoot(PassRefPtr<Node>);
+ virtual AtomicString shadowPseudoId() const;
RenderStyle* computedStyle(PseudoId = NOPSEUDO);
@@ -507,6 +508,11 @@ inline void Element::setIdAttribute(const AtomicString& value)
setAttribute(document()->idAttributeName(), value);
}
+inline AtomicString Element::shadowPseudoId() const
+{
+ return AtomicString();
+}
+
} // namespace
#endif
diff --git a/Source/WebCore/dom/Event.cpp b/Source/WebCore/dom/Event.cpp
index a949fd5..0a1538b 100644
--- a/Source/WebCore/dom/Event.cpp
+++ b/Source/WebCore/dom/Event.cpp
@@ -22,6 +22,7 @@
#include "config.h"
#include "Event.h"
+#include "EventTarget.h"
#include "UserGestureIndicator.h"
#include <wtf/CurrentTime.h>
diff --git a/Source/WebCore/dom/Event.h b/Source/WebCore/dom/Event.h
index f05d36c..8562cad 100644
--- a/Source/WebCore/dom/Event.h
+++ b/Source/WebCore/dom/Event.h
@@ -25,13 +25,13 @@
#define Event_h
#include "DOMTimeStamp.h"
-#include "EventTarget.h"
#include <wtf/RefCounted.h>
#include <wtf/text/AtomicString.h>
namespace WebCore {
class Clipboard;
+ class EventTarget;
class Event : public RefCounted<Event> {
public:
diff --git a/Source/WebCore/dom/EventQueue.cpp b/Source/WebCore/dom/EventQueue.cpp
index 27cd802..a43929e 100644
--- a/Source/WebCore/dom/EventQueue.cpp
+++ b/Source/WebCore/dom/EventQueue.cpp
@@ -48,12 +48,26 @@ void EventQueue::enqueueEvent(PassRefPtr<Event> event)
m_pendingEventTimer.startOneShot(0);
}
+void EventQueue::enqueueScrollEvent(PassRefPtr<Node> target, ScrollEventTargetType targetType)
+{
+ if (!m_nodesWithQueuedScrollEvents.add(target.get()).second)
+ return;
+
+ // Per the W3C CSSOM View Module, scroll events fired at the document should bubble, others should not.
+ bool canBubble = targetType == ScrollEventDocumentTarget;
+ RefPtr<Event> scrollEvent = Event::create(eventNames().scrollEvent, canBubble, false /* non cancelleable */);
+ scrollEvent->setTarget(target);
+ enqueueEvent(scrollEvent.release());
+}
+
void EventQueue::pendingEventTimerFired(Timer<EventQueue>*)
{
ASSERT(!m_pendingEventTimer.isActive());
Vector<RefPtr<Event> > queuedEvents;
queuedEvents.swap(m_queuedEvents);
+
+ m_nodesWithQueuedScrollEvents.clear();
for (size_t i = 0; i < queuedEvents.size(); i++)
dispatchEvent(queuedEvents[i].release());
diff --git a/Source/WebCore/dom/EventQueue.h b/Source/WebCore/dom/EventQueue.h
index 8dd7ec9..7f8d5fb 100644
--- a/Source/WebCore/dom/EventQueue.h
+++ b/Source/WebCore/dom/EventQueue.h
@@ -28,6 +28,7 @@
#define EventQueue_h
#include "Timer.h"
+#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
@@ -41,9 +42,15 @@ class EventQueue {
WTF_MAKE_NONCOPYABLE(EventQueue);
public:
+ enum ScrollEventTargetType {
+ ScrollEventDocumentTarget,
+ ScrollEventElementTarget
+ };
+
EventQueue();
void enqueueEvent(PassRefPtr<Event>);
+ void enqueueScrollEvent(PassRefPtr<Node>, ScrollEventTargetType);
private:
void pendingEventTimerFired(Timer<EventQueue>*);
@@ -51,6 +58,7 @@ private:
Timer<EventQueue> m_pendingEventTimer;
Vector<RefPtr<Event> > m_queuedEvents;
+ HashSet<Node*> m_nodesWithQueuedScrollEvents;
};
}
diff --git a/Source/WebCore/dom/ExceptionCode.cpp b/Source/WebCore/dom/ExceptionCode.cpp
index 7e7e0c9..1118a1a 100644
--- a/Source/WebCore/dom/ExceptionCode.cpp
+++ b/Source/WebCore/dom/ExceptionCode.cpp
@@ -222,7 +222,8 @@ static const char* const idbDatabaseExceptionNames[] = {
"RECOVERABLE_ERR",
"TRANSIENT_ERR",
"TIMEOUT_ERR",
- "DEADLOCK_ERR"
+ "DEADLOCK_ERR",
+ "READ_ONLY_ERR"
};
static const char* const idbDatabaseExceptionDescriptions[] = {
@@ -236,7 +237,8 @@ static const char* const idbDatabaseExceptionDescriptions[] = {
"RECOVERABLE_ERR", // FIXME: This isn't even used.
"TRANSIENT_ERR", // FIXME: This isn't even used.
"TIMEOUT_ERR", // This can't be thrown.
- "DEADLOCK_ERR" // This can't be thrown.
+ "DEADLOCK_ERR", // This can't be thrown.
+ "Write operations cannot be preformed on a read-only transaction."
};
#endif
diff --git a/Source/WebCore/dom/Node.cpp b/Source/WebCore/dom/Node.cpp
index 8c12285..1998c8c 100644
--- a/Source/WebCore/dom/Node.cpp
+++ b/Source/WebCore/dom/Node.cpp
@@ -756,6 +756,21 @@ bool Node::hasNonEmptyBoundingBox() const
return false;
}
+void Node::setDocumentRecursively(Document* document)
+{
+ // FIXME: To match Gecko, we should do this for nodes that are already in the document as well.
+ if (this->document() == document || this->inDocument())
+ return;
+
+ for (Node* node = this; node; node = node->traverseNextNode(this)) {
+ node->setDocument(document);
+ if (!node->isElementNode())
+ continue;
+ if (Node* shadow = toElement(node)->shadowRoot())
+ shadow->setDocumentRecursively(document);
+ }
+}
+
inline void Node::setStyleChange(StyleChangeType changeType)
{
m_nodeFlags = (m_nodeFlags & ~StyleChangeMask) | changeType;
@@ -998,7 +1013,7 @@ void Node::removeCachedLabelsNodeList(DynamicNodeList* list)
data->m_labelsNodeListCache = 0;
}
-Node *Node::traverseNextNode(const Node *stayWithin) const
+Node* Node::traverseNextNode(const Node* stayWithin) const
{
if (firstChild())
return firstChild();
@@ -1014,7 +1029,7 @@ Node *Node::traverseNextNode(const Node *stayWithin) const
return 0;
}
-Node *Node::traverseNextSibling(const Node *stayWithin) const
+Node* Node::traverseNextSibling(const Node* stayWithin) const
{
if (this == stayWithin)
return 0;
@@ -1038,7 +1053,7 @@ Node* Node::traverseNextNodePostOrder() const
return next;
}
-Node *Node::traversePreviousNode(const Node *stayWithin) const
+Node* Node::traversePreviousNode(const Node* stayWithin) const
{
if (this == stayWithin)
return 0;
@@ -1051,7 +1066,7 @@ Node *Node::traversePreviousNode(const Node *stayWithin) const
return parentNode();
}
-Node *Node::traversePreviousNodePostOrder(const Node *stayWithin) const
+Node* Node::traversePreviousNodePostOrder(const Node* stayWithin) const
{
if (lastChild())
return lastChild();
@@ -1163,15 +1178,6 @@ static void checkAcceptChild(Node* newParent, Node* newChild, ExceptionCode& ec)
}
}
-static void transferOwnerDocument(Document* newDocument, Node* root)
-{
- // FIXME: To match Gecko, we should do this for nodes that are already in the document as well.
- if (root->document() != newDocument && !root->inDocument()) {
- for (Node* node = root; node; node = node->traverseNextNode(root))
- node->setDocument(newDocument);
- }
-}
-
void Node::checkReplaceChild(Node* newChild, Node* oldChild, ExceptionCode& ec)
{
checkAcceptChild(this, newChild, ec);
@@ -1183,7 +1189,7 @@ void Node::checkReplaceChild(Node* newChild, Node* oldChild, ExceptionCode& ec)
return;
}
- transferOwnerDocument(document(), newChild);
+ newChild->setDocumentRecursively(document());
}
void Node::checkAddChild(Node *newChild, ExceptionCode& ec)
@@ -1197,7 +1203,7 @@ void Node::checkAddChild(Node *newChild, ExceptionCode& ec)
return;
}
- transferOwnerDocument(document(), newChild);
+ newChild->setDocumentRecursively(document());
}
bool Node::isDescendantOf(const Node *other) const
@@ -1379,8 +1385,10 @@ void Node::createRendererIfNeeded()
document()->setFullScreenRenderer(fullscreenRenderer);
}
#endif
-
- if (parentRenderer && parentRenderer->canHaveChildren() && parent->childShouldCreateRenderer(this)) {
+
+ // FIXME: Ignoreing canHaveChildren() in a case of isShadowRoot() might be wrong.
+ // See https://bugs.webkit.org/show_bug.cgi?id=52423
+ if (parentRenderer && (parentRenderer->canHaveChildren() || isShadowRoot()) && parent->childShouldCreateRenderer(this)) {
RefPtr<RenderStyle> style = styleForRenderer();
if (rendererIsNeeded(style.get())) {
if (RenderObject* r = createRenderer(document()->renderArena(), style.get())) {
@@ -1617,7 +1625,7 @@ PassRefPtr<Element> Node::querySelector(const String& selectors, ExceptionCode&
CSSSelectorList querySelectorList;
p.parseSelector(selectors, document(), querySelectorList);
- if (!querySelectorList.first()) {
+ if (!querySelectorList.first() || querySelectorList.hasUnknownPseudoElements()) {
ec = SYNTAX_ERR;
return 0;
}
@@ -1664,7 +1672,7 @@ PassRefPtr<NodeList> Node::querySelectorAll(const String& selectors, ExceptionCo
CSSSelectorList querySelectorList;
p.parseSelector(selectors, document(), querySelectorList);
- if (!querySelectorList.first()) {
+ if (!querySelectorList.first() || querySelectorList.hasUnknownPseudoElements()) {
ec = SYNTAX_ERR;
return 0;
}
@@ -2685,6 +2693,22 @@ static const EventContext* topEventContext(const Vector<EventContext>& ancestors
return ancestors.isEmpty() ? 0 : &ancestors.last();
}
+static EventDispatchBehavior determineDispatchBehavior(Event* event)
+{
+ // Per XBL 2.0 spec, mutation events should never cross shadow DOM boundary:
+ // http://dev.w3.org/2006/xbl2/#event-flow-and-targeting-across-shadow-s
+ if (event->isMutationEvent())
+ return StayInsideShadowDOM;
+
+ // WebKit never allowed selectstart event to cross the the shadow DOM boundary.
+ // Changing this breaks existing sites.
+ // See https://bugs.webkit.org/show_bug.cgi?id=52195 for details.
+ if (event->type() == eventNames().selectstartEvent)
+ return StayInsideShadowDOM;
+
+ return RetargetEvent;
+}
+
bool Node::dispatchGenericEvent(PassRefPtr<Event> prpEvent)
{
RefPtr<Event> event(prpEvent);
@@ -2699,7 +2723,7 @@ bool Node::dispatchGenericEvent(PassRefPtr<Event> prpEvent)
RefPtr<Node> thisNode(this);
RefPtr<EventTarget> originalTarget = event->target();
Vector<EventContext> ancestors;
- getEventAncestors(ancestors, originalTarget.get(), event->isMutationEvent() ? StayInsideShadowDOM : RetargetEvent);
+ getEventAncestors(ancestors, originalTarget.get(), determineDispatchBehavior(event.get()));
WindowEventContext windowContext(event.get(), this, topEventContext(ancestors));
diff --git a/Source/WebCore/dom/Node.h b/Source/WebCore/dom/Node.h
index 31a4a65..bc33e22 100644
--- a/Source/WebCore/dom/Node.h
+++ b/Source/WebCore/dom/Node.h
@@ -372,7 +372,7 @@ public:
// argument is non-null, the traversal will stop once the specified node is reached.
// This can be used to restrict traversal to a particular sub-tree.
Node* traverseNextNode(const Node* stayWithin = 0) const;
-
+
// Like traverseNextNode, but skips children and starts with the next sibling.
Node* traverseNextSibling(const Node* stayWithin = 0) const;
@@ -656,6 +656,7 @@ private:
void markCachedNodeListsSlow(JSC::MarkStack&, JSC::JSGlobalData&);
#endif
+ void setDocumentRecursively(Document*);
void setStyleChange(StyleChangeType);
// Used to share code between lazyAttach and setNeedsStyleRecalc.
diff --git a/Source/WebCore/dom/Range.cpp b/Source/WebCore/dom/Range.cpp
index 1f15f26..a41fc49 100644
--- a/Source/WebCore/dom/Range.cpp
+++ b/Source/WebCore/dom/Range.cpp
@@ -794,13 +794,8 @@ PassRefPtr<DocumentFragment> Range::processContents(ActionType action, Exception
Node* n = m_end.container()->firstChild();
if (n && m_end.offset()) {
NodeVector nodes;
- int i = 0;
- do {
+ for (int i = 0; i < m_end.offset() && n; i++, n = n->nextSibling())
nodes.append(n);
- if (!n->nextSibling())
- break;
- n = n->nextSibling();
- } while (i + 1 < m_end.offset());
for (int i = nodes.size() - 1; i >= 0; i--) {
n = nodes[i].get();
if (action == EXTRACT_CONTENTS)
diff --git a/Source/WebCore/dom/ScriptExecutionContext.h b/Source/WebCore/dom/ScriptExecutionContext.h
index 12eb776..e473a4b 100644
--- a/Source/WebCore/dom/ScriptExecutionContext.h
+++ b/Source/WebCore/dom/ScriptExecutionContext.h
@@ -57,9 +57,6 @@ namespace WebCore {
#endif
class MessagePort;
class SecurityOrigin;
-#if ENABLE(INSPECTOR)
- class InspectorController;
-#endif
class ScriptExecutionContext {
public:
@@ -87,9 +84,6 @@ namespace WebCore {
virtual String userAgent(const KURL&) const = 0;
SecurityOrigin* securityOrigin() const { return m_securityOrigin.get(); }
-#if ENABLE(INSPECTOR)
- virtual InspectorController* inspectorController() const { return 0; }
-#endif
virtual void reportException(const String& errorMessage, int lineNumber, const String& sourceURL) = 0;
virtual void addMessage(MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceURL) = 0;
diff --git a/Source/WebCore/dom/StyleElement.cpp b/Source/WebCore/dom/StyleElement.cpp
index e9878a6..8f37275 100644
--- a/Source/WebCore/dom/StyleElement.cpp
+++ b/Source/WebCore/dom/StyleElement.cpp
@@ -30,6 +30,13 @@
namespace WebCore {
+static bool isValidStyleChild(Node* node)
+{
+ ASSERT(node);
+ Node::NodeType nodeType = node->nodeType();
+ return nodeType == Node::TEXT_NODE || nodeType == Node::CDATA_SECTION_NODE;
+}
+
StyleElement::StyleElement(Document* document, bool createdByParser)
: m_createdByParser(createdByParser)
, m_loading(false)
@@ -94,6 +101,7 @@ void StyleElement::process(Element* e)
unsigned resultLength = 0;
for (Node* c = e->firstChild(); c; c = c->nextSibling()) {
+<<<<<<< HEAD
Node::NodeType nodeType = c->nodeType();
if (nodeType == Node::TEXT_NODE || nodeType == Node::CDATA_SECTION_NODE || nodeType == Node::COMMENT_NODE) {
unsigned length = c->nodeValue().length();
@@ -101,14 +109,17 @@ void StyleElement::process(Element* e)
CRASH();
resultLength += length;
}
+=======
+ if (isValidStyleChild(c))
+ resultLength += c->nodeValue().length();
+>>>>>>> WebKit.org @ r75993
}
UChar* text;
String sheetText = String::createUninitialized(resultLength, text);
UChar* p = text;
for (Node* c = e->firstChild(); c; c = c->nextSibling()) {
- Node::NodeType nodeType = c->nodeType();
- if (nodeType == Node::TEXT_NODE || nodeType == Node::CDATA_SECTION_NODE || nodeType == Node::COMMENT_NODE) {
+ if (isValidStyleChild(c)) {
String nodeValue = c->nodeValue();
unsigned nodeLength = nodeValue.length();
memcpy(p, nodeValue.characters(), nodeLength * sizeof(UChar));
diff --git a/Source/WebCore/dom/StyleElement.h b/Source/WebCore/dom/StyleElement.h
index 05c07c5..4356c17 100644
--- a/Source/WebCore/dom/StyleElement.h
+++ b/Source/WebCore/dom/StyleElement.h
@@ -37,7 +37,7 @@ protected:
virtual const AtomicString& type() const = 0;
virtual const AtomicString& media() const = 0;
- StyleSheet* sheet() { return m_sheet.get(); }
+ StyleSheet* sheet() const { return m_sheet.get(); }
bool isLoading() const;
bool sheetLoaded(Document*);
diff --git a/Source/WebCore/dom/StyledElement.cpp b/Source/WebCore/dom/StyledElement.cpp
index 9a7c9c8..d6a532f 100644
--- a/Source/WebCore/dom/StyledElement.cpp
+++ b/Source/WebCore/dom/StyledElement.cpp
@@ -25,10 +25,11 @@
#include "StyledElement.h"
#include "Attribute.h"
-#include "ClassList.h"
+#include "CSSMutableStyleDeclaration.h"
#include "CSSStyleSelector.h"
#include "CSSStyleSheet.h"
#include "CSSValueKeywords.h"
+#include "ClassList.h"
#include "DOMTokenList.h"
#include "Document.h"
#include "HTMLNames.h"
diff --git a/Source/WebCore/dom/StyledElement.h b/Source/WebCore/dom/StyledElement.h
index 8040dbf..32fc4c2 100644
--- a/Source/WebCore/dom/StyledElement.h
+++ b/Source/WebCore/dom/StyledElement.h
@@ -25,7 +25,6 @@
#ifndef StyledElement_h
#define StyledElement_h
-#include "CSSMutableStyleDeclaration.h"
#include "Element.h"
#include "MappedAttributeEntry.h"
@@ -33,6 +32,7 @@ namespace WebCore {
class Attribute;
class CSSMappedAttributeDeclaration;
+class CSSMutableStyleDeclaration;
class StyledElement : public Element {
public:
diff --git a/Source/WebCore/dom/TouchEvent.cpp b/Source/WebCore/dom/TouchEvent.cpp
index 88d3e6f..225e3ae 100644
--- a/Source/WebCore/dom/TouchEvent.cpp
+++ b/Source/WebCore/dom/TouchEvent.cpp
@@ -61,6 +61,9 @@ void TouchEvent::initTouchEvent(TouchList* touches, TouchList* targetTouches,
initUIEvent(type, true, true, view, 0);
+ m_touches = touches;
+ m_targetTouches = targetTouches;
+ m_changedTouches = changedTouches;
m_screenX = screenX;
m_screenY = screenY;
m_ctrlKey = ctrlKey;
diff --git a/Source/WebCore/dom/XMLDocumentParser.cpp b/Source/WebCore/dom/XMLDocumentParser.cpp
index 68c8dd9..a5d3c08 100644
--- a/Source/WebCore/dom/XMLDocumentParser.cpp
+++ b/Source/WebCore/dom/XMLDocumentParser.cpp
@@ -116,13 +116,9 @@ void XMLDocumentParser::clearCurrentNodeStack()
}
}
-void XMLDocumentParser::insert(const SegmentedString& source)
+void XMLDocumentParser::insert(const SegmentedString&)
{
- // FIXME: This is a hack to work around the fact that XMLHttpRequest
- // responseXML() calls Document::write() which in turn calls insert(). In
- // HTML, that's correct, as insert() implies a synchronous parse. For XML,
- // all parsing is synchronous but document.write shouldn't be supported.
- append(source);
+ ASSERT_NOT_REACHED();
}
void XMLDocumentParser::append(const SegmentedString& s)
diff --git a/Source/WebCore/editing/ApplyBlockElementCommand.cpp b/Source/WebCore/editing/ApplyBlockElementCommand.cpp
index 285650d..e700875 100644
--- a/Source/WebCore/editing/ApplyBlockElementCommand.cpp
+++ b/Source/WebCore/editing/ApplyBlockElementCommand.cpp
@@ -102,7 +102,7 @@ void ApplyBlockElementCommand::formatSelection(const VisiblePosition& startOfSel
insertNodeAt(blockquote, start);
RefPtr<Element> placeholder = createBreakElement(document());
appendNode(placeholder, blockquote);
- setEndingSelection(VisibleSelection(Position(placeholder.get(), 0), DOWNSTREAM));
+ setEndingSelection(VisibleSelection(positionBeforeNode(placeholder.get()), DOWNSTREAM));
return;
}
diff --git a/Source/WebCore/editing/ApplyStyleCommand.cpp b/Source/WebCore/editing/ApplyStyleCommand.cpp
index 71b6a27..7227d7b 100644
--- a/Source/WebCore/editing/ApplyStyleCommand.cpp
+++ b/Source/WebCore/editing/ApplyStyleCommand.cpp
@@ -33,6 +33,7 @@
#include "CSSPropertyNames.h"
#include "CSSStyleSelector.h"
#include "CSSValueKeywords.h"
+#include "CSSValueList.h"
#include "Document.h"
#include "EditingStyle.h"
#include "Editor.h"
@@ -563,17 +564,16 @@ void ApplyStyleCommand::applyBlockStyle(CSSMutableStyleDeclaration *style)
if (visibleStart.isNull() || visibleStart.isOrphan() || visibleEnd.isNull() || visibleEnd.isOrphan())
return;
-
+
// Save and restore the selection endpoints using their indices in the document, since
// addBlockStyleIfNeeded may moveParagraphs, which can remove these endpoints.
// Calculate start and end indices from the start of the tree that they're in.
Node* scope = highestAncestor(visibleStart.deepEquivalent().node());
- Position rangeStart(scope, 0);
- RefPtr<Range> startRange = Range::create(document(), rangeStart, rangeCompliantEquivalent(visibleStart.deepEquivalent()));
- RefPtr<Range> endRange = Range::create(document(), rangeStart, rangeCompliantEquivalent(visibleEnd.deepEquivalent()));
+ RefPtr<Range> startRange = Range::create(document(), firstPositionInNode(scope), rangeCompliantEquivalent(visibleStart.deepEquivalent()));
+ RefPtr<Range> endRange = Range::create(document(), firstPositionInNode(scope), rangeCompliantEquivalent(visibleEnd.deepEquivalent()));
int startIndex = TextIterator::rangeLength(startRange.get(), true);
int endIndex = TextIterator::rangeLength(endRange.get(), true);
-
+
VisiblePosition paragraphStart(startOfParagraph(visibleStart));
VisiblePosition nextParagraphStart(endOfParagraph(paragraphStart).next());
VisiblePosition beyondEnd(endOfParagraph(visibleEnd).next());
@@ -982,7 +982,7 @@ void ApplyStyleCommand::fixRangeAndApplyInlineStyle(CSSMutableStyleDeclaration*
if (start.deprecatedEditingOffset() >= caretMaxOffset(start.node())) {
startNode = startNode->traverseNextNode();
- if (!startNode || comparePositions(end, Position(startNode, 0)) < 0)
+ if (!startNode || comparePositions(end, firstPositionInOrBeforeNode(startNode)) < 0)
return;
}
@@ -1333,7 +1333,7 @@ HTMLElement* ApplyStyleCommand::highestAncestorWithConflictingInlineStyle(CSSMut
return 0;
HTMLElement* result = 0;
- Node* unsplittableElement = unsplittableElementForPosition(Position(node, 0));
+ Node* unsplittableElement = unsplittableElementForPosition(firstPositionInOrBeforeNode(node));
for (Node *n = node; n; n = n->parentNode()) {
if (n->isHTMLElement() && shouldRemoveInlineStyleFromElement(style, static_cast<HTMLElement*>(n)))
@@ -1515,15 +1515,16 @@ void ApplyStyleCommand::removeInlineStyle(PassRefPtr<CSSMutableStyleDeclaration>
if (s.node() == elem) {
// Since elem must have been fully selected, and it is at the start
// of the selection, it is clear we can set the new s offset to 0.
- ASSERT(s.deprecatedEditingOffset() <= caretMinOffset(s.node()));
- s = Position(next, 0);
+ ASSERT(s.anchorType() == Position::PositionIsBeforeAnchor || s.offsetInContainerNode() <= 0);
+ s = firstPositionInOrBeforeNode(next.get());
}
if (e.node() == elem) {
// 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() >= lastOffsetForEditing(e.node()));
- e = Position(prev, lastOffsetForEditing(prev.get()));
+ ASSERT(s.anchorType() == Position::PositionIsAfterAnchor
+ || s.offsetInContainerNode() >= lastOffsetInNode(s.containerNode()));
+ e = lastPositionInOrAfterNode(prev.get());
}
}
@@ -1545,8 +1546,8 @@ bool ApplyStyleCommand::nodeFullySelected(Node *node, const Position &start, con
ASSERT(node);
ASSERT(node->isElementNode());
- Position pos = Position(node, node->childNodeCount()).upstream();
- return comparePositions(Position(node, 0), start) >= 0 && comparePositions(pos, end) <= 0;
+ return comparePositions(firstPositionInOrBeforeNode(node), start) >= 0
+ && comparePositions(lastPositionInOrAfterNode(node).upstream(), end) <= 0;
}
bool ApplyStyleCommand::nodeFullyUnselected(Node *node, const Position &start, const Position &end) const
@@ -1554,51 +1555,68 @@ bool ApplyStyleCommand::nodeFullyUnselected(Node *node, const Position &start, c
ASSERT(node);
ASSERT(node->isElementNode());
- Position pos = Position(node, node->childNodeCount()).upstream();
- bool isFullyBeforeStart = comparePositions(pos, start) < 0;
- bool isFullyAfterEnd = comparePositions(Position(node, 0), end) > 0;
+ bool isFullyBeforeStart = comparePositions(lastPositionInOrAfterNode(node).upstream(), start) < 0;
+ bool isFullyAfterEnd = comparePositions(firstPositionInOrBeforeNode(node), end) > 0;
return isFullyBeforeStart || isFullyAfterEnd;
}
void ApplyStyleCommand::splitTextAtStart(const Position& start, const Position& end)
{
- int endOffsetAdjustment = start.node() == end.node() ? start.deprecatedEditingOffset() : 0;
+ ASSERT(start.anchorType() == Position::PositionIsOffsetInAnchor);
+
+ Position newEnd;
+ if (end.anchorType() == Position::PositionIsOffsetInAnchor && start.containerNode() == end.containerNode())
+ newEnd = Position(end.containerNode(), end.offsetInContainerNode() - start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor);
+ else
+ newEnd = end;
+
Text* text = static_cast<Text*>(start.node());
- splitTextNode(text, start.deprecatedEditingOffset());
- updateStartEnd(Position(start.node(), 0), Position(end.node(), end.deprecatedEditingOffset() - endOffsetAdjustment));
+ splitTextNode(text, start.offsetInContainerNode());
+ updateStartEnd(firstPositionInNode(start.node()), newEnd);
}
void ApplyStyleCommand::splitTextAtEnd(const Position& start, const Position& end)
{
+ ASSERT(end.anchorType() == Position::PositionIsOffsetInAnchor);
+
+ bool shouldUpdateStart = start.anchorType() == Position::PositionIsOffsetInAnchor && start.containerNode() == end.containerNode();
Text* text = static_cast<Text *>(end.node());
- splitTextNode(text, end.deprecatedEditingOffset());
+ splitTextNode(text, end.offsetInContainerNode());
Node* prevNode = text->previousSibling();
ASSERT(prevNode);
- Node* startNode = start.node() == end.node() ? prevNode : start.node();
- ASSERT(startNode);
- updateStartEnd(Position(startNode, start.deprecatedEditingOffset()), Position(prevNode, caretMaxOffset(prevNode)));
+ Position newStart = shouldUpdateStart ? Position(prevNode, start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor) : start;
+ updateStartEnd(newStart, lastPositionInNode(prevNode));
}
void ApplyStyleCommand::splitTextElementAtStart(const Position& start, const Position& end)
{
- int endOffsetAdjustment = start.node() == end.node() ? start.deprecatedEditingOffset() : 0;
+ ASSERT(start.anchorType() == Position::PositionIsOffsetInAnchor);
+
+ Position newEnd;
+ if (end.anchorType() == Position::PositionIsOffsetInAnchor && start.containerNode() == end.containerNode())
+ newEnd = Position(end.containerNode(), end.offsetInContainerNode() - start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor);
+ else
+ newEnd = end;
+
Text* text = static_cast<Text*>(start.node());
splitTextNodeContainingElement(text, start.deprecatedEditingOffset());
- updateStartEnd(Position(start.node()->parentNode(), start.node()->nodeIndex()), Position(end.node(), end.deprecatedEditingOffset() - endOffsetAdjustment));
+ updateStartEnd(Position(start.node()->parentNode(), start.node()->nodeIndex(), Position::PositionIsOffsetInAnchor), newEnd);
}
void ApplyStyleCommand::splitTextElementAtEnd(const Position& start, const Position& end)
{
+ ASSERT(end.anchorType() == Position::PositionIsOffsetInAnchor);
+
+ bool shouldUpdateStart = start.anchorType() == Position::PositionIsOffsetInAnchor && start.containerNode() == end.containerNode();
Text* text = static_cast<Text*>(end.node());
splitTextNodeContainingElement(text, end.deprecatedEditingOffset());
Node* prevNode = text->parentNode()->previousSibling()->lastChild();
ASSERT(prevNode);
- Node* startNode = start.node() == end.node() ? prevNode : start.node();
- ASSERT(startNode);
- updateStartEnd(Position(startNode, start.deprecatedEditingOffset()), Position(prevNode->parentNode(), prevNode->nodeIndex() + 1));
+ Position newStart = shouldUpdateStart ? Position(prevNode, start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor) : start;
+ updateStartEnd(newStart, Position(prevNode->parentNode(), prevNode->nodeIndex() + 1, Position::PositionIsOffsetInAnchor));
}
bool ApplyStyleCommand::shouldSplitTextElement(Element* element, CSSMutableStyleDeclaration* style)
@@ -1611,11 +1629,11 @@ bool ApplyStyleCommand::shouldSplitTextElement(Element* element, CSSMutableStyle
bool ApplyStyleCommand::isValidCaretPositionInTextNode(const Position& position)
{
- Node* node = position.node();
- if (!node->isTextNode())
+ Node* node = position.containerNode();
+ if (position.anchorType() != Position::PositionIsOffsetInAnchor || !node->isTextNode())
return false;
- int offsetInText = position.deprecatedEditingOffset();
- return (offsetInText > caretMinOffset(node) && offsetInText < caretMaxOffset(node));
+ int offsetInText = position.offsetInContainerNode();
+ return offsetInText > caretMinOffset(node) && offsetInText < caretMaxOffset(node);
}
static bool areIdenticalElements(Node *first, Node *second)
@@ -1653,55 +1671,52 @@ static bool areIdenticalElements(Node *first, Node *second)
return true;
}
-bool ApplyStyleCommand::mergeStartWithPreviousIfIdentical(const Position &start, const Position &end)
+bool ApplyStyleCommand::mergeStartWithPreviousIfIdentical(const Position& start, const Position& end)
{
- Node *startNode = start.node();
- int startOffset = start.deprecatedEditingOffset();
-
- if (isAtomicNode(start.node())) {
- if (start.deprecatedEditingOffset() != 0)
- return false;
+ Node* startNode = start.containerNode();
+ int startOffset = start.computeOffsetInContainerNode();
+ if (startOffset)
+ return false;
+ if (isAtomicNode(startNode)) {
// note: prior siblings could be unrendered elements. it's silly to miss the
// merge opportunity just for that.
- if (start.node()->previousSibling())
+ if (startNode->previousSibling())
return false;
- startNode = start.node()->parentNode();
+ startNode = startNode->parentNode();
startOffset = 0;
}
if (!startNode->isElementNode())
return false;
- if (startOffset != 0)
- return false;
-
- Node *previousSibling = startNode->previousSibling();
+ Node* previousSibling = startNode->previousSibling();
if (previousSibling && areIdenticalElements(startNode, previousSibling)) {
- Element *previousElement = static_cast<Element *>(previousSibling);
- Element *element = static_cast<Element *>(startNode);
- Node *startChild = element->firstChild();
+ Element* previousElement = static_cast<Element*>(previousSibling);
+ Element* element = static_cast<Element*>(startNode);
+ Node* startChild = element->firstChild();
ASSERT(startChild);
mergeIdenticalElements(previousElement, element);
int startOffsetAdjustment = startChild->nodeIndex();
int endOffsetAdjustment = startNode == end.node() ? startOffsetAdjustment : 0;
- updateStartEnd(Position(startNode, startOffsetAdjustment), Position(end.node(), end.deprecatedEditingOffset() + endOffsetAdjustment));
+ updateStartEnd(Position(startNode, startOffsetAdjustment, Position::PositionIsOffsetInAnchor),
+ Position(end.node(), end.deprecatedEditingOffset() + endOffsetAdjustment, Position::PositionIsOffsetInAnchor));
return true;
}
return false;
}
-bool ApplyStyleCommand::mergeEndWithNextIfIdentical(const Position &start, const Position &end)
+bool ApplyStyleCommand::mergeEndWithNextIfIdentical(const Position& start, const Position& end)
{
- Node *endNode = end.node();
- int endOffset = end.deprecatedEditingOffset();
+ Node* endNode = end.containerNode();
+ int endOffset = end.computeOffsetInContainerNode();
if (isAtomicNode(endNode)) {
- if (endOffset < caretMaxOffset(endNode))
+ if (endOffset < lastOffsetInNode(endNode))
return false;
unsigned parentLastOffset = end.node()->parentNode()->childNodes()->length() - 1;
@@ -1715,20 +1730,18 @@ bool ApplyStyleCommand::mergeEndWithNextIfIdentical(const Position &start, const
if (!endNode->isElementNode() || endNode->hasTagName(brTag))
return false;
- Node *nextSibling = endNode->nextSibling();
-
+ Node* nextSibling = endNode->nextSibling();
if (nextSibling && areIdenticalElements(endNode, nextSibling)) {
- Element *nextElement = static_cast<Element *>(nextSibling);
- Element *element = static_cast<Element *>(endNode);
- Node *nextChild = nextElement->firstChild();
+ Element* nextElement = static_cast<Element *>(nextSibling);
+ Element* element = static_cast<Element *>(endNode);
+ Node* nextChild = nextElement->firstChild();
mergeIdenticalElements(element, nextElement);
- Node *startNode = start.node() == endNode ? nextElement : start.node();
- ASSERT(startNode);
-
+ bool shouldUpdateStart = start.containerNode() == endNode;
int endOffset = nextChild ? nextChild->nodeIndex() : nextElement->childNodes()->length();
- updateStartEnd(Position(startNode, start.deprecatedEditingOffset()), Position(nextElement, endOffset));
+ updateStartEnd(shouldUpdateStart ? Position(nextElement, start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor) : start,
+ Position(nextElement, endOffset, Position::PositionIsOffsetInAnchor));
return true;
}
@@ -1880,41 +1893,40 @@ void ApplyStyleCommand::addInlineStyleIfNeeded(CSSMutableStyleDeclaration *style
surroundNodeRangeWithElement(startNode, endNode, m_styledInlineElement->cloneElementWithoutChildren());
}
-float ApplyStyleCommand::computedFontSize(const Node *node)
+float ApplyStyleCommand::computedFontSize(Node* node)
{
if (!node)
return 0;
-
- Position pos(const_cast<Node *>(node), 0);
- RefPtr<CSSComputedStyleDeclaration> computedStyle = pos.computedStyle();
- if (!computedStyle)
+
+ RefPtr<CSSComputedStyleDeclaration> style = computedStyle(node);
+ if (!style)
return 0;
- RefPtr<CSSPrimitiveValue> value = static_pointer_cast<CSSPrimitiveValue>(computedStyle->getPropertyCSSValue(CSSPropertyFontSize));
+ RefPtr<CSSPrimitiveValue> value = static_pointer_cast<CSSPrimitiveValue>(style->getPropertyCSSValue(CSSPropertyFontSize));
if (!value)
return 0;
return value->getFloatValue(CSSPrimitiveValue::CSS_PX);
}
-void ApplyStyleCommand::joinChildTextNodes(Node *node, const Position &start, const Position &end)
+void ApplyStyleCommand::joinChildTextNodes(Node* node, const Position& start, const Position& end)
{
if (!node)
return;
Position newStart = start;
Position newEnd = end;
-
- Node *child = node->firstChild();
+
+ Node* child = node->firstChild();
while (child) {
- Node *next = child->nextSibling();
+ Node* next = child->nextSibling();
if (child->isTextNode() && next && next->isTextNode()) {
- Text *childText = static_cast<Text *>(child);
- Text *nextText = static_cast<Text *>(next);
- if (next == start.node())
- newStart = Position(childText, childText->length() + start.deprecatedEditingOffset());
- if (next == end.node())
- newEnd = Position(childText, childText->length() + end.deprecatedEditingOffset());
+ Text* childText = static_cast<Text *>(child);
+ Text* nextText = static_cast<Text *>(next);
+ if (start.anchorType() == Position::PositionIsOffsetInAnchor && next == start.containerNode())
+ newStart = Position(childText, childText->length() + start.offsetInContainerNode(), Position::PositionIsOffsetInAnchor);
+ if (end.anchorType() == Position::PositionIsOffsetInAnchor && next == end.containerNode())
+ newEnd = Position(childText, childText->length() + end.offsetInContainerNode(), Position::PositionIsOffsetInAnchor);
String textToMove = nextText->data();
insertTextIntoNode(childText, childText->length(), textToMove);
removeNode(next);
diff --git a/Source/WebCore/editing/ApplyStyleCommand.h b/Source/WebCore/editing/ApplyStyleCommand.h
index 5f369ba..05af85c 100644
--- a/Source/WebCore/editing/ApplyStyleCommand.h
+++ b/Source/WebCore/editing/ApplyStyleCommand.h
@@ -108,7 +108,7 @@ private:
void cleanupUnstyledAppleStyleSpans(Node* dummySpanAncestor);
void surroundNodeRangeWithElement(PassRefPtr<Node> start, PassRefPtr<Node> end, PassRefPtr<Element>);
- float computedFontSize(const Node*);
+ float computedFontSize(Node*);
void joinChildTextNodes(Node*, const Position& start, const Position& end);
HTMLElement* splitAncestorsWithUnicodeBidi(Node*, bool before, int allowedDirection);
diff --git a/Source/WebCore/editing/BreakBlockquoteCommand.cpp b/Source/WebCore/editing/BreakBlockquoteCommand.cpp
index 63956e5..ae409c6 100644
--- a/Source/WebCore/editing/BreakBlockquoteCommand.cpp
+++ b/Source/WebCore/editing/BreakBlockquoteCommand.cpp
@@ -82,7 +82,7 @@ void BreakBlockquoteCommand::doApply()
// Instead, insert the break before the blockquote, unless the position is as the end of the the quoted content.
if (isFirstVisiblePositionInNode(visiblePos, topBlockquote) && !isLastVisPosInNode) {
insertNodeBefore(breakNode.get(), topBlockquote);
- setEndingSelection(VisibleSelection(Position(breakNode.get(), 0), DOWNSTREAM));
+ setEndingSelection(VisibleSelection(positionBeforeNode(breakNode.get()), DOWNSTREAM));
rebalanceWhitespace();
return;
}
@@ -92,7 +92,7 @@ void BreakBlockquoteCommand::doApply()
// If we're inserting the break at the end of the quoted content, we don't need to break the quote.
if (isLastVisPosInNode) {
- setEndingSelection(VisibleSelection(Position(breakNode.get(), 0), DOWNSTREAM));
+ setEndingSelection(VisibleSelection(positionBeforeNode(breakNode.get()), DOWNSTREAM));
rebalanceWhitespace();
return;
}
@@ -125,7 +125,7 @@ void BreakBlockquoteCommand::doApply()
// If there's nothing inside topBlockquote to move, we're finished.
if (!startNode->isDescendantOf(topBlockquote)) {
- setEndingSelection(VisibleSelection(VisiblePosition(Position(startNode, 0))));
+ setEndingSelection(VisibleSelection(VisiblePosition(firstPositionInOrBeforeNode(startNode))));
return;
}
@@ -198,7 +198,7 @@ void BreakBlockquoteCommand::doApply()
addBlockPlaceholderIfNeeded(clonedBlockquote.get());
// Put the selection right before the break.
- setEndingSelection(VisibleSelection(Position(breakNode.get(), 0), DOWNSTREAM));
+ setEndingSelection(VisibleSelection(positionBeforeNode(breakNode.get()), DOWNSTREAM));
rebalanceWhitespace();
}
diff --git a/Source/WebCore/editing/CompositeEditCommand.cpp b/Source/WebCore/editing/CompositeEditCommand.cpp
index 748777d..9e1dfca 100644
--- a/Source/WebCore/editing/CompositeEditCommand.cpp
+++ b/Source/WebCore/editing/CompositeEditCommand.cpp
@@ -301,7 +301,7 @@ void CompositeEditCommand::inputText(const String& text, bool selectInsertedText
{
unsigned offset = 0;
unsigned length = text.length();
- RefPtr<Range> startRange = Range::create(document(), Position(document()->documentElement(), 0), endingSelection().start());
+ RefPtr<Range> startRange = Range::create(document(), firstPositionInNode(document()->documentElement()), endingSelection().start());
unsigned startIndex = TextIterator::rangeLength(startRange.get());
size_t newline;
do {
@@ -398,17 +398,17 @@ static inline bool isWhitespace(UChar c)
// FIXME: Doesn't go into text nodes that contribute adjacent text (siblings, cousins, etc).
void CompositeEditCommand::rebalanceWhitespaceAt(const Position& position)
{
- Node* node = position.node();
- if (!node || !node->isTextNode())
+ Node* node = position.containerNode();
+ if (position.anchorType() != Position::PositionIsOffsetInAnchor || !node || !node->isTextNode())
return;
Text* textNode = static_cast<Text*>(node);
-
+
if (textNode->length() == 0)
return;
RenderObject* renderer = textNode->renderer();
if (renderer && !renderer->style()->collapseWhiteSpace())
return;
-
+
String text = textNode->data();
ASSERT(!text.isEmpty());
@@ -432,8 +432,8 @@ void CompositeEditCommand::rebalanceWhitespaceAt(const Position& position)
int length = downstream - upstream + 1;
ASSERT(length > 0);
- VisiblePosition visibleUpstreamPos(Position(position.node(), upstream));
- VisiblePosition visibleDownstreamPos(Position(position.node(), downstream + 1));
+ VisiblePosition visibleUpstreamPos(Position(position.containerNode(), upstream, Position::PositionIsOffsetInAnchor));
+ VisiblePosition visibleDownstreamPos(Position(position.containerNode(), downstream + 1, Position::PositionIsOffsetInAnchor));
String string = text.substring(upstream, length);
String rebalancedString = stringWithRebalancedWhitespace(string,
@@ -715,10 +715,10 @@ PassRefPtr<Node> CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessar
}
RefPtr<Node> newBlock = insertNewDefaultParagraphElementAt(upstreamStart);
-
+
bool endWasBr = visibleParagraphEnd.deepEquivalent().node()->hasTagName(brTag);
- moveParagraphs(visibleParagraphStart, visibleParagraphEnd, VisiblePosition(Position(newBlock.get(), 0)));
+ moveParagraphs(visibleParagraphStart, visibleParagraphEnd, VisiblePosition(firstPositionInNode(newBlock.get())));
if (newBlock->lastChild() && newBlock->lastChild()->hasTagName(brTag) && !endWasBr)
removeNode(newBlock->lastChild());
@@ -973,10 +973,10 @@ void CompositeEditCommand::moveParagraphs(const VisiblePosition& startOfParagrap
// Need an updateLayout here in case inserting the br has split a text node.
updateLayout();
}
-
- RefPtr<Range> startToDestinationRange(Range::create(document(), Position(document(), 0), rangeCompliantEquivalent(destination.deepEquivalent())));
+
+ RefPtr<Range> startToDestinationRange(Range::create(document(), firstPositionInNode(document()->documentElement()), rangeCompliantEquivalent(destination.deepEquivalent())));
destinationIndex = TextIterator::rangeLength(startToDestinationRange.get(), true);
-
+
setEndingSelection(destination);
ASSERT(endingSelection().isCaretOrRange());
applyCommandToComposite(ReplaceSelectionCommand::create(document(), fragment, true, false, !preserveStyle, false, true));
@@ -1055,7 +1055,7 @@ bool CompositeEditCommand::breakOutOfEmptyListItem()
}
appendBlockPlaceholder(newBlock);
- setEndingSelection(VisibleSelection(Position(newBlock.get(), 0), DOWNSTREAM));
+ setEndingSelection(VisibleSelection(firstPositionInNode(newBlock.get()), DOWNSTREAM));
style->prepareToApplyAt(endingSelection().start());
if (!style->isEmpty())
@@ -1088,7 +1088,7 @@ bool CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph()
// We want to replace this quoted paragraph with an unquoted one, so insert a br
// to hold the caret before the highest blockquote.
insertNodeBefore(br, highestBlockquote);
- VisiblePosition atBR(Position(br.get(), 0));
+ VisiblePosition atBR(positionBeforeNode(br.get()));
// If the br we inserted collapsed, for example foo<br><blockquote>...</blockquote>, insert
// a second one.
if (!isStartOfParagraph(atBR))
@@ -1191,8 +1191,8 @@ PassRefPtr<Node> CompositeEditCommand::splitTreeToNode(Node* start, Node* end, b
for (node = start; node && node->parentNode() != end; node = node->parentNode()) {
if (!node->parentNode()->isElementNode())
break;
- VisiblePosition positionInParent(Position(node->parentNode(), 0), DOWNSTREAM);
- VisiblePosition positionInNode(Position(node, 0), DOWNSTREAM);
+ VisiblePosition positionInParent(firstPositionInNode(node->parentNode()), DOWNSTREAM);
+ VisiblePosition positionInNode(firstPositionInOrBeforeNode(node.get()), DOWNSTREAM);
if (positionInParent != positionInNode)
applyCommandToComposite(SplitElementCommand::create(static_cast<Element*>(node->parentNode()), node));
}
diff --git a/Source/WebCore/editing/DeleteButtonController.cpp b/Source/WebCore/editing/DeleteButtonController.cpp
index 028edc8..61e3190 100644
--- a/Source/WebCore/editing/DeleteButtonController.cpp
+++ b/Source/WebCore/editing/DeleteButtonController.cpp
@@ -159,7 +159,7 @@ static HTMLElement* enclosingDeletableElement(const VisibleSelection& selection)
if (!container->isContentEditable())
return 0;
- Node* element = enclosingNodeOfType(Position(container, 0), &isDeletableElement);
+ Node* element = enclosingNodeOfType(firstPositionInNode(container), &isDeletableElement);
if (!element)
return 0;
diff --git a/Source/WebCore/editing/Editor.cpp b/Source/WebCore/editing/Editor.cpp
index a24e7c6..bea74d9 100644
--- a/Source/WebCore/editing/Editor.cpp
+++ b/Source/WebCore/editing/Editor.cpp
@@ -52,6 +52,7 @@
#include "Frame.h"
#include "FrameTree.h"
#include "FrameView.h"
+#include "GraphicsContext.h"
#include "HTMLFrameOwnerElement.h"
#include "HTMLInputElement.h"
#include "HTMLTextAreaElement.h"
@@ -3031,7 +3032,8 @@ void Editor::changeSelectionAfterCommand(const VisibleSelection& newSelection, b
String Editor::selectedText() const
{
- return plainText(m_frame->selection()->toNormalizedRange().get());
+ // We remove '\0' characters because they are not visibly rendered to the user.
+ return plainText(m_frame->selection()->toNormalizedRange().get()).replace(0, "");
}
IntRect Editor::firstRectForRange(Range* range) const
diff --git a/Source/WebCore/editing/EditorCommand.cpp b/Source/WebCore/editing/EditorCommand.cpp
index 5de44a6..64993d5 100644
--- a/Source/WebCore/editing/EditorCommand.cpp
+++ b/Source/WebCore/editing/EditorCommand.cpp
@@ -32,6 +32,7 @@
#include "CSSMutableStyleDeclaration.h"
#include "CSSPropertyNames.h"
#include "CSSValueKeywords.h"
+#include "CSSValueList.h"
#include "Chrome.h"
#include "CreateLinkCommand.h"
#include "DocumentFragment.h"
diff --git a/Source/WebCore/editing/SmartReplace.h b/Source/WebCore/editing/SmartReplace.h
index 5a37137..b072e58 100644
--- a/Source/WebCore/editing/SmartReplace.h
+++ b/Source/WebCore/editing/SmartReplace.h
@@ -26,6 +26,9 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef SmartReplace_h
+#define SmartReplace_h
+
#include <wtf/unicode/Unicode.h>
namespace WebCore {
@@ -33,3 +36,5 @@ namespace WebCore {
bool isCharacterSmartReplaceExempt(UChar32 c, bool isPreviousCharacter);
} // namespace WebCore
+
+#endif // SmartReplace_h
diff --git a/Source/WebCore/editing/htmlediting.h b/Source/WebCore/editing/htmlediting.h
index 1892357..1f6b986 100644
--- a/Source/WebCore/editing/htmlediting.h
+++ b/Source/WebCore/editing/htmlediting.h
@@ -114,7 +114,17 @@ Position positionBeforeTabSpan(const Position&);
Position positionBeforeContainingSpecialElement(const Position&, Node** containingSpecialElement=0);
Position positionAfterContainingSpecialElement(const Position&, Node** containingSpecialElement=0);
Position positionOutsideContainingSpecialElement(const Position&, Node** containingSpecialElement=0);
-
+
+inline Position firstPositionInOrBeforeNode(Node* node)
+{
+ return editingIgnoresContent(node) ? positionBeforeNode(node) : firstPositionInNode(node);
+}
+
+inline Position lastPositionInOrAfterNode(Node* node)
+{
+ return editingIgnoresContent(node) ? positionAfterNode(node) : lastPositionInNode(node);
+}
+
// Position creation functions are inline to prevent ref-churn.
// Other Position creation functions are in Position.h
// but these depend on lastOffsetForEditing which is defined in htmlediting.h.
diff --git a/Source/WebCore/features.pri b/Source/WebCore/features.pri
index ff54b14..fdf11ed 100644
--- a/Source/WebCore/features.pri
+++ b/Source/WebCore/features.pri
@@ -152,9 +152,13 @@ contains(MOBILITY_CONFIG, sensors) {
contains(MOBILITY_CONFIG, multimedia) {
DEFINES -= ENABLE_VIDEO=0
DEFINES += ENABLE_VIDEO=1
+ DEFINES -= ENABLE_QT_MULTIMEDIA=0
+ DEFINES += ENABLE_QT_MULTIMEDIA=1
} else:contains(QT_CONFIG, phonon) {
DEFINES -= ENABLE_VIDEO=0
DEFINES += ENABLE_VIDEO=1
+ DEFINES -= ENABLE_QT_MULTIMEDIA=1
+ DEFINES += ENABLE_QT_MULTIMEDIA=0
}
}
diff --git a/Source/WebCore/history/BackForwardListChromium.cpp b/Source/WebCore/history/BackForwardListChromium.cpp
deleted file mode 100644
index a22a147..0000000
--- a/Source/WebCore/history/BackForwardListChromium.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved.
- * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
- * 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.
- *
- * 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 "BackForwardListImpl.h"
-
-#include "HistoryItem.h"
-#include "Logging.h"
-
-namespace WebCore {
-
-static const unsigned DefaultCapacity = 100;
-static const unsigned NoCurrentItemIndex = UINT_MAX;
-
-BackForwardListImpl::BackForwardListImpl(Page* page)
- : m_page(page)
- , m_client(0)
- , m_capacity(DefaultCapacity)
- , m_closed(true)
- , m_enabled(true)
-{
-}
-
-BackForwardListImpl::~BackForwardListImpl()
-{
- ASSERT(m_closed);
-}
-
-void BackForwardListImpl::addItem(PassRefPtr<HistoryItem> prpItem)
-{
- ASSERT(prpItem);
- if (m_capacity == 0 || !m_enabled)
- return;
-
- m_client->addItem(prpItem);
-}
-
-void BackForwardListImpl::goToItem(HistoryItem* item)
-{
- m_client->goToItem(item);
-}
-
-int BackForwardListImpl::capacity()
-{
- return m_capacity;
-}
-
-void BackForwardListImpl::setCapacity(int size)
-{
- m_capacity = size;
-}
-
-bool BackForwardListImpl::enabled()
-{
- return m_enabled;
-}
-
-void BackForwardListImpl::setEnabled(bool enabled)
-{
- m_enabled = enabled;
- if (!enabled) {
- int capacity = m_capacity;
- setCapacity(0);
- setCapacity(capacity);
- }
-}
-
-int BackForwardListImpl::backListCount()
-{
- return m_client->backListCount();
-}
-
-int BackForwardListImpl::forwardListCount()
-{
- return m_client->forwardListCount();
-}
-
-HistoryItem* BackForwardListImpl::itemAtIndex(int index)
-{
- return m_client->itemAtIndex(index);
-}
-
-HistoryItemVector& BackForwardListImpl::entries()
-{
- static HistoryItemVector noEntries;
- return noEntries;
-}
-
-void BackForwardListImpl::close()
-{
- if (m_client)
- m_client->close();
- m_page = 0;
- m_closed = true;
-}
-
-bool BackForwardListImpl::closed()
-{
- return m_closed;
-}
-
-void BackForwardListImpl::goBack()
-{
- ASSERT_NOT_REACHED();
-}
-
-void BackForwardListImpl::goForward()
-{
- ASSERT_NOT_REACHED();
-}
-
-void BackForwardListImpl::backListWithLimit(int, HistoryItemVector&)
-{
- ASSERT_NOT_REACHED();
-}
-
-void BackForwardListImpl::forwardListWithLimit(int, HistoryItemVector&)
-{
- ASSERT_NOT_REACHED();
-}
-
-bool BackForwardListImpl::containsItem(HistoryItem*)
-{
- ASSERT_NOT_REACHED();
- return false;
-}
-
-void BackForwardListImpl::removeItem(HistoryItem*)
-{
- ASSERT_NOT_REACHED();
-}
-
-} // namespace WebCore
diff --git a/Source/WebCore/history/BackForwardListImpl.h b/Source/WebCore/history/BackForwardListImpl.h
index 30043fa..7b1a422 100644
--- a/Source/WebCore/history/BackForwardListImpl.h
+++ b/Source/WebCore/history/BackForwardListImpl.h
@@ -39,25 +39,6 @@ class Page;
typedef Vector<RefPtr<HistoryItem> > HistoryItemVector;
typedef HashSet<RefPtr<HistoryItem> > HistoryItemHashSet;
-// FIXME: Change Chromium to use its own BackForwardList implementation
-// and not use BackForwardListImpl at all, then remove this
-// BackForwardListClient feature entirely and just don't use this
-// class on Chromium.
-#if PLATFORM(CHROMIUM)
-// In the Chromium port, the back/forward list is managed externally.
-// See BackForwardListChromium.cpp
-class BackForwardListClient {
-public:
- virtual ~BackForwardListClient() { }
- virtual void addItem(PassRefPtr<HistoryItem>) = 0;
- virtual void goToItem(HistoryItem*) = 0;
- virtual HistoryItem* itemAtIndex(int) = 0;
- virtual int backListCount() = 0;
- virtual int forwardListCount() = 0;
- virtual void close() = 0;
-};
-#endif
-
// FIXME: After renaming BackForwardList to BackForwardClient,
// rename this to BackForwardList.
class BackForwardListImpl : public BackForwardList {
@@ -65,11 +46,6 @@ public:
static PassRefPtr<BackForwardListImpl> create(Page* page) { return adoptRef(new BackForwardListImpl(page)); }
virtual ~BackForwardListImpl();
-#if PLATFORM(CHROMIUM)
- // Must be called before any other methods.
- void setClient(BackForwardListClient* client) { m_client = client; }
-#endif
-
Page* page() { return m_page; }
virtual void addItem(PassRefPtr<HistoryItem>);
@@ -109,13 +85,9 @@ private:
virtual bool isActive() { return enabled() && capacity(); }
Page* m_page;
-#if PLATFORM(CHROMIUM)
- BackForwardListClient* m_client;
-#else
HistoryItemVector m_entries;
HistoryItemHashSet m_entryHash;
unsigned m_current;
-#endif
unsigned m_capacity;
bool m_closed;
bool m_enabled;
diff --git a/Source/WebCore/history/HistoryItem.cpp b/Source/WebCore/history/HistoryItem.cpp
index 0995913..f9e6c96 100644
--- a/Source/WebCore/history/HistoryItem.cpp
+++ b/Source/WebCore/history/HistoryItem.cpp
@@ -40,7 +40,7 @@
namespace WebCore {
-const uint32_t backForwardTreeEncodingVersion = 0;
+const uint32_t backForwardTreeEncodingVersion = 1;
static long long generateSequenceNumber()
{
@@ -59,6 +59,7 @@ void (*notifyHistoryItemChanged)(HistoryItem*) = defaultNotifyHistoryItemChanged
HistoryItem::HistoryItem()
: m_lastVisitedTime(0)
, m_lastVisitWasHTTPNonGet(false)
+ , m_pageScaleFactor(1)
, m_lastVisitWasFailure(false)
, m_isTargetItem(false)
, m_visitCount(0)
@@ -73,6 +74,7 @@ HistoryItem::HistoryItem(const String& urlString, const String& title, double ti
, m_title(title)
, m_lastVisitedTime(time)
, m_lastVisitWasHTTPNonGet(false)
+ , m_pageScaleFactor(1)
, m_lastVisitWasFailure(false)
, m_isTargetItem(false)
, m_visitCount(0)
@@ -89,6 +91,7 @@ HistoryItem::HistoryItem(const String& urlString, const String& title, const Str
, m_displayTitle(alternateTitle)
, m_lastVisitedTime(time)
, m_lastVisitWasHTTPNonGet(false)
+ , m_pageScaleFactor(1)
, m_lastVisitWasFailure(false)
, m_isTargetItem(false)
, m_visitCount(0)
@@ -106,6 +109,7 @@ HistoryItem::HistoryItem(const KURL& url, const String& target, const String& pa
, m_title(title)
, m_lastVisitedTime(0)
, m_lastVisitWasHTTPNonGet(false)
+ , m_pageScaleFactor(1)
, m_lastVisitWasFailure(false)
, m_isTargetItem(false)
, m_visitCount(0)
@@ -137,6 +141,7 @@ inline HistoryItem::HistoryItem(const HistoryItem& item)
, m_lastVisitedTime(item.m_lastVisitedTime)
, m_lastVisitWasHTTPNonGet(item.m_lastVisitWasHTTPNonGet)
, m_scrollPoint(item.m_scrollPoint)
+ , m_pageScaleFactor(item.m_pageScaleFactor)
, m_lastVisitWasFailure(item.m_lastVisitWasFailure)
, m_isTargetItem(item.m_isTargetItem)
, m_visitCount(item.m_visitCount)
@@ -379,6 +384,16 @@ void HistoryItem::clearScrollPoint()
m_scrollPoint.setY(0);
}
+float HistoryItem::pageScaleFactor() const
+{
+ return m_pageScaleFactor;
+}
+
+void HistoryItem::setPageScaleFactor(float scaleFactor)
+{
+ m_pageScaleFactor = scaleFactor;
+}
+
void HistoryItem::setDocumentState(const Vector<String>& state)
{
m_documentState = state;
@@ -667,6 +682,8 @@ void HistoryItem::encodeBackForwardTreeNode(Encoder& encoder) const
encoder.encodeInt32(m_scrollPoint.x());
encoder.encodeInt32(m_scrollPoint.y());
+
+ encoder.encodeFloat(m_pageScaleFactor);
encoder.encodeBool(m_stateObject);
if (m_stateObject) {
@@ -776,6 +793,9 @@ resume:
if (!decoder.decodeInt32(y))
return 0;
node->m_scrollPoint = IntPoint(x, y);
+
+ if (!decoder.decodeFloat(node->m_pageScaleFactor))
+ return 0;
bool hasStateObject;
if (!decoder.decodeBool(hasStateObject))
diff --git a/Source/WebCore/history/HistoryItem.h b/Source/WebCore/history/HistoryItem.h
index 19b33ad..a4622c0 100644
--- a/Source/WebCore/history/HistoryItem.h
+++ b/Source/WebCore/history/HistoryItem.h
@@ -123,6 +123,10 @@ public:
const IntPoint& scrollPoint() const;
void setScrollPoint(const IntPoint&);
void clearScrollPoint();
+
+ float pageScaleFactor() const;
+ void setPageScaleFactor(float);
+
const Vector<String>& documentState() const;
void setDocumentState(const Vector<String>&);
void clearDocumentState();
@@ -245,6 +249,7 @@ private:
bool m_lastVisitWasHTTPNonGet;
IntPoint m_scrollPoint;
+ float m_pageScaleFactor;
Vector<String> m_documentState;
HistoryItemVector m_children;
diff --git a/Source/WebCore/history/PageCache.cpp b/Source/WebCore/history/PageCache.cpp
index 7375a9c..a5dfb1e 100644
--- a/Source/WebCore/history/PageCache.cpp
+++ b/Source/WebCore/history/PageCache.cpp
@@ -252,6 +252,8 @@ bool PageCache::canCachePageContainingThisFrame(Frame* frame)
return frame->loader()->documentLoader()
&& frame->loader()->documentLoader()->mainDocumentError().isNull()
+ // Do not cache error pages (these can be recognized as pages with substitute data or unreachable URLs).
+ && !(frame->loader()->documentLoader()->substituteData().isValid() && !frame->loader()->documentLoader()->substituteData().failingURL().isEmpty())
// FIXME: If we ever change this so that frames with plug-ins will be cached,
// we need to make sure that we don't cache frames that have outstanding NPObjects
// (objects created by the plug-in). Since there is no way to pause/resume a Netscape plug-in,
@@ -453,7 +455,7 @@ void PageCache::releaseAutoreleasedPagesNow()
m_autoreleaseTimer.stop();
// Postpone dead pruning until all our resources have gone dead.
- cache()->setPruneEnabled(false);
+ memoryCache()->setPruneEnabled(false);
CachedPageSet tmp;
tmp.swap(m_autoreleaseSet);
@@ -463,8 +465,8 @@ void PageCache::releaseAutoreleasedPagesNow()
(*it)->destroy();
// Now do the prune.
- cache()->setPruneEnabled(true);
- cache()->prune();
+ memoryCache()->setPruneEnabled(true);
+ memoryCache()->prune();
}
void PageCache::autorelease(PassRefPtr<CachedPage> page)
diff --git a/Source/WebCore/html/DOMURL.cpp b/Source/WebCore/html/DOMURL.cpp
new file mode 100644
index 0000000..87f9f45
--- /dev/null
+++ b/Source/WebCore/html/DOMURL.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 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"
+
+#if ENABLE(BLOB)
+
+#include "DOMURL.h"
+
+#include "KURL.h"
+#include "ScriptExecutionContext.h"
+
+namespace WebCore {
+
+DOMURL::DOMURL(ScriptExecutionContext* scriptExecutionContext)
+ : m_scriptExecutionContext(scriptExecutionContext)
+{
+}
+
+String DOMURL::createObjectURL(Blob* blob)
+{
+ if (!m_scriptExecutionContext)
+ return String();
+ return m_scriptExecutionContext->createPublicBlobURL(blob).string();
+}
+
+void DOMURL::revokeObjectURL(const String& urlString)
+{
+ if (!m_scriptExecutionContext)
+ return;
+ m_scriptExecutionContext->revokePublicBlobURL(KURL(KURL(), urlString));
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(BLOB)
diff --git a/Source/WebCore/html/DOMURL.h b/Source/WebCore/html/DOMURL.h
new file mode 100644
index 0000000..57f3000
--- /dev/null
+++ b/Source/WebCore/html/DOMURL.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2011 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 DOMURL_h
+#define DOMURL_h
+
+#if ENABLE(BLOB)
+
+#include "PlatformString.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class Blob;
+class ScriptExecutionContext;
+
+class DOMURL : public RefCounted<DOMURL> {
+public:
+ static PassRefPtr<DOMURL> create(ScriptExecutionContext* scriptExecutionContext) { return adoptRef(new DOMURL(scriptExecutionContext)); }
+
+ String createObjectURL(Blob*);
+ void revokeObjectURL(const String&);
+
+private:
+ explicit DOMURL(ScriptExecutionContext*);
+
+ ScriptExecutionContext* m_scriptExecutionContext;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(BLOB)
+
+#endif // DOMURL_h
diff --git a/Source/WebCore/html/DOMURL.idl b/Source/WebCore/html/DOMURL.idl
new file mode 100644
index 0000000..75945b7
--- /dev/null
+++ b/Source/WebCore/html/DOMURL.idl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 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 html {
+ interface [
+ Conditional=BLOB,
+ OmitConstructor,
+ GenerateNativeConverter,
+ GenerateToJS,
+ NoStaticTables
+ ] DOMURL {
+ [ConvertNullStringTo=Undefined] DOMString createObjectURL(in Blob blob);
+ void revokeObjectURL(in DOMString url);
+ };
+}
diff --git a/Source/WebCore/html/FormAssociatedElement.cpp b/Source/WebCore/html/FormAssociatedElement.cpp
index a97c0e2..574dfe5 100644
--- a/Source/WebCore/html/FormAssociatedElement.cpp
+++ b/Source/WebCore/html/FormAssociatedElement.cpp
@@ -52,6 +52,13 @@ ValidityState* FormAssociatedElement::validity()
return m_validityState.get();
}
+void FormAssociatedElement::willMoveToNewOwnerDocument()
+{
+ HTMLElement* element = toHTMLElement(this);
+ if (element->fastHasAttribute(formAttr))
+ element->document()->unregisterFormElementWithFormAttribute(this);
+}
+
void FormAssociatedElement::insertedIntoTree()
{
HTMLElement* element = toHTMLElement(this);
@@ -140,6 +147,7 @@ void FormAssociatedElement::formAttributeChanged()
m_form = element->findFormAncestor();
if (m_form)
form()->registerFormElement(this);
+ element->document()->unregisterFormElementWithFormAttribute(this);
} else
resetFormOwner(0);
}
diff --git a/Source/WebCore/html/FormAssociatedElement.h b/Source/WebCore/html/FormAssociatedElement.h
index 3c8c6e1..873bdf4 100644
--- a/Source/WebCore/html/FormAssociatedElement.h
+++ b/Source/WebCore/html/FormAssociatedElement.h
@@ -63,6 +63,8 @@ protected:
void insertedIntoTree();
void removedFromTree();
+ void willMoveToNewOwnerDocument();
+
void setForm(HTMLFormElement* form) { m_form = form; }
void removeFromForm();
void formAttributeChanged();
diff --git a/Source/WebCore/html/HTMLElement.cpp b/Source/WebCore/html/HTMLElement.cpp
index a504f75..af3115c 100644
--- a/Source/WebCore/html/HTMLElement.cpp
+++ b/Source/WebCore/html/HTMLElement.cpp
@@ -376,6 +376,39 @@ void HTMLElement::setOuterHTML(const String& html, ExceptionCode& ec)
}
}
+PassRefPtr<DocumentFragment> HTMLElement::textToFragment(const String& text, ExceptionCode& ec)
+{
+ RefPtr<DocumentFragment> fragment = DocumentFragment::create(document());
+ unsigned int i, length = text.length();
+ UChar c = 0;
+ for (unsigned int start = 0; start < length; ) {
+
+ // Find next line break.
+ for (i = start; i < length; i++) {
+ c = text[i];
+ if (c == '\r' || c == '\n')
+ break;
+ }
+
+ fragment->appendChild(Text::create(document(), text.substring(start, i - start)), ec);
+ if (ec)
+ return 0;
+
+ if (c == '\r' || c == '\n') {
+ fragment->appendChild(HTMLBRElement::create(document()), ec);
+ if (ec)
+ return 0;
+ // Make sure \r\n doesn't result in two line breaks.
+ if (c == '\r' && i + 1 < length && text[i + 1] == '\n')
+ i++;
+ }
+
+ start = i + 1; // Character after line break.
+ }
+
+ return fragment;
+}
+
void HTMLElement::setInnerText(const String& text, ExceptionCode& ec)
{
if (ieForbidsInsertHTML()) {
@@ -419,30 +452,25 @@ void HTMLElement::setInnerText(const String& text, ExceptionCode& ec)
// Add text nodes and <br> elements.
ec = 0;
- RefPtr<DocumentFragment> fragment = DocumentFragment::create(document());
- int lineStart = 0;
- UChar prev = 0;
- int length = text.length();
- for (int i = 0; i < length; ++i) {
- UChar c = text[i];
- if (c == '\n' || c == '\r') {
- if (i > lineStart) {
- fragment->appendChild(Text::create(document(), text.substring(lineStart, i - lineStart)), ec);
- if (ec)
- return;
- }
- if (!(c == '\n' && i != 0 && prev == '\r')) {
- fragment->appendChild(HTMLBRElement::create(document()), ec);
- if (ec)
- return;
- }
- lineStart = i + 1;
- }
- prev = c;
- }
- if (length > lineStart)
- fragment->appendChild(Text::create(document(), text.substring(lineStart, length - lineStart)), ec);
- replaceChildrenWithFragment(this, fragment.release(), ec);
+ RefPtr<DocumentFragment> fragment = textToFragment(text, ec);
+ if (!ec)
+ replaceChildrenWithFragment(this, fragment.release(), ec);
+}
+
+static void mergeWithNextTextNode(PassRefPtr<Node> node, ExceptionCode& ec)
+{
+ ASSERT(node && node->isTextNode());
+ Node* next = node->nextSibling();
+ if (!next || !next->isTextNode())
+ return;
+
+ RefPtr<Text> textNode = static_cast<Text*>(node.get());
+ RefPtr<Text> textNext = static_cast<Text*>(next);
+ textNode->appendData(textNext->data(), ec);
+ if (ec)
+ return;
+ if (textNext->parentNode()) // Might have been removed by mutation event.
+ textNext->remove(ec);
}
void HTMLElement::setOuterText(const String &text, ExceptionCode& ec)
@@ -465,39 +493,29 @@ void HTMLElement::setOuterText(const String &text, ExceptionCode& ec)
return;
}
- // FIXME: This creates a new text node even when the text is empty.
- // FIXME: This creates a single text node even when the text has CR and LF
- // characters in it. Instead it should create <br> elements.
- RefPtr<Text> t = Text::create(document(), text);
+ RefPtr<Node> prev = previousSibling();
+ RefPtr<Node> next = nextSibling();
+ RefPtr<Node> newChild;
ec = 0;
- parent->replaceChild(t, this, ec);
+
+ // Convert text to fragment with <br> tags instead of linebreaks if needed.
+ if (text.contains('\r') || text.contains('\n'))
+ newChild = textToFragment(text, ec);
+ else
+ newChild = Text::create(document(), text);
+
+ if (!this || !parentNode())
+ ec = HIERARCHY_REQUEST_ERR;
if (ec)
return;
+ parent->replaceChild(newChild.release(), this, ec);
- // Is previous node a text node? If so, merge into it.
- Node* prev = t->previousSibling();
- if (prev && prev->isTextNode()) {
- Text* textPrev = static_cast<Text*>(prev);
- textPrev->appendData(t->data(), ec);
- if (ec)
- return;
- t->remove(ec);
- if (ec)
- return;
- t = textPrev;
- }
+ RefPtr<Node> node = next ? next->previousSibling() : 0;
+ if (!ec && node && node->isTextNode())
+ mergeWithNextTextNode(node.release(), ec);
- // Is next node a text node? If so, merge it in.
- Node* next = t->nextSibling();
- if (next && next->isTextNode()) {
- Text* textNext = static_cast<Text*>(next);
- t->appendData(textNext->data(), ec);
- if (ec)
- return;
- textNext->remove(ec);
- if (ec)
- return;
- }
+ if (!ec && prev && prev->isTextNode())
+ mergeWithNextTextNode(prev.release(), ec);
}
Node* HTMLElement::insertAdjacent(const String& where, Node* newChild, ExceptionCode& ec)
diff --git a/Source/WebCore/html/HTMLElement.h b/Source/WebCore/html/HTMLElement.h
index 63ce110..a64db2c 100644
--- a/Source/WebCore/html/HTMLElement.h
+++ b/Source/WebCore/html/HTMLElement.h
@@ -100,6 +100,7 @@ private:
virtual HTMLFormElement* virtualForm() const;
Node* insertAdjacent(const String& where, Node* newChild, ExceptionCode&);
+ PassRefPtr<DocumentFragment> textToFragment(const String&, ExceptionCode&);
};
inline HTMLElement::HTMLElement(const QualifiedName& tagName, Document* document)
diff --git a/Source/WebCore/html/HTMLFormControlElement.cpp b/Source/WebCore/html/HTMLFormControlElement.cpp
index 8556c1e..b3ad7c8 100644
--- a/Source/WebCore/html/HTMLFormControlElement.cpp
+++ b/Source/WebCore/html/HTMLFormControlElement.cpp
@@ -80,7 +80,7 @@ HTMLFormControlElement::~HTMLFormControlElement()
void HTMLFormControlElement::detach()
{
- hideVisibleValidationMessage();
+ m_validationMessage = 0;
HTMLElement::detach();
}
@@ -144,6 +144,12 @@ void HTMLFormControlElement::attach()
focus();
}
+void HTMLFormControlElement::willMoveToNewOwnerDocument()
+{
+ FormAssociatedElement::willMoveToNewOwnerDocument();
+ HTMLElement::willMoveToNewOwnerDocument();
+}
+
void HTMLFormControlElement::insertedIntoTree(bool deep)
{
FormAssociatedElement::insertedIntoTree();
@@ -304,18 +310,24 @@ void HTMLFormControlElement::updateVisibleValidationMessage()
message.append(title);
}
}
+ if (message.isEmpty()) {
+ hideVisibleValidationMessage();
+ return;
+ }
if (!m_validationMessage) {
m_validationMessage = ValidationMessage::create(this);
m_validationMessage->setMessage(message);
- } else if (message.isEmpty())
- hideVisibleValidationMessage();
- else if (m_validationMessage->message() != message)
+ } else {
+ // Call setMessage() even if m_validationMesage->message() == message
+ // because the existing message might be to be hidden.
m_validationMessage->setMessage(message);
+ }
}
void HTMLFormControlElement::hideVisibleValidationMessage()
{
- m_validationMessage = 0;
+ if (m_validationMessage)
+ m_validationMessage->requestToHideMessage();
}
String HTMLFormControlElement::visibleValidationMessage() const
diff --git a/Source/WebCore/html/HTMLFormControlElement.h b/Source/WebCore/html/HTMLFormControlElement.h
index e5d741b..8403b84 100644
--- a/Source/WebCore/html/HTMLFormControlElement.h
+++ b/Source/WebCore/html/HTMLFormControlElement.h
@@ -109,6 +109,7 @@ protected:
virtual void attach();
virtual void insertedIntoTree(bool deep);
virtual void removedFromTree(bool deep);
+ virtual void willMoveToNewOwnerDocument();
virtual bool isKeyboardFocusable(KeyboardEvent*) const;
virtual bool isMouseFocusable() const;
diff --git a/Source/WebCore/html/HTMLInputElement.cpp b/Source/WebCore/html/HTMLInputElement.cpp
index 49888f1..c7a1a86 100644
--- a/Source/WebCore/html/HTMLInputElement.cpp
+++ b/Source/WebCore/html/HTMLInputElement.cpp
@@ -455,7 +455,9 @@ void HTMLInputElement::updateType()
bool neededActivationCallback = needsActivationCallback();
bool didRespectHeightAndWidth = m_inputType->shouldRespectHeightAndWidthAttributes();
+ m_inputType->destroyShadowSubtree();
m_inputType = newType.release();
+ m_inputType->createShadowSubtree();
setNeedsWillValidateCheck();
@@ -637,9 +639,14 @@ void HTMLInputElement::parseMappedAttribute(Attribute* attr)
#endif
#if ENABLE(INPUT_SPEECH)
else if (attr->name() == webkitspeechAttr) {
- if (renderer())
- toRenderTextControlSingleLine(renderer())->speechAttributeChanged();
- setNeedsStyleRecalc();
+ if (renderer()) {
+ // This renderer and its children have quite different layouts and styles depending on
+ // whether the speech button is visible or not. So we reset the whole thing and recreate
+ // to get the right styles and layout.
+ detach();
+ attach();
+ }
+ setNeedsStyleRecalc();
} else if (attr->name() == onwebkitspeechchangeAttr)
setAttributeEventListener(eventNames().webkitspeechchangeEvent, createAttributeEventListener(this, attr));
#endif
diff --git a/Source/WebCore/html/HTMLObjectElement.cpp b/Source/WebCore/html/HTMLObjectElement.cpp
index 2c6e6de..a1dde1a 100644
--- a/Source/WebCore/html/HTMLObjectElement.cpp
+++ b/Source/WebCore/html/HTMLObjectElement.cpp
@@ -479,6 +479,12 @@ void HTMLObjectElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) con
addSubresourceURL(urls, document()->completeURL(useMap));
}
+void HTMLObjectElement::willMoveToNewOwnerDocument()
+{
+ FormAssociatedElement::willMoveToNewOwnerDocument();
+ HTMLPlugInImageElement::willMoveToNewOwnerDocument();
+}
+
void HTMLObjectElement::insertedIntoTree(bool deep)
{
FormAssociatedElement::insertedIntoTree();
diff --git a/Source/WebCore/html/HTMLObjectElement.h b/Source/WebCore/html/HTMLObjectElement.h
index d5797ff..ff773f1 100644
--- a/Source/WebCore/html/HTMLObjectElement.h
+++ b/Source/WebCore/html/HTMLObjectElement.h
@@ -73,6 +73,7 @@ private:
virtual bool rendererIsNeeded(RenderStyle*);
virtual void insertedIntoDocument();
virtual void removedFromDocument();
+ virtual void willMoveToNewOwnerDocument();
virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
diff --git a/Source/WebCore/html/HTMLPlugInImageElement.h b/Source/WebCore/html/HTMLPlugInImageElement.h
index 377fd99..f394d40 100644
--- a/Source/WebCore/html/HTMLPlugInImageElement.h
+++ b/Source/WebCore/html/HTMLPlugInImageElement.h
@@ -58,12 +58,13 @@ protected:
bool allowedToLoadFrameURL(const String& url);
bool wouldLoadAsNetscapePlugin(const String& url, const String& serviceType);
+ virtual void willMoveToNewOwnerDocument();
+
private:
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
virtual void recalcStyle(StyleChange);
virtual void finishParsingChildren();
- virtual void willMoveToNewOwnerDocument();
void updateWidgetIfNecessary();
virtual bool useFallbackContent() const { return false; }
diff --git a/Source/WebCore/html/HTMLStyleElement.cpp b/Source/WebCore/html/HTMLStyleElement.cpp
index 7c2512b..0f256e1 100644
--- a/Source/WebCore/html/HTMLStyleElement.cpp
+++ b/Source/WebCore/html/HTMLStyleElement.cpp
@@ -27,8 +27,9 @@
#include "Attribute.h"
#include "Document.h"
#include "HTMLNames.h"
-#include "ScriptableDocumentParser.h"
#include "ScriptEventListener.h"
+#include "ScriptableDocumentParser.h"
+
namespace WebCore {
@@ -104,4 +105,19 @@ void HTMLStyleElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons
styleSheet->addSubresourceStyleURLs(urls);
}
+bool HTMLStyleElement::disabled() const
+{
+ StyleSheet* styleSheet = sheet();
+ if (!styleSheet)
+ return false;
+
+ return styleSheet->disabled();
+}
+
+void HTMLStyleElement::setDisabled(bool setDisabled)
+{
+ if (StyleSheet* styleSheet = sheet())
+ styleSheet->setDisabled(setDisabled);
+}
+
}
diff --git a/Source/WebCore/html/HTMLStyleElement.h b/Source/WebCore/html/HTMLStyleElement.h
index 3d6958f..c9b5649 100644
--- a/Source/WebCore/html/HTMLStyleElement.h
+++ b/Source/WebCore/html/HTMLStyleElement.h
@@ -39,6 +39,9 @@ public:
using StyleElement::sheet;
+ bool disabled() const;
+ void setDisabled(bool);
+
private:
HTMLStyleElement(const QualifiedName&, Document*, bool createdByParser);
diff --git a/Source/WebCore/html/HTMLStyleElement.idl b/Source/WebCore/html/HTMLStyleElement.idl
index d78e9d3..459801e 100644
--- a/Source/WebCore/html/HTMLStyleElement.idl
+++ b/Source/WebCore/html/HTMLStyleElement.idl
@@ -21,7 +21,7 @@
module html {
interface [CustomMarkFunction] HTMLStyleElement : HTMLElement {
- attribute [Reflect] boolean disabled;
+ attribute boolean disabled;
attribute [Reflect] DOMString media;
attribute [Reflect] DOMString type;
diff --git a/Source/WebCore/html/InputType.cpp b/Source/WebCore/html/InputType.cpp
index be86399..729f204 100644
--- a/Source/WebCore/html/InputType.cpp
+++ b/Source/WebCore/html/InputType.cpp
@@ -349,6 +349,15 @@ RenderObject* InputType::createRenderer(RenderArena*, RenderStyle* style) const
return RenderObject::createObject(element(), style);
}
+void InputType::createShadowSubtree()
+{
+}
+
+void InputType::destroyShadowSubtree()
+{
+ element()->setShadowRoot(0);
+}
+
double InputType::parseToDouble(const String&, double defaultValue) const
{
return defaultValue;
diff --git a/Source/WebCore/html/InputType.h b/Source/WebCore/html/InputType.h
index 4d25a97..0d1f6b8 100644
--- a/Source/WebCore/html/InputType.h
+++ b/Source/WebCore/html/InputType.h
@@ -171,6 +171,12 @@ public:
virtual void accessKeyAction(bool sendToAnyElement);
virtual bool canBeSuccessfulSubmitButton();
+
+ // Shadow tree handling
+
+ virtual void createShadowSubtree();
+ void destroyShadowSubtree();
+
// Miscellaneous functions
virtual bool rendererIsNeeded();
diff --git a/Source/WebCore/html/RangeInputType.cpp b/Source/WebCore/html/RangeInputType.cpp
index 7a0d3e4..7d0a38c 100644
--- a/Source/WebCore/html/RangeInputType.cpp
+++ b/Source/WebCore/html/RangeInputType.cpp
@@ -37,6 +37,7 @@
#include "HTMLParserIdioms.h"
#include "KeyboardEvent.h"
#include "RenderSlider.h"
+#include "SliderThumbElement.h"
#include "StepRange.h"
#include <limits>
#include <wtf/MathExtras.h>
@@ -192,6 +193,11 @@ void RangeInputType::forwardEvent(Event* event)
toRenderSlider(element()->renderer())->forwardEvent(event);
}
+void RangeInputType::createShadowSubtree()
+{
+ element()->setShadowRoot(SliderThumbElement::create(element()->document()));
+}
+
RenderObject* RangeInputType::createRenderer(RenderArena* arena, RenderStyle*) const
{
return new (arena) RenderSlider(element());
diff --git a/Source/WebCore/html/RangeInputType.h b/Source/WebCore/html/RangeInputType.h
index 7f341a7..57eb299 100644
--- a/Source/WebCore/html/RangeInputType.h
+++ b/Source/WebCore/html/RangeInputType.h
@@ -58,6 +58,7 @@ private:
virtual void handleKeydownEvent(KeyboardEvent*);
virtual void forwardEvent(Event*);
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*) const;
+ virtual void createShadowSubtree();
virtual double parseToDouble(const String&, double) const;
virtual String serialize(double) const;
virtual void accessKeyAction(bool sendToAnyElement);
diff --git a/Source/WebCore/html/ValidationMessage.cpp b/Source/WebCore/html/ValidationMessage.cpp
index 4418235..2c441c7 100644
--- a/Source/WebCore/html/ValidationMessage.cpp
+++ b/Source/WebCore/html/ValidationMessage.cpp
@@ -31,10 +31,18 @@
#include "config.h"
#include "ValidationMessage.h"
+#include "CSSStyleSelector.h"
+#include "FormAssociatedElement.h"
+#include "HTMLBRElement.h"
+#include "HTMLNames.h"
+#include "RenderObject.h"
+#include "Text.h"
#include <wtf/PassOwnPtr.h>
namespace WebCore {
+using namespace HTMLNames;
+
ALWAYS_INLINE ValidationMessage::ValidationMessage(FormAssociatedElement* element)
: m_element(element)
{
@@ -42,7 +50,7 @@ ALWAYS_INLINE ValidationMessage::ValidationMessage(FormAssociatedElement* elemen
ValidationMessage::~ValidationMessage()
{
- hideMessage();
+ deleteBubbleTree();
}
PassOwnPtr<ValidationMessage> ValidationMessage::create(FormAssociatedElement* element)
@@ -52,18 +60,105 @@ PassOwnPtr<ValidationMessage> ValidationMessage::create(FormAssociatedElement* e
void ValidationMessage::setMessage(const String& message)
{
- // FIXME: Construct validation message UI if m_message is empty.
-
+ // Don't modify the DOM tree in this context.
+ // If so, an assertion in Node::isFocusable() fails.
+ ASSERT(!message.isEmpty());
m_message = message;
+ if (!m_bubble)
+ m_timer.set(new Timer<ValidationMessage>(this, &ValidationMessage::buildBubbleTree));
+ else
+ m_timer.set(new Timer<ValidationMessage>(this, &ValidationMessage::setMessageDOMAndStartTimer));
+ m_timer->startOneShot(0);
+}
+
+void ValidationMessage::setMessageDOMAndStartTimer(Timer<ValidationMessage>*)
+{
+ ASSERT(m_bubbleMessage);
+ m_bubbleMessage->removeAllChildren();
+ Vector<String> lines;
+ m_message.split('\n', lines);
+ Document* doc = m_bubbleMessage->document();
+ ExceptionCode ec = 0;
+ for (unsigned i = 0; i < lines.size(); ++i) {
+ if (i) {
+ m_bubbleMessage->appendChild(HTMLBRElement::create(doc), ec);
+ m_bubbleMessage->appendChild(Text::create(doc, lines[i]), ec);
+ } else {
+ RefPtr<HTMLElement> bold = HTMLElement::create(bTag, doc);
+ bold->setInnerText(lines[i], ec);
+ m_bubbleMessage->appendChild(bold.release(), ec);
+ }
+ }
- m_timer.set(new Timer<ValidationMessage>(this, &ValidationMessage::hideMessage));
- m_timer->startOneShot(6.0); // FIXME: should be <message length> * something.
+ m_timer.set(new Timer<ValidationMessage>(this, &ValidationMessage::deleteBubbleTree));
+ m_timer->startOneShot(max(5.0, m_message.length() / 20.0));
}
-void ValidationMessage::hideMessage(Timer<ValidationMessage>*)
+class ElementWithPseudoId : public HTMLElement {
+public:
+ static PassRefPtr<HTMLElement> create(Document* doc, const AtomicString& pseudoName)
+ {
+ return adoptRef(new ElementWithPseudoId(doc, pseudoName));
+ }
+
+protected:
+ ElementWithPseudoId(Document* doc, const AtomicString& pseudoName)
+ : HTMLElement(divTag, doc)
+ , m_pseudoName(pseudoName) { };
+ virtual AtomicString shadowPseudoId() const { return m_pseudoName; }
+
+private:
+ AtomicString m_pseudoName;
+};
+
+void ValidationMessage::buildBubbleTree(Timer<ValidationMessage>*)
{
- // FIXME: Implement.
+ HTMLElement* host = toHTMLElement(m_element);
+ Document* doc = host->document();
+ m_bubble = ElementWithPseudoId::create(doc, "-webkit-validation-bubble");
+ ExceptionCode ec = 0;
+ // FIXME: We need a way to host multiple shadow roots in a single node, or
+ // to inherit an existing shadow tree.
+ if (host->shadowRoot())
+ host->shadowRoot()->appendChild(m_bubble.get(), ec);
+ else {
+ host->setShadowRoot(m_bubble);
+ // FIXME: The following attach() should be unnecessary.
+ m_bubble->attach();
+ }
+
+ m_bubble->appendChild(ElementWithPseudoId::create(doc, "-webkit-validation-bubble-top-outer-arrow"), ec);
+ m_bubble->appendChild(ElementWithPseudoId::create(doc, "-webkit-validation-bubble-top-inner-arrow"), ec);
+ m_bubbleMessage = ElementWithPseudoId::create(doc, "-webkit-validation-bubble-message");
+ m_bubble->appendChild(m_bubbleMessage, ec);
+ setMessageDOMAndStartTimer();
+
+ // FIXME: Use transition to show the bubble.
+
+ // We don't need to adjust the bubble location. The default position is enough.
+}
+
+void ValidationMessage::requestToHideMessage()
+{
+ // We must not modify the DOM tree in this context by the same reason as setMessage().
+ m_timer.set(new Timer<ValidationMessage>(this, &ValidationMessage::deleteBubbleTree));
+ m_timer->startOneShot(0);
+}
+
+void ValidationMessage::deleteBubbleTree(Timer<ValidationMessage>*)
+{
+ if (m_bubble) {
+ m_bubbleMessage = 0;
+ HTMLElement* host = toHTMLElement(m_element);
+ if (m_bubble->isShadowRoot())
+ host->setShadowRoot(0);
+ else {
+ ExceptionCode ec;
+ host->shadowRoot()->removeChild(m_bubble.get(), ec);
+ }
+ m_bubble = 0;
+ }
m_message = String();
}
diff --git a/Source/WebCore/html/ValidationMessage.h b/Source/WebCore/html/ValidationMessage.h
index d78e3f3..5fa1f96 100644
--- a/Source/WebCore/html/ValidationMessage.h
+++ b/Source/WebCore/html/ValidationMessage.h
@@ -34,11 +34,13 @@
#include "Timer.h"
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
+#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class FormAssociatedElement;
+class HTMLElement;
class ValidationMessage : public Noncopyable {
public:
@@ -46,14 +48,19 @@ public:
~ValidationMessage();
String message() const { return m_message; }
void setMessage(const String&);
+ void requestToHideMessage();
private:
ValidationMessage(FormAssociatedElement*);
- void hideMessage(Timer<ValidationMessage>* = 0);
+ void setMessageDOMAndStartTimer(Timer<ValidationMessage>* = 0);
+ void buildBubbleTree(Timer<ValidationMessage>*);
+ void deleteBubbleTree(Timer<ValidationMessage>* = 0);
FormAssociatedElement* m_element;
String m_message;
OwnPtr<Timer<ValidationMessage> > m_timer;
+ RefPtr<HTMLElement> m_bubble;
+ RefPtr<HTMLElement> m_bubbleMessage;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLActiveInfo.h b/Source/WebCore/html/canvas/WebGLActiveInfo.h
index 4650ea1..e75e1f5 100644
--- a/Source/WebCore/html/canvas/WebGLActiveInfo.h
+++ b/Source/WebCore/html/canvas/WebGLActiveInfo.h
@@ -26,6 +26,7 @@
#ifndef WebGLActiveInfo_h
#define WebGLActiveInfo_h
+#include "GraphicsContext3D.h"
#include "PlatformString.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -34,16 +35,16 @@ namespace WebCore {
class WebGLActiveInfo : public RefCounted<WebGLActiveInfo> {
public:
- static PassRefPtr<WebGLActiveInfo> create(const String& name, unsigned type, int size)
+ static PassRefPtr<WebGLActiveInfo> create(const String& name, GC3Denum type, GC3Dint size)
{
return adoptRef(new WebGLActiveInfo(name, type, size));
}
String name() const { return m_name; }
- unsigned type() const { return m_type; }
- int size() const { return m_size; }
+ GC3Denum type() const { return m_type; }
+ GC3Dint size() const { return m_size; }
private:
- WebGLActiveInfo(const String& name, unsigned type, int size)
+ WebGLActiveInfo(const String& name, GC3Denum type, GC3Dint size)
: m_name(name)
, m_type(type)
, m_size(size)
@@ -53,8 +54,8 @@ private:
ASSERT(size);
}
String m_name;
- unsigned m_type;
- int m_size;
+ GC3Denum m_type;
+ GC3Dint m_size;
};
}
diff --git a/Source/WebCore/html/canvas/WebGLBuffer.cpp b/Source/WebCore/html/canvas/WebGLBuffer.cpp
index f8c7b38..4566bfa 100644
--- a/Source/WebCore/html/canvas/WebGLBuffer.cpp
+++ b/Source/WebCore/html/canvas/WebGLBuffer.cpp
@@ -55,13 +55,16 @@ void WebGLBuffer::deleteObjectImpl(Platform3DObject object)
context()->graphicsContext3D()->deleteBuffer(object);
}
-bool WebGLBuffer::associateBufferDataImpl(ArrayBuffer* array, unsigned byteOffset, unsigned byteLength)
+bool WebGLBuffer::associateBufferDataImpl(ArrayBuffer* array, GC3Dintptr byteOffset, GC3Dsizeiptr byteLength)
{
+ if (byteLength < 0 || byteOffset < 0)
+ 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())
+ CheckedInt<int32_t> checkedOffset(byteOffset);
+ CheckedInt<int32_t> checkedLength(byteLength);
+ CheckedInt<int32_t> checkedMax = checkedOffset + checkedLength;
+ if (!checkedMax.valid() || checkedMax.value() > static_cast<int32_t>(array->byteLength()))
return false;
}
@@ -94,11 +97,11 @@ bool WebGLBuffer::associateBufferDataImpl(ArrayBuffer* array, unsigned byteOffse
}
}
-bool WebGLBuffer::associateBufferData(int size)
+bool WebGLBuffer::associateBufferData(GC3Dsizeiptr size)
{
if (size < 0)
return false;
- return associateBufferDataImpl(0, 0, static_cast<unsigned>(size));
+ return associateBufferDataImpl(0, 0, size);
}
bool WebGLBuffer::associateBufferData(ArrayBuffer* array)
@@ -115,18 +118,18 @@ bool WebGLBuffer::associateBufferData(ArrayBufferView* array)
return associateBufferDataImpl(array->buffer().get(), array->byteOffset(), array->byteLength());
}
-bool WebGLBuffer::associateBufferSubDataImpl(long offset, ArrayBuffer* array, unsigned arrayByteOffset, unsigned byteLength)
+bool WebGLBuffer::associateBufferSubDataImpl(GC3Dintptr offset, ArrayBuffer* array, GC3Dintptr arrayByteOffset, GC3Dsizeiptr byteLength)
{
- if (!array || offset < 0)
+ if (!array || offset < 0 || arrayByteOffset < 0 || byteLength < 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)
+ CheckedInt<int32_t> checkedBufferOffset(offset);
+ CheckedInt<int32_t> checkedArrayOffset(arrayByteOffset);
+ CheckedInt<int32_t> checkedLength(byteLength);
+ CheckedInt<int32_t> checkedArrayMax = checkedArrayOffset + checkedLength;
+ CheckedInt<int32_t> checkedBufferMax = checkedBufferOffset + checkedLength;
+ if (!checkedArrayMax.valid() || checkedArrayMax.value() > static_cast<int32_t>(array->byteLength()) || !checkedBufferMax.valid() || checkedBufferMax.value() > m_byteLength)
return false;
}
@@ -148,26 +151,26 @@ bool WebGLBuffer::associateBufferSubDataImpl(long offset, ArrayBuffer* array, un
}
}
-bool WebGLBuffer::associateBufferSubData(long offset, ArrayBuffer* array)
+bool WebGLBuffer::associateBufferSubData(GC3Dintptr offset, ArrayBuffer* array)
{
if (!array)
return false;
return associateBufferSubDataImpl(offset, array, 0, array->byteLength());
}
-bool WebGLBuffer::associateBufferSubData(long offset, ArrayBufferView* array)
+bool WebGLBuffer::associateBufferSubData(GC3Dintptr offset, ArrayBufferView* array)
{
if (!array)
return false;
return associateBufferSubDataImpl(offset, array->buffer().get(), array->byteOffset(), array->byteLength());
}
-unsigned WebGLBuffer::byteLength() const
+GC3Dsizeiptr WebGLBuffer::byteLength() const
{
return m_byteLength;
}
-long WebGLBuffer::getCachedMaxIndex(unsigned long type)
+int WebGLBuffer::getCachedMaxIndex(GC3Denum type)
{
for (size_t i = 0; i < WTF_ARRAY_LENGTH(m_maxIndexCache); ++i)
if (m_maxIndexCache[i].type == type)
@@ -175,7 +178,7 @@ long WebGLBuffer::getCachedMaxIndex(unsigned long type)
return -1;
}
-void WebGLBuffer::setCachedMaxIndex(unsigned long type, long value)
+void WebGLBuffer::setCachedMaxIndex(GC3Denum type, int value)
{
size_t numEntries = WTF_ARRAY_LENGTH(m_maxIndexCache);
for (size_t i = 0; i < numEntries; ++i)
@@ -188,7 +191,7 @@ void WebGLBuffer::setCachedMaxIndex(unsigned long type, long value)
m_nextAvailableCacheEntry = (m_nextAvailableCacheEntry + 1) % numEntries;
}
-void WebGLBuffer::setTarget(unsigned long target)
+void WebGLBuffer::setTarget(GC3Denum target)
{
// In WebGL, a buffer is bound to one target in its lifetime
if (m_target)
diff --git a/Source/WebCore/html/canvas/WebGLBuffer.h b/Source/WebCore/html/canvas/WebGLBuffer.h
index af819a3..ec79a2d 100644
--- a/Source/WebCore/html/canvas/WebGLBuffer.h
+++ b/Source/WebCore/html/canvas/WebGLBuffer.h
@@ -41,23 +41,23 @@ public:
static PassRefPtr<WebGLBuffer> create(WebGLRenderingContext*);
- bool associateBufferData(int size);
+ bool associateBufferData(GC3Dsizeiptr size);
bool associateBufferData(ArrayBuffer* array);
bool associateBufferData(ArrayBufferView* array);
- bool associateBufferSubData(long offset, ArrayBuffer* array);
- bool associateBufferSubData(long offset, ArrayBufferView* array);
+ bool associateBufferSubData(GC3Dintptr offset, ArrayBuffer* array);
+ bool associateBufferSubData(GC3Dintptr offset, ArrayBufferView* array);
- unsigned byteLength() const;
+ GC3Dsizeiptr 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);
+ int getCachedMaxIndex(GC3Denum type);
// Sets the cached max index for the given type.
- void setCachedMaxIndex(unsigned long type, long value);
+ void setCachedMaxIndex(GC3Denum type, int value);
- unsigned long getTarget() const { return m_target; }
- void setTarget(unsigned long);
+ GC3Denum getTarget() const { return m_target; }
+ void setTarget(GC3Denum);
bool hasEverBeenBound() const { return object() && m_target; }
@@ -69,10 +69,10 @@ protected:
private:
virtual bool isBuffer() const { return true; }
- unsigned long m_target;
+ GC3Denum m_target;
RefPtr<ArrayBuffer> m_elementArrayBuffer;
- unsigned m_byteLength;
+ GC3Dsizeiptr m_byteLength;
// Optimization for index validation. For each type of index
// (i.e., UNSIGNED_SHORT), cache the maximum index in the
@@ -82,22 +82,22 @@ private:
// draw call as long as all bound array buffers are at least
// that size.
struct MaxIndexCacheEntry {
- unsigned long type;
- long maxIndex;
+ GC3Denum type;
+ int 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;
+ unsigned int 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);
+ bool associateBufferDataImpl(ArrayBuffer* array, GC3Dintptr byteOffset, GC3Dsizeiptr byteLength);
// Helper function called by the two associateBufferSubData().
- bool associateBufferSubDataImpl(long offset, ArrayBuffer* array, unsigned arrayByteOffset, unsigned byteLength);
+ bool associateBufferSubDataImpl(GC3Dintptr offset, ArrayBuffer* array, GC3Dintptr arrayByteOffset, GC3Dsizeiptr byteLength);
};
} // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLFramebuffer.cpp b/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
index a1c3a9a..dbc714b 100644
--- a/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
+++ b/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
@@ -37,7 +37,7 @@ namespace {
// This function is only for depth/stencil/depth_stencil attachment.
// Currently we assume these attachments are all renderbuffers.
- unsigned long getInternalFormat(WebGLObject* buffer)
+ GC3Denum getInternalFormat(WebGLObject* buffer)
{
ASSERT(buffer && buffer->isRenderbuffer());
return (reinterpret_cast<WebGLRenderbuffer*>(buffer))->getInternalFormat();
@@ -82,7 +82,7 @@ WebGLFramebuffer::WebGLFramebuffer(WebGLRenderingContext* ctx)
setObject(context()->graphicsContext3D()->createFramebuffer());
}
-void WebGLFramebuffer::setAttachment(unsigned long attachment, unsigned long texTarget, WebGLTexture* texture, int level)
+void WebGLFramebuffer::setAttachment(GC3Denum attachment, GC3Denum texTarget, WebGLTexture* texture, GC3Dint level)
{
if (!object())
return;
@@ -110,7 +110,7 @@ void WebGLFramebuffer::setAttachment(unsigned long attachment, unsigned long tex
}
}
-void WebGLFramebuffer::setAttachment(unsigned long attachment, WebGLRenderbuffer* renderbuffer)
+void WebGLFramebuffer::setAttachment(GC3Denum attachment, WebGLRenderbuffer* renderbuffer)
{
if (!object())
return;
@@ -134,7 +134,7 @@ void WebGLFramebuffer::setAttachment(unsigned long attachment, WebGLRenderbuffer
}
}
-WebGLObject* WebGLFramebuffer::getAttachment(unsigned long attachment) const
+WebGLObject* WebGLFramebuffer::getAttachment(GC3Denum attachment) const
{
if (!object())
return 0;
@@ -168,7 +168,7 @@ void WebGLFramebuffer::removeAttachment(WebGLObject* attachment)
return;
}
-int WebGLFramebuffer::getWidth() const
+GC3Dsizei WebGLFramebuffer::getWidth() const
{
if (!object() || !isColorAttached())
return 0;
@@ -180,7 +180,7 @@ int WebGLFramebuffer::getWidth() const
return 0;
}
-int WebGLFramebuffer::getHeight() const
+GC3Dsizei WebGLFramebuffer::getHeight() const
{
if (!object() || !isColorAttached())
return 0;
@@ -192,7 +192,7 @@ int WebGLFramebuffer::getHeight() const
return 0;
}
-unsigned long WebGLFramebuffer::getColorBufferFormat() const
+GC3Denum WebGLFramebuffer::getColorBufferFormat() const
{
if (!object() || !isColorAttached())
return 0;
@@ -260,7 +260,7 @@ bool WebGLFramebuffer::initializeRenderbuffers()
{
ASSERT(object());
bool initColor = false, initDepth = false, initStencil = false;
- unsigned long mask = 0;
+ GC3Dbitfield mask = 0;
if (isUninitialized(m_colorAttachment.get())) {
initColor = true;
mask |= GraphicsContext3D::COLOR_BUFFER_BIT;
@@ -287,12 +287,12 @@ bool WebGLFramebuffer::initializeRenderbuffers()
if (g3d->checkFramebufferStatus(GraphicsContext3D::FRAMEBUFFER) != GraphicsContext3D::FRAMEBUFFER_COMPLETE)
return false;
- float colorClearValue[] = {0, 0, 0, 0}, depthClearValue = 0;
- int stencilClearValue = 0;
- unsigned char colorMask[] = {0, 0, 0, 0}, depthMask = 0;
- unsigned int stencilMask = 0xffffffff;
- bool isScissorEnabled = false;
- bool isDitherEnabled = false;
+ GC3Dfloat colorClearValue[] = {0, 0, 0, 0}, depthClearValue = 0;
+ GC3Dint stencilClearValue = 0;
+ GC3Dboolean colorMask[] = {0, 0, 0, 0}, depthMask = 0;
+ GC3Duint stencilMask = 0xffffffff;
+ GC3Dboolean isScissorEnabled = 0;
+ GC3Dboolean isDitherEnabled = 0;
if (initColor) {
g3d->getFloatv(GraphicsContext3D::COLOR_CLEAR_VALUE, colorClearValue);
g3d->getBooleanv(GraphicsContext3D::COLOR_WRITEMASK, colorMask);
@@ -307,7 +307,7 @@ bool WebGLFramebuffer::initializeRenderbuffers()
}
if (initStencil) {
g3d->getIntegerv(GraphicsContext3D::STENCIL_CLEAR_VALUE, &stencilClearValue);
- g3d->getIntegerv(GraphicsContext3D::STENCIL_WRITEMASK, reinterpret_cast<int*>(&stencilMask));
+ g3d->getIntegerv(GraphicsContext3D::STENCIL_WRITEMASK, reinterpret_cast<GC3Dint*>(&stencilMask));
g3d->clearStencil(0);
g3d->stencilMask(0xffffffff);
}
diff --git a/Source/WebCore/html/canvas/WebGLFramebuffer.h b/Source/WebCore/html/canvas/WebGLFramebuffer.h
index d801904..a1cb86f 100644
--- a/Source/WebCore/html/canvas/WebGLFramebuffer.h
+++ b/Source/WebCore/html/canvas/WebGLFramebuffer.h
@@ -42,15 +42,15 @@ public:
static PassRefPtr<WebGLFramebuffer> create(WebGLRenderingContext*);
- void setAttachment(unsigned long attachment, unsigned long texTarget, WebGLTexture*, int level);
- void setAttachment(unsigned long attachment, WebGLRenderbuffer*);
+ void setAttachment(GC3Denum attachment, GC3Denum texTarget, WebGLTexture*, GC3Dint level);
+ void setAttachment(GC3Denum attachment, WebGLRenderbuffer*);
// If an object is attached to the framebuffer, remove it.
void removeAttachment(WebGLObject*);
- WebGLObject* getAttachment(unsigned long) const;
+ WebGLObject* getAttachment(GC3Denum) const;
- unsigned long getColorBufferFormat() const;
- int getWidth() const;
- int getHeight() const;
+ GC3Denum getColorBufferFormat() const;
+ GC3Dsizei getWidth() const;
+ GC3Dsizei getHeight() const;
// This should always be called before drawArray, drawElements, clear,
// readPixels, copyTexImage2D, copyTexSubImage2D if this framebuffer is
@@ -90,8 +90,8 @@ private:
bool m_hasEverBeenBound;
- unsigned long m_texTarget;
- int m_texLevel;
+ GC3Denum m_texTarget;
+ GC3Dint m_texLevel;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLProgram.cpp b/Source/WebCore/html/canvas/WebGLProgram.cpp
index b2c2086..b3fa363 100644
--- a/Source/WebCore/html/canvas/WebGLProgram.cpp
+++ b/Source/WebCore/html/canvas/WebGLProgram.cpp
@@ -70,7 +70,7 @@ bool WebGLProgram::cacheActiveAttribLocations()
if (!m_linkStatus)
return false;
- int numAttribs = 0;
+ GC3Dint numAttribs = 0;
context3d->getProgramiv(object(), GraphicsContext3D::ACTIVE_ATTRIBUTES, &numAttribs);
m_activeAttribLocations.resize(static_cast<size_t>(numAttribs));
for (int i = 0; i < numAttribs; ++i) {
@@ -82,21 +82,21 @@ bool WebGLProgram::cacheActiveAttribLocations()
return true;
}
-int WebGLProgram::numActiveAttribLocations() const
+unsigned WebGLProgram::numActiveAttribLocations() const
{
- return static_cast<int>(m_activeAttribLocations.size());
+ return m_activeAttribLocations.size();
}
-int WebGLProgram::getActiveAttribLocation(int index) const
+GC3Dint WebGLProgram::getActiveAttribLocation(GC3Duint index) const
{
- if (index < 0 || index >= numActiveAttribLocations())
+ if (index >= numActiveAttribLocations())
return -1;
- return m_activeAttribLocations[static_cast<size_t>(index)];
+ return m_activeAttribLocations[index];
}
bool WebGLProgram::isUsingVertexAttrib0() const
{
- for (int ii = 0; ii < numActiveAttribLocations(); ++ii) {
+ for (unsigned ii = 0; ii < numActiveAttribLocations(); ++ii) {
if (!getActiveAttribLocation(ii))
return true;
}
diff --git a/Source/WebCore/html/canvas/WebGLProgram.h b/Source/WebCore/html/canvas/WebGLProgram.h
index 6b89ae5..f2acef8 100644
--- a/Source/WebCore/html/canvas/WebGLProgram.h
+++ b/Source/WebCore/html/canvas/WebGLProgram.h
@@ -45,15 +45,15 @@ public:
// cacheActiveAttribLocation() is only called once after linkProgram()
// succeeds.
bool cacheActiveAttribLocations();
- int numActiveAttribLocations() const;
- int getActiveAttribLocation(int index) const;
+ unsigned numActiveAttribLocations() const;
+ GC3Dint getActiveAttribLocation(GC3Duint index) const;
bool isUsingVertexAttrib0() const;
bool getLinkStatus() const { return m_linkStatus; }
void setLinkStatus(bool status) { m_linkStatus = status; }
- unsigned long getLinkCount() const { return m_linkCount; }
+ unsigned getLinkCount() const { return m_linkCount; }
// This is to be called everytime after the program is successfully linked.
// We don't deal with integer overflow here, assuming in reality a program
@@ -72,13 +72,13 @@ protected:
private:
virtual bool isProgram() const { return true; }
- Vector<int> m_activeAttribLocations;
+ Vector<GC3Dint> m_activeAttribLocations;
- bool m_linkStatus;
+ GC3Dint m_linkStatus;
// This is used to track whether a WebGLUniformLocation belongs to this
// program or not.
- unsigned long m_linkCount;
+ unsigned m_linkCount;
RefPtr<WebGLShader> m_vertexShader;
RefPtr<WebGLShader> m_fragmentShader;
diff --git a/Source/WebCore/html/canvas/WebGLRenderbuffer.h b/Source/WebCore/html/canvas/WebGLRenderbuffer.h
index a432f9d..4b47bf5 100644
--- a/Source/WebCore/html/canvas/WebGLRenderbuffer.h
+++ b/Source/WebCore/html/canvas/WebGLRenderbuffer.h
@@ -39,20 +39,20 @@ public:
static PassRefPtr<WebGLRenderbuffer> create(WebGLRenderingContext*);
- void setInternalFormat(unsigned long internalformat)
+ void setInternalFormat(GC3Denum internalformat)
{
m_internalFormat = internalformat;
m_initialized = false;
}
- unsigned long getInternalFormat() const { return m_internalFormat; }
+ GC3Denum getInternalFormat() const { return m_internalFormat; }
- void setSize(unsigned long width, unsigned long height)
+ void setSize(GC3Dsizei width, GC3Dsizei height)
{
m_width = width;
m_height = height;
}
- unsigned long getWidth() const { return m_width; }
- unsigned long getHeight() const { return m_height; }
+ GC3Dsizei getWidth() const { return m_width; }
+ GC3Dsizei getHeight() const { return m_height; }
void setIsValid(bool isValid) { m_isValid = isValid; }
bool isValid() const { return m_isValid; }
@@ -72,9 +72,9 @@ protected:
private:
virtual bool isRenderbuffer() const { return true; }
- unsigned long m_internalFormat;
+ GC3Denum m_internalFormat;
bool m_initialized;
- unsigned long m_width, m_height;
+ GC3Dsizei m_width, m_height;
bool m_isValid; // This is only false if internalFormat is DEPTH_STENCIL and packed_depth_stencil is not supported.
bool m_hasEverBeenBound;
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp
index 4ffd400..c445e2b 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContext.cpp
+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.cpp
@@ -74,14 +74,14 @@ namespace {
return object ? object->object() : 0;
}
- void clip1D(long start, long range, long sourceRange, long* clippedStart, long* clippedRange)
+ void clip1D(GC3Dint start, GC3Dsizei range, GC3Dsizei sourceRange, GC3Dint* clippedStart, GC3Dsizei* clippedRange)
{
ASSERT(clippedStart && clippedRange);
if (start < 0) {
range += start;
start = 0;
}
- long end = start + range;
+ GC3Dint end = start + range;
if (end > sourceRange)
range -= end - sourceRange;
*clippedStart = start;
@@ -89,9 +89,9 @@ namespace {
}
// Returns false if no clipping is necessary, i.e., x, y, width, height stay the same.
- bool clip2D(long x, long y, long width, long height,
- long sourceWidth, long sourceHeight,
- long* clippedX, long* clippedY, long* clippedWidth, long*clippedHeight)
+ bool clip2D(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height,
+ GC3Dsizei sourceWidth, GC3Dsizei sourceHeight,
+ GC3Dint* clippedX, GC3Dint* clippedY, GC3Dsizei* clippedWidth, GC3Dsizei*clippedHeight)
{
ASSERT(clippedX && clippedY && clippedWidth && clippedHeight);
clip1D(x, width, sourceWidth, clippedX, clippedWidth);
@@ -101,11 +101,12 @@ namespace {
// Return true if a character belongs to the ASCII subset as defined in
// GLSL ES 1.0 spec section 3.1.
+ // We make exceptions for " ' `.
bool validateCharacter(unsigned char c)
{
// Printing characters are valid except " $ ` @ \ ' DEL.
if (c >= 32 && c <= 126
- && c != '"' && c != '$' && c != '`' && c != '@' && c != '\\' && c != '\'')
+ && c != '$' && c != '@' && c != '\\')
return true;
// Horizontal tab, line feed, vertical tab, form feed, carriage return
// are also valid.
@@ -208,12 +209,12 @@ void WebGLRenderingContext::initializeNewContext()
m_stencilFuncMaskBack = 0xFFFFFFFF;
m_vertexAttribState.clear();
- int numCombinedTextureImageUnits = 0;
+ GC3Dint numCombinedTextureImageUnits = 0;
m_context->getIntegerv(GraphicsContext3D::MAX_COMBINED_TEXTURE_IMAGE_UNITS, &numCombinedTextureImageUnits);
m_textureUnits.clear();
m_textureUnits.resize(numCombinedTextureImageUnits);
- int numVertexAttribs = 0;
+ GC3Dint numVertexAttribs = 0;
m_context->getIntegerv(GraphicsContext3D::MAX_VERTEX_ATTRIBS, &numVertexAttribs);
m_maxVertexAttribs = numVertexAttribs;
@@ -300,12 +301,12 @@ void WebGLRenderingContext::reshape(int width, int height)
m_context->reshape(width, height);
}
-int WebGLRenderingContext::sizeInBytes(int type)
+unsigned int WebGLRenderingContext::sizeInBytes(GC3Denum type)
{
return m_context->sizeInBytes(type);
}
-void WebGLRenderingContext::activeTexture(unsigned long texture, ExceptionCode& ec)
+void WebGLRenderingContext::activeTexture(GC3Denum texture, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -333,7 +334,7 @@ void WebGLRenderingContext::attachShader(WebGLProgram* program, WebGLShader* sha
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bindAttribLocation(WebGLProgram* program, unsigned long index, const String& name, ExceptionCode& ec)
+void WebGLRenderingContext::bindAttribLocation(WebGLProgram* program, GC3Duint index, const String& name, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateWebGLObject(program))
@@ -344,7 +345,7 @@ void WebGLRenderingContext::bindAttribLocation(WebGLProgram* program, unsigned l
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bindBuffer(unsigned long target, WebGLBuffer* buffer, ExceptionCode& ec)
+void WebGLRenderingContext::bindBuffer(GC3Denum target, WebGLBuffer* buffer, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -374,7 +375,7 @@ void WebGLRenderingContext::bindBuffer(unsigned long target, WebGLBuffer* buffer
}
-void WebGLRenderingContext::bindFramebuffer(unsigned long target, WebGLFramebuffer* buffer, ExceptionCode& ec)
+void WebGLRenderingContext::bindFramebuffer(GC3Denum target, WebGLFramebuffer* buffer, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -394,7 +395,7 @@ void WebGLRenderingContext::bindFramebuffer(unsigned long target, WebGLFramebuff
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bindRenderbuffer(unsigned long target, WebGLRenderbuffer* renderBuffer, ExceptionCode& ec)
+void WebGLRenderingContext::bindRenderbuffer(GC3Denum target, WebGLRenderbuffer* renderBuffer, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -415,7 +416,7 @@ void WebGLRenderingContext::bindRenderbuffer(unsigned long target, WebGLRenderbu
}
-void WebGLRenderingContext::bindTexture(unsigned long target, WebGLTexture* texture, ExceptionCode& ec)
+void WebGLRenderingContext::bindTexture(GC3Denum target, WebGLTexture* texture, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -424,7 +425,7 @@ void WebGLRenderingContext::bindTexture(unsigned long target, WebGLTexture* text
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
- int maxLevel = 0;
+ GC3Dint maxLevel = 0;
if (target == GraphicsContext3D::TEXTURE_2D) {
m_textureUnits[m_activeTextureUnit].m_texture2DBinding = texture;
maxLevel = m_maxTextureLevel;
@@ -451,7 +452,7 @@ void WebGLRenderingContext::bindTexture(unsigned long target, WebGLTexture* text
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::blendColor(float red, float green, float blue, float alpha)
+void WebGLRenderingContext::blendColor(GC3Dfloat red, GC3Dfloat green, GC3Dfloat blue, GC3Dfloat alpha)
{
if (isContextLost())
return;
@@ -459,7 +460,7 @@ void WebGLRenderingContext::blendColor(float red, float green, float blue, float
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::blendEquation(unsigned long mode)
+void WebGLRenderingContext::blendEquation(GC3Denum mode)
{
if (isContextLost() || !validateBlendEquation(mode))
return;
@@ -467,7 +468,7 @@ void WebGLRenderingContext::blendEquation(unsigned long mode)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::blendEquationSeparate(unsigned long modeRGB, unsigned long modeAlpha)
+void WebGLRenderingContext::blendEquationSeparate(GC3Denum modeRGB, GC3Denum modeAlpha)
{
if (isContextLost() || !validateBlendEquation(modeRGB) || !validateBlendEquation(modeAlpha))
return;
@@ -476,7 +477,7 @@ void WebGLRenderingContext::blendEquationSeparate(unsigned long modeRGB, unsigne
}
-void WebGLRenderingContext::blendFunc(unsigned long sfactor, unsigned long dfactor)
+void WebGLRenderingContext::blendFunc(GC3Denum sfactor, GC3Denum dfactor)
{
if (isContextLost() || !validateBlendFuncFactors(sfactor, dfactor))
return;
@@ -484,7 +485,7 @@ void WebGLRenderingContext::blendFunc(unsigned long sfactor, unsigned long dfact
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha)
+void WebGLRenderingContext::blendFuncSeparate(GC3Denum srcRGB, GC3Denum dstRGB, GC3Denum srcAlpha, GC3Denum dstAlpha)
{
if (isContextLost() || !validateBlendFuncFactors(srcRGB, dstRGB))
return;
@@ -492,7 +493,7 @@ void WebGLRenderingContext::blendFuncSeparate(unsigned long srcRGB, unsigned lon
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bufferData(unsigned long target, int size, unsigned long usage, ExceptionCode& ec)
+void WebGLRenderingContext::bufferData(GC3Denum target, GC3Dsizeiptr size, GC3Denum usage, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -511,7 +512,7 @@ void WebGLRenderingContext::bufferData(unsigned long target, int size, unsigned
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage, ExceptionCode& ec)
+void WebGLRenderingContext::bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -534,7 +535,7 @@ void WebGLRenderingContext::bufferData(unsigned long target, ArrayBuffer* data,
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage, ExceptionCode& ec)
+void WebGLRenderingContext::bufferData(GC3Denum target, ArrayBufferView* data, GC3Denum usage, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -557,7 +558,7 @@ void WebGLRenderingContext::bufferData(unsigned long target, ArrayBufferView* da
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bufferSubData(unsigned long target, long offset, ArrayBuffer* data, ExceptionCode& ec)
+void WebGLRenderingContext::bufferSubData(GC3Denum target, GC3Dintptr offset, ArrayBuffer* data, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -578,7 +579,7 @@ void WebGLRenderingContext::bufferSubData(unsigned long target, long offset, Arr
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::bufferSubData(unsigned long target, long offset, ArrayBufferView* data, ExceptionCode& ec)
+void WebGLRenderingContext::bufferSubData(GC3Denum target, GC3Dintptr offset, ArrayBufferView* data, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -599,7 +600,7 @@ void WebGLRenderingContext::bufferSubData(unsigned long target, long offset, Arr
cleanupAfterGraphicsCall(false);
}
-unsigned long WebGLRenderingContext::checkFramebufferStatus(unsigned long target)
+GC3Denum WebGLRenderingContext::checkFramebufferStatus(GC3Denum target)
{
if (isContextLost())
return GraphicsContext3D::FRAMEBUFFER_UNSUPPORTED;
@@ -616,7 +617,7 @@ unsigned long WebGLRenderingContext::checkFramebufferStatus(unsigned long target
return result;
}
-void WebGLRenderingContext::clear(unsigned long mask)
+void WebGLRenderingContext::clear(GC3Dbitfield mask)
{
if (isContextLost())
return;
@@ -632,7 +633,7 @@ void WebGLRenderingContext::clear(unsigned long mask)
cleanupAfterGraphicsCall(true);
}
-void WebGLRenderingContext::clearColor(float r, float g, float b, float a)
+void WebGLRenderingContext::clearColor(GC3Dfloat r, GC3Dfloat g, GC3Dfloat b, GC3Dfloat a)
{
if (isContextLost())
return;
@@ -648,7 +649,7 @@ void WebGLRenderingContext::clearColor(float r, float g, float b, float a)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::clearDepth(float depth)
+void WebGLRenderingContext::clearDepth(GC3Dfloat depth)
{
if (isContextLost())
return;
@@ -656,7 +657,7 @@ void WebGLRenderingContext::clearDepth(float depth)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::clearStencil(long s)
+void WebGLRenderingContext::clearStencil(GC3Dint s)
{
if (isContextLost())
return;
@@ -664,7 +665,7 @@ void WebGLRenderingContext::clearStencil(long s)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::colorMask(bool red, bool green, bool blue, bool alpha)
+void WebGLRenderingContext::colorMask(GC3Dboolean red, GC3Dboolean green, GC3Dboolean blue, GC3Dboolean alpha)
{
if (isContextLost())
return;
@@ -681,7 +682,7 @@ void WebGLRenderingContext::compileShader(WebGLShader* shader, ExceptionCode& ec
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, long width, long height, long border)
+void WebGLRenderingContext::copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border)
{
if (isContextLost())
return;
@@ -705,10 +706,11 @@ void WebGLRenderingContext::copyTexImage2D(unsigned long target, long level, uns
if (isResourceSafe())
m_context->copyTexImage2D(target, level, internalformat, x, y, width, height, border);
else {
- long clippedX, clippedY, clippedWidth, clippedHeight;
+ GC3Dint clippedX, clippedY;
+ GC3Dsizei clippedWidth, clippedHeight;
if (clip2D(x, y, width, height, getBoundFramebufferWidth(), getBoundFramebufferHeight(), &clippedX, &clippedY, &clippedWidth, &clippedHeight)) {
m_context->texImage2DResourceSafe(target, level, internalformat, width, height, border,
- internalformat, GraphicsContext3D::UNSIGNED_BYTE);
+ internalformat, GraphicsContext3D::UNSIGNED_BYTE, m_unpackAlignment);
if (clippedWidth > 0 && clippedHeight > 0) {
m_context->copyTexSubImage2D(target, level, clippedX - x, clippedY - y,
clippedX, clippedY, clippedWidth, clippedHeight);
@@ -721,7 +723,7 @@ void WebGLRenderingContext::copyTexImage2D(unsigned long target, long level, uns
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, long width, long height)
+void WebGLRenderingContext::copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height)
{
if (isContextLost())
return;
@@ -747,20 +749,19 @@ void WebGLRenderingContext::copyTexSubImage2D(unsigned long target, long level,
if (isResourceSafe())
m_context->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
else {
- long clippedX, clippedY, clippedWidth, clippedHeight;
+ GC3Dint clippedX, clippedY;
+ GC3Dsizei clippedWidth, clippedHeight;
if (clip2D(x, y, width, height, getBoundFramebufferWidth(), getBoundFramebufferHeight(), &clippedX, &clippedY, &clippedWidth, &clippedHeight)) {
- unsigned long format = tex->getInternalFormat(target, level);
- unsigned long type = tex->getType(target, level);
- unsigned int componentsPerPixel = 0;
- unsigned int bytesPerComponent = 0;
- bool valid = m_context->computeFormatAndTypeParameters(format, type, &componentsPerPixel, &bytesPerComponent);
- if (!valid) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
- return;
- }
+ GC3Denum format = tex->getInternalFormat(target, level);
+ GC3Denum type = tex->getType(target, level);
OwnArrayPtr<unsigned char> zero;
if (width && height) {
- unsigned long size = componentsPerPixel * bytesPerComponent * width * height;
+ unsigned int size;
+ GC3Denum error = m_context->computeImageSizeInBytes(format, type, width, height, m_unpackAlignment, &size, 0);
+ if (error != GraphicsContext3D::NO_ERROR) {
+ m_context->synthesizeGLError(error);
+ return;
+ }
zero = adoptArrayPtr(new unsigned char[size]);
if (!zero) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -768,11 +769,7 @@ void WebGLRenderingContext::copyTexSubImage2D(unsigned long target, long level,
}
memset(zero.get(), 0, size);
}
- if (zero)
- m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, 1);
m_context->texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, zero.get());
- if (zero)
- m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
if (clippedWidth > 0 && clippedHeight > 0) {
m_context->copyTexSubImage2D(target, level, xoffset + clippedX - x, yoffset + clippedY - y,
clippedX, clippedY, clippedWidth, clippedHeight);
@@ -828,7 +825,7 @@ PassRefPtr<WebGLRenderbuffer> WebGLRenderingContext::createRenderbuffer()
return o;
}
-PassRefPtr<WebGLShader> WebGLRenderingContext::createShader(unsigned long type, ExceptionCode& ec)
+PassRefPtr<WebGLShader> WebGLRenderingContext::createShader(GC3Denum type, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -838,12 +835,12 @@ PassRefPtr<WebGLShader> WebGLRenderingContext::createShader(unsigned long type,
return 0;
}
- RefPtr<WebGLShader> o = WebGLShader::create(this, static_cast<GraphicsContext3D::WebGLEnumType>(type));
+ RefPtr<WebGLShader> o = WebGLShader::create(this, type);
addObject(o.get());
return o;
}
-void WebGLRenderingContext::cullFace(unsigned long mode)
+void WebGLRenderingContext::cullFace(GC3Denum mode)
{
if (isContextLost())
return;
@@ -927,7 +924,7 @@ void WebGLRenderingContext::deleteTexture(WebGLTexture* texture)
m_framebufferBinding->removeAttachment(texture);
}
-void WebGLRenderingContext::depthFunc(unsigned long func)
+void WebGLRenderingContext::depthFunc(GC3Denum func)
{
if (isContextLost())
return;
@@ -935,7 +932,7 @@ void WebGLRenderingContext::depthFunc(unsigned long func)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::depthMask(bool flag)
+void WebGLRenderingContext::depthMask(GC3Dboolean flag)
{
if (isContextLost())
return;
@@ -943,7 +940,7 @@ void WebGLRenderingContext::depthMask(bool flag)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::depthRange(float zNear, float zFar)
+void WebGLRenderingContext::depthRange(GC3Dfloat zNear, GC3Dfloat zFar)
{
if (isContextLost())
return;
@@ -970,7 +967,7 @@ void WebGLRenderingContext::detachShader(WebGLProgram* program, WebGLShader* sha
}
-void WebGLRenderingContext::disable(unsigned long cap)
+void WebGLRenderingContext::disable(GC3Denum cap)
{
if (isContextLost() || !validateCapability(cap))
return;
@@ -978,7 +975,7 @@ void WebGLRenderingContext::disable(unsigned long cap)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::disableVertexAttribArray(unsigned long index, ExceptionCode& ec)
+void WebGLRenderingContext::disableVertexAttribArray(GC3Duint index, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -997,7 +994,7 @@ void WebGLRenderingContext::disableVertexAttribArray(unsigned long index, Except
}
}
-bool WebGLRenderingContext::validateElementArraySize(unsigned long count, unsigned long type, long offset)
+bool WebGLRenderingContext::validateElementArraySize(GC3Dsizei count, GC3Denum type, GC3Dintptr offset)
{
if (!m_boundElementArrayBuffer)
return false;
@@ -1005,28 +1002,26 @@ bool WebGLRenderingContext::validateElementArraySize(unsigned long count, unsign
if (offset < 0)
return false;
- unsigned long uoffset = static_cast<unsigned long>(offset);
-
if (type == GraphicsContext3D::UNSIGNED_SHORT) {
// For an unsigned short array, offset must be divisible by 2 for alignment reasons.
- if (uoffset & 1)
+ if (offset % 2)
return false;
// Make uoffset an element offset.
- uoffset /= 2;
+ offset /= 2;
- unsigned long n = m_boundElementArrayBuffer->byteLength() / 2;
- if (uoffset > n || count > n - uoffset)
+ GC3Dsizeiptr n = m_boundElementArrayBuffer->byteLength() / 2;
+ if (offset > n || count > n - offset)
return false;
} else if (type == GraphicsContext3D::UNSIGNED_BYTE) {
- unsigned long n = m_boundElementArrayBuffer->byteLength();
- if (uoffset > n || count > n - uoffset)
+ GC3Dsizeiptr n = m_boundElementArrayBuffer->byteLength();
+ if (offset > n || count > n - offset)
return false;
}
return true;
}
-bool WebGLRenderingContext::validateIndexArrayConservative(unsigned long type, long& numElementsRequired)
+bool WebGLRenderingContext::validateIndexArrayConservative(GC3Denum type, int& numElementsRequired)
{
// Performs conservative validation by caching a maximum index of
// the given type per element array buffer. If all of the bound
@@ -1037,28 +1032,28 @@ bool WebGLRenderingContext::validateIndexArrayConservative(unsigned long type, l
if (!m_boundElementArrayBuffer)
return false;
- unsigned numElements = m_boundElementArrayBuffer->byteLength();
+ GC3Dsizeiptr numElements = m_boundElementArrayBuffer->byteLength();
// The case count==0 is already dealt with in drawElements before validateIndexArrayConservative.
if (!numElements)
return false;
const ArrayBuffer* buffer = m_boundElementArrayBuffer->elementArrayBuffer();
ASSERT(buffer);
- long maxIndex = m_boundElementArrayBuffer->getCachedMaxIndex(type);
+ int maxIndex = m_boundElementArrayBuffer->getCachedMaxIndex(type);
if (maxIndex < 0) {
// Compute the maximum index in the entire buffer for the given type of index.
switch (type) {
case GraphicsContext3D::UNSIGNED_BYTE: {
- const unsigned char* p = static_cast<const unsigned char*>(buffer->data());
- for (unsigned i = 0; i < numElements; i++)
- maxIndex = max(maxIndex, static_cast<long>(p[i]));
+ const GC3Dubyte* p = static_cast<const GC3Dubyte*>(buffer->data());
+ for (GC3Dsizeiptr i = 0; i < numElements; i++)
+ maxIndex = max(maxIndex, static_cast<int>(p[i]));
break;
}
case GraphicsContext3D::UNSIGNED_SHORT: {
- numElements /= sizeof(unsigned short);
- const unsigned short* p = static_cast<const unsigned short*>(buffer->data());
- for (unsigned i = 0; i < numElements; i++)
- maxIndex = max(maxIndex, static_cast<long>(p[i]));
+ numElements /= sizeof(GC3Dushort);
+ const GC3Dushort* p = static_cast<const GC3Dushort*>(buffer->data());
+ for (GC3Dsizeiptr i = 0; i < numElements; i++)
+ maxIndex = max(maxIndex, static_cast<int>(p[i]));
break;
}
default:
@@ -1077,9 +1072,10 @@ bool WebGLRenderingContext::validateIndexArrayConservative(unsigned long type, l
return false;
}
-bool WebGLRenderingContext::validateIndexArrayPrecise(unsigned long count, unsigned long type, long offset, long& numElementsRequired)
+bool WebGLRenderingContext::validateIndexArrayPrecise(GC3Dsizei count, GC3Denum type, GC3Dintptr offset, int& numElementsRequired)
{
- long lastIndex = -1;
+ ASSERT(count >= 0 && offset >= 0);
+ int lastIndex = -1;
if (!m_boundElementArrayBuffer)
return false;
@@ -1092,20 +1088,20 @@ bool WebGLRenderingContext::validateIndexArrayPrecise(unsigned long count, unsig
if (!m_boundElementArrayBuffer->elementArrayBuffer())
return false;
- unsigned long uoffset = static_cast<unsigned long>(offset);
+ unsigned long uoffset = offset;
unsigned long n = count;
if (type == GraphicsContext3D::UNSIGNED_SHORT) {
// Make uoffset an element offset.
- uoffset /= 2;
- const unsigned short* p = static_cast<const unsigned short*>(m_boundElementArrayBuffer->elementArrayBuffer()->data()) + uoffset;
+ uoffset /= sizeof(GC3Dushort);
+ const GC3Dushort* p = static_cast<const GC3Dushort*>(m_boundElementArrayBuffer->elementArrayBuffer()->data()) + uoffset;
while (n-- > 0) {
if (*p > lastIndex)
lastIndex = *p;
++p;
}
} else if (type == GraphicsContext3D::UNSIGNED_BYTE) {
- const unsigned char* p = static_cast<const unsigned char*>(m_boundElementArrayBuffer->elementArrayBuffer()->data()) + uoffset;
+ const GC3Dubyte* p = static_cast<const GC3Dubyte*>(m_boundElementArrayBuffer->elementArrayBuffer()->data()) + uoffset;
while (n-- > 0) {
if (*p > lastIndex)
lastIndex = *p;
@@ -1118,7 +1114,7 @@ bool WebGLRenderingContext::validateIndexArrayPrecise(unsigned long count, unsig
return numElementsRequired > 0;
}
-bool WebGLRenderingContext::validateRenderingState(long numElementsRequired)
+bool WebGLRenderingContext::validateRenderingState(int numElementsRequired)
{
if (!m_currentProgram)
return false;
@@ -1136,7 +1132,7 @@ bool WebGLRenderingContext::validateRenderingState(long numElementsRequired)
return true;
// Look in each consumed vertex attrib (by the current program) and find the smallest buffer size
- long smallestNumElements = LONG_MAX;
+ int smallestNumElements = INT_MAX;
int numActiveAttribLocations = m_currentProgram->numActiveAttribLocations();
for (int i = 0; i < numActiveAttribLocations; ++i) {
int loc = m_currentProgram->getActiveAttribLocation(i);
@@ -1146,8 +1142,9 @@ bool WebGLRenderingContext::validateRenderingState(long numElementsRequired)
// Avoid off-by-one errors in numElements computation.
// For the last element, we will only touch the data for the
// element and nothing beyond it.
- long bytesRemaining = state.bufferBinding->byteLength() - state.offset;
- long numElements = 0;
+ int bytesRemaining = static_cast<int>(state.bufferBinding->byteLength() - state.offset);
+ int numElements = 0;
+ ASSERT(state.stride > 0);
if (bytesRemaining >= state.bytesPerElement)
numElements = 1 + (bytesRemaining - state.bytesPerElement) / state.stride;
if (numElements < smallestNumElements)
@@ -1156,7 +1153,7 @@ bool WebGLRenderingContext::validateRenderingState(long numElementsRequired)
}
}
- if (smallestNumElements == LONG_MAX)
+ if (smallestNumElements == INT_MAX)
smallestNumElements = 0;
return numElementsRequired <= smallestNumElements;
@@ -1175,7 +1172,7 @@ bool WebGLRenderingContext::validateWebGLObject(WebGLObject* object)
return true;
}
-void WebGLRenderingContext::drawArrays(unsigned long mode, long first, long count, ExceptionCode& ec)
+void WebGLRenderingContext::drawArrays(GC3Denum mode, GC3Dint first, GC3Dsizei count, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
@@ -1195,9 +1192,9 @@ void WebGLRenderingContext::drawArrays(unsigned long mode, long first, long coun
if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
// Ensure we have a valid rendering state
- CheckedInt<int32_t> checkedFirst(first);
- CheckedInt<int32_t> checkedCount(count);
- CheckedInt<int32_t> checkedSum = checkedFirst + checkedCount;
+ CheckedInt<GC3Dint> checkedFirst(first);
+ CheckedInt<GC3Dint> checkedCount(count);
+ CheckedInt<GC3Dint> checkedSum = checkedFirst + checkedCount;
if (!checkedSum.valid() || !validateRenderingState(checkedSum.value())) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
@@ -1227,7 +1224,7 @@ void WebGLRenderingContext::drawArrays(unsigned long mode, long first, long coun
cleanupAfterGraphicsCall(true);
}
-void WebGLRenderingContext::drawElements(unsigned long mode, long count, unsigned long type, long offset, ExceptionCode& ec)
+void WebGLRenderingContext::drawElements(GC3Denum mode, GC3Dsizei count, GC3Denum type, GC3Dintptr offset, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
@@ -1254,7 +1251,7 @@ void WebGLRenderingContext::drawElements(unsigned long mode, long count, unsigne
if (!count)
return;
- long numElements = 0;
+ int numElements = 0;
if (!isErrorGeneratedOnOutOfBoundsAccesses()) {
// Ensure we have a valid rendering state
if (!validateElementArraySize(count, type, offset)) {
@@ -1297,7 +1294,7 @@ void WebGLRenderingContext::drawElements(unsigned long mode, long count, unsigne
cleanupAfterGraphicsCall(true);
}
-void WebGLRenderingContext::enable(unsigned long cap)
+void WebGLRenderingContext::enable(GC3Denum cap)
{
if (isContextLost() || !validateCapability(cap))
return;
@@ -1305,7 +1302,7 @@ void WebGLRenderingContext::enable(unsigned long cap)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::enableVertexAttribArray(unsigned long index, ExceptionCode& ec)
+void WebGLRenderingContext::enableVertexAttribArray(GC3Duint index, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -1341,7 +1338,7 @@ void WebGLRenderingContext::flush()
cleanupAfterGraphicsCall(true);
}
-void WebGLRenderingContext::framebufferRenderbuffer(unsigned long target, unsigned long attachment, unsigned long renderbuffertarget, WebGLRenderbuffer* buffer, ExceptionCode& ec)
+void WebGLRenderingContext::framebufferRenderbuffer(GC3Denum target, GC3Denum attachment, GC3Denum renderbuffertarget, WebGLRenderbuffer* buffer, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateFramebufferFuncParameters(target, attachment))
@@ -1412,7 +1409,7 @@ void WebGLRenderingContext::framebufferRenderbuffer(unsigned long target, unsign
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::framebufferTexture2D(unsigned long target, unsigned long attachment, unsigned long textarget, WebGLTexture* texture, long level, ExceptionCode& ec)
+void WebGLRenderingContext::framebufferTexture2D(GC3Denum target, GC3Denum attachment, GC3Denum textarget, WebGLTexture* texture, GC3Dint level, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateFramebufferFuncParameters(target, attachment))
@@ -1437,7 +1434,7 @@ void WebGLRenderingContext::framebufferTexture2D(unsigned long target, unsigned
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::frontFace(unsigned long mode)
+void WebGLRenderingContext::frontFace(GC3Denum mode)
{
if (isContextLost())
return;
@@ -1445,7 +1442,7 @@ void WebGLRenderingContext::frontFace(unsigned long mode)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::generateMipmap(unsigned long target)
+void WebGLRenderingContext::generateMipmap(GC3Denum target)
{
if (isContextLost())
return;
@@ -1474,7 +1471,7 @@ void WebGLRenderingContext::generateMipmap(unsigned long target)
cleanupAfterGraphicsCall(false);
}
-PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveAttrib(WebGLProgram* program, unsigned long index, ExceptionCode& ec)
+PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveAttrib(WebGLProgram* program, GC3Duint index, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateWebGLObject(program))
@@ -1485,7 +1482,7 @@ PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveAttrib(WebGLProgram*
return WebGLActiveInfo::create(info.name, info.type, info.size);
}
-PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveUniform(WebGLProgram* program, unsigned long index, ExceptionCode& ec)
+PassRefPtr<WebGLActiveInfo> WebGLRenderingContext::getActiveUniform(WebGLProgram* program, GC3Duint index, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateWebGLObject(program))
@@ -1505,16 +1502,16 @@ bool WebGLRenderingContext::getAttachedShaders(WebGLProgram* program, Vector<Web
shaderObjects.clear();
if (isContextLost() || !validateWebGLObject(program))
return false;
- int numShaders = 0;
+ GC3Dint numShaders = 0;
m_context->getProgramiv(objectOrZero(program), GraphicsContext3D::ATTACHED_SHADERS, &numShaders);
if (numShaders) {
- OwnArrayPtr<unsigned int> shaders(new unsigned int[numShaders]);
- int count = 0;
+ OwnArrayPtr<Platform3DObject> shaders(new Platform3DObject[numShaders]);
+ GC3Dsizei count = 0;
m_context->getAttachedShaders(objectOrZero(program), numShaders, &count, shaders.get());
if (count != numShaders)
return false;
shaderObjects.resize(numShaders);
- for (int ii = 0; ii < numShaders; ++ii) {
+ for (GC3Dint ii = 0; ii < numShaders; ++ii) {
WebGLShader* shader = findShader(shaders[ii]);
if (!shader) {
shaderObjects.clear();
@@ -1526,7 +1523,7 @@ bool WebGLRenderingContext::getAttachedShaders(WebGLProgram* program, Vector<Web
return true;
}
-int WebGLRenderingContext::getAttribLocation(WebGLProgram* program, const String& name)
+GC3Dint WebGLRenderingContext::getAttribLocation(WebGLProgram* program, const String& name)
{
if (isContextLost())
return -1;
@@ -1535,7 +1532,7 @@ int WebGLRenderingContext::getAttribLocation(WebGLProgram* program, const String
return m_context->getAttribLocation(objectOrZero(program), name);
}
-WebGLGetInfo WebGLRenderingContext::getBufferParameter(unsigned long target, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getBufferParameter(GC3Denum target, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -1551,7 +1548,7 @@ WebGLGetInfo WebGLRenderingContext::getBufferParameter(unsigned long target, uns
}
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
m_context->getBufferParameteriv(target, pname, &value);
if (pname == GraphicsContext3D::BUFFER_SIZE)
return WebGLGetInfo(static_cast<long>(value));
@@ -1567,7 +1564,7 @@ PassRefPtr<WebGLContextAttributes> WebGLRenderingContext::getContextAttributes()
return WebGLContextAttributes::create(m_context->getContextAttributes());
}
-unsigned long WebGLRenderingContext::getError()
+GC3Denum WebGLRenderingContext::getError()
{
return m_context->getError();
}
@@ -1593,7 +1590,7 @@ WebGLExtension* WebGLRenderingContext::getExtension(const String& name)
return 0;
}
-WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(unsigned long target, unsigned long attachment, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateFramebufferFuncParameters(target, attachment))
@@ -1616,7 +1613,7 @@ WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(unsigned l
if (pname != GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) {
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
m_context->getFramebufferAttachmentParameteriv(target, attachment, pname, &value);
if (pname == GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE)
return WebGLGetInfo(static_cast<unsigned long>(value));
@@ -1624,11 +1621,11 @@ WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(unsigned l
}
WebGLStateRestorer(this, false);
- int type = 0;
+ GC3Dint type = 0;
m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type);
if (!type)
return WebGLGetInfo();
- int value = 0;
+ GC3Dint value = 0;
m_context->getFramebufferAttachmentParameteriv(target, attachment, GraphicsContext3D::FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &value);
switch (type) {
case GraphicsContext3D::RENDERBUFFER:
@@ -1641,7 +1638,7 @@ WebGLGetInfo WebGLRenderingContext::getFramebufferAttachmentParameter(unsigned l
}
}
-WebGLGetInfo WebGLRenderingContext::getParameter(unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getParameter(GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -1819,7 +1816,7 @@ WebGLGetInfo WebGLRenderingContext::getParameter(unsigned long pname, ExceptionC
case GraphicsContext3D::UNPACK_PREMULTIPLY_ALPHA_WEBGL:
return WebGLGetInfo(m_unpackPremultiplyAlpha);
case GraphicsContext3D::UNPACK_COLORSPACE_CONVERSION_WEBGL:
- return WebGLGetInfo(m_unpackColorspaceConversion);
+ return WebGLGetInfo(static_cast<unsigned long>(m_unpackColorspaceConversion));
case GraphicsContext3D::VENDOR:
return WebGLGetInfo("Webkit (" + m_context->getString(GraphicsContext3D::VENDOR) + ")");
case GraphicsContext3D::VERSION:
@@ -1832,14 +1829,14 @@ WebGLGetInfo WebGLRenderingContext::getParameter(unsigned long pname, ExceptionC
}
}
-WebGLGetInfo WebGLRenderingContext::getProgramParameter(WebGLProgram* program, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getProgramParameter(WebGLProgram* program, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateWebGLObject(program))
return WebGLGetInfo();
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
switch (pname) {
case GraphicsContext3D::DELETE_STATUS:
return WebGLGetInfo(program->isDeleted());
@@ -1873,7 +1870,7 @@ String WebGLRenderingContext::getProgramInfoLog(WebGLProgram* program, Exception
return m_context->getProgramInfoLog(objectOrZero(program));
}
-WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(unsigned long target, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(GC3Denum target, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -1911,7 +1908,7 @@ WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(unsigned long targe
value = 8;
break;
case GraphicsContext3D::RENDERBUFFER_INTERNAL_FORMAT:
- return WebGLGetInfo(m_renderbufferBinding->getInternalFormat());
+ return WebGLGetInfo(static_cast<unsigned long>(m_renderbufferBinding->getInternalFormat()));
default:
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return WebGLGetInfo();
@@ -1920,7 +1917,7 @@ WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(unsigned long targe
}
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
switch (pname) {
case GraphicsContext3D::RENDERBUFFER_WIDTH:
case GraphicsContext3D::RENDERBUFFER_HEIGHT:
@@ -1933,20 +1930,20 @@ WebGLGetInfo WebGLRenderingContext::getRenderbufferParameter(unsigned long targe
m_context->getRenderbufferParameteriv(target, pname, &value);
return WebGLGetInfo(static_cast<long>(value));
case GraphicsContext3D::RENDERBUFFER_INTERNAL_FORMAT:
- return WebGLGetInfo(m_renderbufferBinding->getInternalFormat());
+ return WebGLGetInfo(static_cast<unsigned long>(m_renderbufferBinding->getInternalFormat()));
default:
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return WebGLGetInfo();
}
}
-WebGLGetInfo WebGLRenderingContext::getShaderParameter(WebGLShader* shader, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getShaderParameter(WebGLShader* shader, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateWebGLObject(shader))
return WebGLGetInfo();
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
switch (pname) {
case GraphicsContext3D::DELETE_STATUS:
return WebGLGetInfo(shader->isDeleted());
@@ -1997,7 +1994,7 @@ Vector<String> WebGLRenderingContext::getSupportedExtensions()
return result;
}
-WebGLGetInfo WebGLRenderingContext::getTexParameter(unsigned long target, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getTexParameter(GC3Denum target, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -2006,7 +2003,7 @@ WebGLGetInfo WebGLRenderingContext::getTexParameter(unsigned long target, unsign
if (!tex)
return WebGLGetInfo();
WebGLStateRestorer(this, false);
- int value = 0;
+ GC3Dint value = 0;
switch (pname) {
case GraphicsContext3D::TEXTURE_MAG_FILTER:
case GraphicsContext3D::TEXTURE_MIN_FILTER:
@@ -2029,13 +2026,13 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return WebGLGetInfo();
}
- long location = uniformLocation->location();
+ GC3Dint location = uniformLocation->location();
WebGLStateRestorer(this, false);
// FIXME: make this more efficient using WebGLUniformLocation and caching types in it
- int activeUniforms = 0;
+ GC3Dint activeUniforms = 0;
m_context->getProgramiv(objectOrZero(program), GraphicsContext3D::ACTIVE_UNIFORMS, &activeUniforms);
- for (int i = 0; i < activeUniforms; i++) {
+ for (GC3Dint i = 0; i < activeUniforms; i++) {
ActiveInfo info;
if (!m_context->getActiveUniform(objectOrZero(program), i, info))
return WebGLGetInfo();
@@ -2043,7 +2040,7 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
if (info.size > 1)
info.name = info.name.left(info.name.length() - 3);
// If it's an array, we need to iterate through each element, appending "[index]" to the name.
- for (int index = 0; index < info.size; ++index) {
+ for (GC3Dint index = 0; index < info.size; ++index) {
String name = info.name;
if (info.size > 1 && index >= 1) {
name.append('[');
@@ -2051,11 +2048,11 @@ 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(objectOrZero(program), name);
+ GC3Dint 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;
- unsigned length;
+ GC3Denum baseType;
+ unsigned int length;
switch (info.type) {
case GraphicsContext3D::BOOL:
baseType = GraphicsContext3D::BOOL;
@@ -2125,21 +2122,21 @@ WebGLGetInfo WebGLRenderingContext::getUniform(WebGLProgram* program, const WebG
}
switch (baseType) {
case GraphicsContext3D::FLOAT: {
- float value[16] = {0};
+ GC3Dfloat value[16] = {0};
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[4] = {0};
+ GC3Dint value[4] = {0};
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[4] = {0};
+ GC3Dint value[4] = {0};
m_context->getUniformiv(objectOrZero(program), location, value);
if (length > 1) {
bool boolValue[16] = {0};
@@ -2168,13 +2165,13 @@ PassRefPtr<WebGLUniformLocation> WebGLRenderingContext::getUniformLocation(WebGL
if (!validateString(name))
return 0;
WebGLStateRestorer(this, false);
- long uniformLocation = m_context->getUniformLocation(objectOrZero(program), name);
+ GC3Dint uniformLocation = m_context->getUniformLocation(objectOrZero(program), name);
if (uniformLocation == -1)
return 0;
return WebGLUniformLocation::create(program, uniformLocation);
}
-WebGLGetInfo WebGLRenderingContext::getVertexAttrib(unsigned long index, unsigned long pname, ExceptionCode& ec)
+WebGLGetInfo WebGLRenderingContext::getVertexAttrib(GC3Duint index, GC3Denum pname, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -2203,15 +2200,15 @@ WebGLGetInfo WebGLRenderingContext::getVertexAttrib(unsigned long index, unsigne
case GraphicsContext3D::VERTEX_ATTRIB_ARRAY_SIZE:
if (index >= m_vertexAttribState.size())
return WebGLGetInfo(static_cast<long>(4));
- return WebGLGetInfo(m_vertexAttribState[index].size);
+ return WebGLGetInfo(static_cast<long>(m_vertexAttribState[index].size));
case GraphicsContext3D::VERTEX_ATTRIB_ARRAY_STRIDE:
if (index >= m_vertexAttribState.size())
return WebGLGetInfo(static_cast<long>(0));
- return WebGLGetInfo(m_vertexAttribState[index].originalStride);
+ return WebGLGetInfo(static_cast<long>(m_vertexAttribState[index].originalStride));
case GraphicsContext3D::VERTEX_ATTRIB_ARRAY_TYPE:
if (index >= m_vertexAttribState.size())
return WebGLGetInfo(static_cast<unsigned long>(GraphicsContext3D::FLOAT));
- return WebGLGetInfo(m_vertexAttribState[index].type);
+ return WebGLGetInfo(static_cast<unsigned long>(m_vertexAttribState[index].type));
case GraphicsContext3D::CURRENT_VERTEX_ATTRIB:
if (index >= m_vertexAttribState.size()) {
float value[4] = { 0.0f, 0.0f, 0.0f, 1.0f };
@@ -2224,16 +2221,16 @@ WebGLGetInfo WebGLRenderingContext::getVertexAttrib(unsigned long index, unsigne
}
}
-long WebGLRenderingContext::getVertexAttribOffset(unsigned long index, unsigned long pname)
+GC3Dsizeiptr WebGLRenderingContext::getVertexAttribOffset(GC3Duint index, GC3Denum pname)
{
if (isContextLost())
return 0;
- long result = m_context->getVertexAttribOffset(index, pname);
+ GC3Dsizeiptr result = m_context->getVertexAttribOffset(index, pname);
cleanupAfterGraphicsCall(false);
return result;
}
-void WebGLRenderingContext::hint(unsigned long target, unsigned long mode)
+void WebGLRenderingContext::hint(GC3Denum target, GC3Denum mode)
{
if (isContextLost())
return;
@@ -2245,13 +2242,13 @@ void WebGLRenderingContext::hint(unsigned long target, unsigned long mode)
cleanupAfterGraphicsCall(false);
}
-bool WebGLRenderingContext::isBuffer(WebGLBuffer* buffer)
+GC3Dboolean WebGLRenderingContext::isBuffer(WebGLBuffer* buffer)
{
if (!buffer || isContextLost())
- return false;
+ return 0;
if (!buffer->hasEverBeenBound())
- return false;
+ return 0;
return m_context->isBuffer(buffer->object());
}
@@ -2269,67 +2266,67 @@ bool WebGLRenderingContext::isContextLost()
return m_contextLost;
}
-bool WebGLRenderingContext::isEnabled(unsigned long cap)
+GC3Dboolean WebGLRenderingContext::isEnabled(GC3Denum cap)
{
if (!validateCapability(cap) || isContextLost())
- return false;
+ return 0;
return m_context->isEnabled(cap);
}
-bool WebGLRenderingContext::isFramebuffer(WebGLFramebuffer* framebuffer)
+GC3Dboolean WebGLRenderingContext::isFramebuffer(WebGLFramebuffer* framebuffer)
{
if (!framebuffer || isContextLost())
- return false;
+ return 0;
if (!framebuffer->hasEverBeenBound())
- return false;
+ return 0;
return m_context->isFramebuffer(framebuffer->object());
}
-bool WebGLRenderingContext::isProgram(WebGLProgram* program)
+GC3Dboolean WebGLRenderingContext::isProgram(WebGLProgram* program)
{
if (!program || isContextLost())
- return false;
+ return 0;
return m_context->isProgram(program->object());
}
-bool WebGLRenderingContext::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
+GC3Dboolean WebGLRenderingContext::isRenderbuffer(WebGLRenderbuffer* renderbuffer)
{
if (!renderbuffer || isContextLost())
- return false;
+ return 0;
if (!renderbuffer->hasEverBeenBound())
- return false;
+ return 0;
return m_context->isRenderbuffer(renderbuffer->object());
}
-bool WebGLRenderingContext::isShader(WebGLShader* shader)
+GC3Dboolean WebGLRenderingContext::isShader(WebGLShader* shader)
{
if (!shader || isContextLost())
- return false;
+ return 0;
return m_context->isShader(shader->object());
}
-bool WebGLRenderingContext::isTexture(WebGLTexture* texture)
+GC3Dboolean WebGLRenderingContext::isTexture(WebGLTexture* texture)
{
if (!texture || isContextLost())
- return false;
+ return 0;
if (!texture->hasEverBeenBound())
- return false;
+ return 0;
return m_context->isTexture(texture->object());
}
-void WebGLRenderingContext::lineWidth(float width)
+void WebGLRenderingContext::lineWidth(GC3Dfloat width)
{
if (isContextLost())
return;
- m_context->lineWidth((float) width);
+ m_context->lineWidth(width);
cleanupAfterGraphicsCall(false);
}
@@ -2348,7 +2345,7 @@ void WebGLRenderingContext::linkProgram(WebGLProgram* program, ExceptionCode& ec
m_context->linkProgram(objectOrZero(program));
program->increaseLinkCount();
// cache link status
- int value = 0;
+ GC3Dint value = 0;
m_context->getProgramiv(objectOrZero(program), GraphicsContext3D::LINK_STATUS, &value);
program->setLinkStatus(static_cast<bool>(value));
// Need to cache link status before caching active attribute locations.
@@ -2356,7 +2353,7 @@ void WebGLRenderingContext::linkProgram(WebGLProgram* program, ExceptionCode& ec
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::pixelStorei(unsigned long pname, long param)
+void WebGLRenderingContext::pixelStorei(GC3Denum pname, GC3Dint param)
{
if (isContextLost())
return;
@@ -2369,7 +2366,7 @@ void WebGLRenderingContext::pixelStorei(unsigned long pname, long param)
break;
case GraphicsContext3D::UNPACK_COLORSPACE_CONVERSION_WEBGL:
if (param == GraphicsContext3D::BROWSER_DEFAULT_WEBGL || param == GraphicsContext3D::NONE)
- m_unpackColorspaceConversion = static_cast<unsigned long>(param);
+ m_unpackColorspaceConversion = static_cast<GC3Denum>(param);
else {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
return;
@@ -2379,9 +2376,9 @@ void WebGLRenderingContext::pixelStorei(unsigned long pname, long param)
case GraphicsContext3D::UNPACK_ALIGNMENT:
if (param == 1 || param == 2 || param == 4 || param == 8) {
if (pname == GraphicsContext3D::PACK_ALIGNMENT)
- m_packAlignment = static_cast<int>(param);
+ m_packAlignment = param;
else // GraphicsContext3D::UNPACK_ALIGNMENT:
- m_unpackAlignment = static_cast<int>(param);
+ m_unpackAlignment = param;
m_context->pixelStorei(pname, param);
cleanupAfterGraphicsCall(false);
} else {
@@ -2395,15 +2392,15 @@ void WebGLRenderingContext::pixelStorei(unsigned long pname, long param)
}
}
-void WebGLRenderingContext::polygonOffset(float factor, float units)
+void WebGLRenderingContext::polygonOffset(GC3Dfloat factor, GC3Dfloat units)
{
if (isContextLost())
return;
- m_context->polygonOffset((float) factor, (float) units);
+ m_context->polygonOffset(factor, units);
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::readPixels(long x, long y, long width, long height, unsigned long format, unsigned long type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
{
if (isContextLost())
return;
@@ -2412,30 +2409,35 @@ void WebGLRenderingContext::readPixels(long x, long y, long width, long height,
return;
}
// Validate input parameters.
- unsigned int componentsPerPixel, bytesPerComponent;
- if (!m_context->computeFormatAndTypeParameters(format, type, &componentsPerPixel, &bytesPerComponent)) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
- return;
- }
if (!pixels) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
return;
}
- if (width < 0 || height < 0) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
+ switch (format) {
+ case GraphicsContext3D::ALPHA:
+ case GraphicsContext3D::RGB:
+ case GraphicsContext3D::RGBA:
+ break;
+ default:
+ m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return;
}
- if (format != GraphicsContext3D::RGBA && type != GraphicsContext3D::UNSIGNED_BYTE) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
+ switch (type) {
+ case GraphicsContext3D::UNSIGNED_BYTE:
+ case GraphicsContext3D::UNSIGNED_SHORT_5_6_5:
+ case GraphicsContext3D::UNSIGNED_SHORT_4_4_4_4:
+ case GraphicsContext3D::UNSIGNED_SHORT_5_5_5_1:
+ break;
+ default:
+ m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return;
}
if (format != GraphicsContext3D::RGBA || type != GraphicsContext3D::UNSIGNED_BYTE) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
+ m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
// Validate array type against pixel type.
- if ((type == GraphicsContext3D::UNSIGNED_BYTE && !pixels->isUnsignedByteArray())
- || (type != GraphicsContext3D::UNSIGNED_BYTE && !pixels->isUnsignedShortArray())) {
+ if (!pixels->isUnsignedByteArray()) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
@@ -2444,37 +2446,31 @@ void WebGLRenderingContext::readPixels(long x, long y, long width, long height,
return;
}
// Calculate array size, taking into consideration of PACK_ALIGNMENT.
- unsigned long bytesPerRow = componentsPerPixel * bytesPerComponent * width;
- unsigned long padding = 0;
- unsigned long residualBytes = bytesPerRow % m_packAlignment;
- if (residualBytes) {
- padding = m_packAlignment - residualBytes;
- bytesPerRow += padding;
- }
- // The last row needs no padding.
- unsigned long totalBytes = bytesPerRow * height - padding;
- unsigned long num = totalBytes / bytesPerComponent;
- if (pixels->byteLength() / bytesPerComponent < num) {
+ unsigned int totalBytesRequired;
+ unsigned int padding;
+ GC3Denum error = m_context->computeImageSizeInBytes(format, type, width, height, m_packAlignment, &totalBytesRequired, &padding);
+ if (error != GraphicsContext3D::NO_ERROR) {
+ m_context->synthesizeGLError(error);
+ return;
+ }
+ if (pixels->byteLength() < totalBytesRequired) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
void* data = pixels->baseAddress();
m_context->readPixels(x, y, width, height, format, type, data);
-#if PLATFORM(CG)
+#if OS(DARWIN)
// FIXME: remove this section when GL driver bug on Mac is fixed, i.e.,
// when alpha is off, readPixels should set alpha to 255 instead of 0.
- if ((format == GraphicsContext3D::ALPHA || format == GraphicsContext3D::RGBA) && !m_context->getContextAttributes().alpha) {
- if (type == GraphicsContext3D::UNSIGNED_BYTE) {
- unsigned char* pixels = reinterpret_cast<unsigned char*>(data);
- for (long iy = 0; iy < height; ++iy) {
- for (long ix = 0; ix < width; ++ix) {
- pixels[componentsPerPixel - 1] = 255;
- pixels += componentsPerPixel;
- }
- pixels += padding;
+ if (!m_context->getContextAttributes().alpha) {
+ unsigned char* pixels = reinterpret_cast<unsigned char*>(data);
+ for (GC3Dsizei iy = 0; iy < height; ++iy) {
+ for (GC3Dsizei ix = 0; ix < width; ++ix) {
+ pixels[3] = 255;
+ pixels += 4;
}
+ pixels += padding;
}
- // FIXME: check whether we need to do the same with UNSIGNED_SHORT.
}
#endif
cleanupAfterGraphicsCall(false);
@@ -2488,7 +2484,7 @@ void WebGLRenderingContext::releaseShaderCompiler()
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::renderbufferStorage(unsigned long target, unsigned long internalformat, long width, long height)
+void WebGLRenderingContext::renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height)
{
if (isContextLost())
return;
@@ -2528,15 +2524,15 @@ void WebGLRenderingContext::renderbufferStorage(unsigned long target, unsigned l
}
}
-void WebGLRenderingContext::sampleCoverage(float value, bool invert)
+void WebGLRenderingContext::sampleCoverage(GC3Dfloat value, GC3Dboolean invert)
{
if (isContextLost())
return;
- m_context->sampleCoverage((float) value, invert);
+ m_context->sampleCoverage(value, invert);
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::scissor(long x, long y, long width, long height)
+void WebGLRenderingContext::scissor(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height)
{
if (isContextLost())
return;
@@ -2557,7 +2553,7 @@ void WebGLRenderingContext::shaderSource(WebGLShader* shader, const String& stri
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilFunc(unsigned long func, long ref, unsigned long mask)
+void WebGLRenderingContext::stencilFunc(GC3Denum func, GC3Dint ref, GC3Duint mask)
{
if (isContextLost())
return;
@@ -2571,7 +2567,7 @@ void WebGLRenderingContext::stencilFunc(unsigned long func, long ref, unsigned l
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilFuncSeparate(unsigned long face, unsigned long func, long ref, unsigned long mask)
+void WebGLRenderingContext::stencilFuncSeparate(GC3Denum face, GC3Denum func, GC3Dint ref, GC3Duint mask)
{
if (isContextLost())
return;
@@ -2600,7 +2596,7 @@ void WebGLRenderingContext::stencilFuncSeparate(unsigned long face, unsigned lon
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilMask(unsigned long mask)
+void WebGLRenderingContext::stencilMask(GC3Duint mask)
{
if (isContextLost())
return;
@@ -2610,7 +2606,7 @@ void WebGLRenderingContext::stencilMask(unsigned long mask)
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilMaskSeparate(unsigned long face, unsigned long mask)
+void WebGLRenderingContext::stencilMaskSeparate(GC3Denum face, GC3Duint mask)
{
if (isContextLost())
return;
@@ -2633,7 +2629,7 @@ void WebGLRenderingContext::stencilMaskSeparate(unsigned long face, unsigned lon
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilOp(unsigned long fail, unsigned long zfail, unsigned long zpass)
+void WebGLRenderingContext::stencilOp(GC3Denum fail, GC3Denum zfail, GC3Denum zpass)
{
if (isContextLost())
return;
@@ -2641,7 +2637,7 @@ void WebGLRenderingContext::stencilOp(unsigned long fail, unsigned long zfail, u
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::stencilOpSeparate(unsigned long face, unsigned long fail, unsigned long zfail, unsigned long zpass)
+void WebGLRenderingContext::stencilOpSeparate(GC3Denum face, GC3Denum fail, GC3Denum zfail, GC3Denum zpass)
{
if (isContextLost())
return;
@@ -2649,9 +2645,9 @@ void WebGLRenderingContext::stencilOpSeparate(unsigned long face, unsigned long
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::texImage2DBase(unsigned target, unsigned level, unsigned internalformat,
- int width, int height, unsigned border,
- unsigned format, unsigned type, void* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2DBase(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum type, void* pixels, ExceptionCode& ec)
{
// FIXME: For now we ignore any errors returned
ec = 0;
@@ -2668,7 +2664,7 @@ void WebGLRenderingContext::texImage2DBase(unsigned target, unsigned level, unsi
}
if (!pixels && !isResourceSafe()) {
bool succeed = m_context->texImage2DResourceSafe(target, level, internalformat, width, height,
- border, format, type);
+ border, format, type, m_unpackAlignment);
if (!succeed)
return;
} else {
@@ -2679,8 +2675,8 @@ void WebGLRenderingContext::texImage2DBase(unsigned target, unsigned level, unsi
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::texImage2DImpl(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, Image* image,
+void WebGLRenderingContext::texImage2DImpl(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, Image* image,
bool flipY, bool premultiplyAlpha, ExceptionCode& ec)
{
ec = 0;
@@ -2697,9 +2693,9 @@ void WebGLRenderingContext::texImage2DImpl(unsigned target, unsigned level, unsi
m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
}
-void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned internalformat,
- int width, int height, unsigned border,
- unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
{
if (isContextLost() || !validateTexFuncData(width, height, format, type, pixels))
return;
@@ -2724,8 +2720,8 @@ void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned
m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
}
-void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, ImageData* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, ImageData* pixels, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2743,8 +2739,8 @@ void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned
m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
}
-void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLImageElement* image, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2758,8 +2754,8 @@ void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned
m_unpackFlipY, m_unpackPremultiplyAlpha, ec);
}
-void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLCanvasElement* canvas, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2792,8 +2788,8 @@ PassRefPtr<Image> WebGLRenderingContext::videoFrameToImage(HTMLVideoElement* vid
return buf->copyImage();
}
-void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode& ec)
+void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLVideoElement* video, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2804,7 +2800,7 @@ void WebGLRenderingContext::texImage2D(unsigned target, unsigned level, unsigned
texImage2DImpl(target, level, internalformat, format, type, image.get(), m_unpackFlipY, m_unpackPremultiplyAlpha, ec);
}
-void WebGLRenderingContext::texParameter(unsigned long target, unsigned long pname, float paramf, int parami, bool isFloat)
+void WebGLRenderingContext::texParameter(GC3Denum target, GC3Denum pname, GC3Dfloat paramf, GC3Dint parami, bool isFloat)
{
if (isContextLost())
return;
@@ -2837,19 +2833,19 @@ void WebGLRenderingContext::texParameter(unsigned long target, unsigned long pna
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::texParameterf(unsigned target, unsigned pname, float param)
+void WebGLRenderingContext::texParameterf(GC3Denum target, GC3Denum pname, GC3Dfloat param)
{
texParameter(target, pname, param, 0, true);
}
-void WebGLRenderingContext::texParameteri(unsigned target, unsigned pname, int param)
+void WebGLRenderingContext::texParameteri(GC3Denum target, GC3Denum pname, GC3Dint param)
{
texParameter(target, pname, 0, param, false);
}
-void WebGLRenderingContext::texSubImage2DBase(unsigned target, unsigned level, int xoffset, int yoffset,
- int width, int height,
- unsigned format, unsigned type, void* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type, void* pixels, ExceptionCode& ec)
{
// FIXME: For now we ignore any errors returned
ec = 0;
@@ -2865,8 +2861,8 @@ void WebGLRenderingContext::texSubImage2DBase(unsigned target, unsigned level, i
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::texSubImage2DImpl(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type,
+void WebGLRenderingContext::texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type,
Image* image, bool flipY, bool premultiplyAlpha, ExceptionCode& ec)
{
ec = 0;
@@ -2881,9 +2877,9 @@ void WebGLRenderingContext::texSubImage2DImpl(unsigned target, unsigned level, i
format, type, data.data(), ec);
}
-void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- int width, int height,
- unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode& ec)
{
if (isContextLost() || !validateTexFuncData(width, height, format, type, pixels))
return;
@@ -2907,8 +2903,8 @@ void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int x
m_context->pixelStorei(GraphicsContext3D::UNPACK_ALIGNMENT, m_unpackAlignment);
}
-void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, ImageData* pixels, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, ImageData* pixels, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2922,8 +2918,8 @@ void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int x
format, type, data.data(), ec);
}
-void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLImageElement* image, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2937,8 +2933,8 @@ void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int x
m_unpackFlipY, m_unpackPremultiplyAlpha, ec);
}
-void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLCanvasElement* canvas, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2952,8 +2948,8 @@ void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int x
m_unpackFlipY, m_unpackPremultiplyAlpha, ec);
}
-void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode& ec)
+void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLVideoElement* video, ExceptionCode& ec)
{
ec = 0;
if (isContextLost())
@@ -2964,7 +2960,7 @@ void WebGLRenderingContext::texSubImage2D(unsigned target, unsigned level, int x
texSubImage2DImpl(target, level, xoffset, yoffset, format, type, image.get(), m_unpackFlipY, m_unpackPremultiplyAlpha, ec);
}
-void WebGLRenderingContext::uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode& ec)
+void WebGLRenderingContext::uniform1f(const WebGLUniformLocation* location, GC3Dfloat x, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -2989,7 +2985,7 @@ void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, Flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 1))
@@ -2999,7 +2995,7 @@ void WebGLRenderingContext::uniform1fv(const WebGLUniformLocation* location, flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform1i(const WebGLUniformLocation* location, int x, ExceptionCode& ec)
+void WebGLRenderingContext::uniform1i(const WebGLUniformLocation* location, GC3Dint x, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3024,7 +3020,7 @@ void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, Int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 1))
@@ -3034,7 +3030,7 @@ void WebGLRenderingContext::uniform1iv(const WebGLUniformLocation* location, int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform2f(const WebGLUniformLocation* location, float x, float y, ExceptionCode& ec)
+void WebGLRenderingContext::uniform2f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3059,7 +3055,7 @@ void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, Flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 2))
@@ -3069,7 +3065,7 @@ void WebGLRenderingContext::uniform2fv(const WebGLUniformLocation* location, flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform2i(const WebGLUniformLocation* location, int x, int y, ExceptionCode& ec)
+void WebGLRenderingContext::uniform2i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3094,7 +3090,7 @@ void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, Int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 2))
@@ -3104,7 +3100,7 @@ void WebGLRenderingContext::uniform2iv(const WebGLUniformLocation* location, int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform3f(const WebGLUniformLocation* location, float x, float y, float z, ExceptionCode& ec)
+void WebGLRenderingContext::uniform3f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3129,7 +3125,7 @@ void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, Flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 3))
@@ -3139,7 +3135,7 @@ void WebGLRenderingContext::uniform3fv(const WebGLUniformLocation* location, flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform3i(const WebGLUniformLocation* location, int x, int y, int z, ExceptionCode& ec)
+void WebGLRenderingContext::uniform3i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint z, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3164,7 +3160,7 @@ void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, Int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 3))
@@ -3174,7 +3170,7 @@ void WebGLRenderingContext::uniform3iv(const WebGLUniformLocation* location, int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform4f(const WebGLUniformLocation* location, float x, float y, float z, float w, ExceptionCode& ec)
+void WebGLRenderingContext::uniform4f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3199,7 +3195,7 @@ void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, Flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 4))
@@ -3209,7 +3205,7 @@ void WebGLRenderingContext::uniform4fv(const WebGLUniformLocation* location, flo
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform4i(const WebGLUniformLocation* location, int x, int y, int z, int w, ExceptionCode& ec)
+void WebGLRenderingContext::uniform4i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !location)
@@ -3234,7 +3230,7 @@ void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, Int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, int* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformParameters(location, v, size, 4))
@@ -3244,7 +3240,7 @@ void WebGLRenderingContext::uniform4iv(const WebGLUniformLocation* location, int
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, Float32Array* v, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, 4))
@@ -3253,7 +3249,7 @@ void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* locatio
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, size, 4))
@@ -3262,7 +3258,7 @@ void WebGLRenderingContext::uniformMatrix2fv(const WebGLUniformLocation* locatio
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, Float32Array* v, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, 9))
@@ -3271,7 +3267,7 @@ void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* locatio
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, size, 9))
@@ -3280,7 +3276,7 @@ void WebGLRenderingContext::uniformMatrix3fv(const WebGLUniformLocation* locatio
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, Float32Array* v, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, 16))
@@ -3289,7 +3285,7 @@ void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* locatio
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, bool transpose, float* v, int size, ExceptionCode& ec)
+void WebGLRenderingContext::uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* v, GC3Dsizei size, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost() || !validateUniformMatrixParameters(location, transpose, v, size, 16))
@@ -3332,67 +3328,67 @@ void WebGLRenderingContext::validateProgram(WebGLProgram* program, ExceptionCode
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::vertexAttrib1f(unsigned long index, float v0)
+void WebGLRenderingContext::vertexAttrib1f(GC3Duint index, GC3Dfloat v0)
{
vertexAttribfImpl(index, 1, v0, 0.0f, 0.0f, 1.0f);
}
-void WebGLRenderingContext::vertexAttrib1fv(unsigned long index, Float32Array* v)
+void WebGLRenderingContext::vertexAttrib1fv(GC3Duint index, Float32Array* v)
{
vertexAttribfvImpl(index, v, 1);
}
-void WebGLRenderingContext::vertexAttrib1fv(unsigned long index, float* v, int size)
+void WebGLRenderingContext::vertexAttrib1fv(GC3Duint index, GC3Dfloat* v, GC3Dsizei size)
{
vertexAttribfvImpl(index, v, size, 1);
}
-void WebGLRenderingContext::vertexAttrib2f(unsigned long index, float v0, float v1)
+void WebGLRenderingContext::vertexAttrib2f(GC3Duint index, GC3Dfloat v0, GC3Dfloat v1)
{
vertexAttribfImpl(index, 2, v0, v1, 0.0f, 1.0f);
}
-void WebGLRenderingContext::vertexAttrib2fv(unsigned long index, Float32Array* v)
+void WebGLRenderingContext::vertexAttrib2fv(GC3Duint index, Float32Array* v)
{
vertexAttribfvImpl(index, v, 2);
}
-void WebGLRenderingContext::vertexAttrib2fv(unsigned long index, float* v, int size)
+void WebGLRenderingContext::vertexAttrib2fv(GC3Duint index, GC3Dfloat* v, GC3Dsizei size)
{
vertexAttribfvImpl(index, v, size, 2);
}
-void WebGLRenderingContext::vertexAttrib3f(unsigned long index, float v0, float v1, float v2)
+void WebGLRenderingContext::vertexAttrib3f(GC3Duint index, GC3Dfloat v0, GC3Dfloat v1, GC3Dfloat v2)
{
vertexAttribfImpl(index, 3, v0, v1, v2, 1.0f);
}
-void WebGLRenderingContext::vertexAttrib3fv(unsigned long index, Float32Array* v)
+void WebGLRenderingContext::vertexAttrib3fv(GC3Duint index, Float32Array* v)
{
vertexAttribfvImpl(index, v, 3);
}
-void WebGLRenderingContext::vertexAttrib3fv(unsigned long index, float* v, int size)
+void WebGLRenderingContext::vertexAttrib3fv(GC3Duint index, GC3Dfloat* v, GC3Dsizei size)
{
vertexAttribfvImpl(index, v, size, 3);
}
-void WebGLRenderingContext::vertexAttrib4f(unsigned long index, float v0, float v1, float v2, float v3)
+void WebGLRenderingContext::vertexAttrib4f(GC3Duint index, GC3Dfloat v0, GC3Dfloat v1, GC3Dfloat v2, GC3Dfloat v3)
{
vertexAttribfImpl(index, 4, v0, v1, v2, v3);
}
-void WebGLRenderingContext::vertexAttrib4fv(unsigned long index, Float32Array* v)
+void WebGLRenderingContext::vertexAttrib4fv(GC3Duint index, Float32Array* v)
{
vertexAttribfvImpl(index, v, 4);
}
-void WebGLRenderingContext::vertexAttrib4fv(unsigned long index, float* v, int size)
+void WebGLRenderingContext::vertexAttrib4fv(GC3Duint index, GC3Dfloat* v, GC3Dsizei size)
{
vertexAttribfvImpl(index, v, size, 4);
}
-void WebGLRenderingContext::vertexAttribPointer(unsigned long index, long size, unsigned long type, bool normalized, long stride, long offset, ExceptionCode& ec)
+void WebGLRenderingContext::vertexAttribPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dboolean normalized, GC3Dsizei stride, GC3Dintptr offset, ExceptionCode& ec)
{
UNUSED_PARAM(ec);
if (isContextLost())
@@ -3421,8 +3417,8 @@ 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 typeSize = sizeInBytes(type);
- if (typeSize <= 0) {
+ unsigned int typeSize = sizeInBytes(type);
+ if (!typeSize) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
return;
}
@@ -3430,12 +3426,12 @@ void WebGLRenderingContext::vertexAttribPointer(unsigned long index, long size,
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return;
}
- long bytesPerElement = size * typeSize;
+ GC3Dsizei bytesPerElement = size * typeSize;
if (index >= m_vertexAttribState.size())
m_vertexAttribState.resize(index + 1);
- long validatedStride = stride ? stride : bytesPerElement;
+ GC3Dsizei validatedStride = stride ? stride : bytesPerElement;
m_vertexAttribState[index].bufferBinding = m_boundArrayBuffer;
m_vertexAttribState[index].bytesPerElement = bytesPerElement;
@@ -3449,7 +3445,7 @@ void WebGLRenderingContext::vertexAttribPointer(unsigned long index, long size,
cleanupAfterGraphicsCall(false);
}
-void WebGLRenderingContext::viewport(long x, long y, long width, long height)
+void WebGLRenderingContext::viewport(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height)
{
if (isContextLost())
return;
@@ -3577,20 +3573,20 @@ WebGLShader* WebGLRenderingContext::findShader(Platform3DObject obj)
return 0;
}
-WebGLGetInfo WebGLRenderingContext::getBooleanParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getBooleanParameter(GC3Denum pname)
{
- unsigned char value = 0;
+ GC3Dboolean value = 0;
m_context->getBooleanv(pname, &value);
return WebGLGetInfo(static_cast<bool>(value));
}
-WebGLGetInfo WebGLRenderingContext::getBooleanArrayParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getBooleanArrayParameter(GC3Denum pname)
{
if (pname != GraphicsContext3D::COLOR_WRITEMASK) {
notImplemented();
return WebGLGetInfo(0, 0);
}
- unsigned char value[4] = {0};
+ GC3Dboolean value[4] = {0};
m_context->getBooleanv(pname, value);
bool boolValue[4];
for (int ii = 0; ii < 4; ++ii)
@@ -3598,36 +3594,36 @@ WebGLGetInfo WebGLRenderingContext::getBooleanArrayParameter(unsigned long pname
return WebGLGetInfo(boolValue, 4);
}
-WebGLGetInfo WebGLRenderingContext::getFloatParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getFloatParameter(GC3Denum pname)
{
- float value = 0;
+ GC3Dfloat value = 0;
m_context->getFloatv(pname, &value);
- return WebGLGetInfo(static_cast<float>(value));
+ return WebGLGetInfo(value);
}
-WebGLGetInfo WebGLRenderingContext::getIntParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getIntParameter(GC3Denum pname)
{
return getLongParameter(pname);
}
-WebGLGetInfo WebGLRenderingContext::getLongParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getLongParameter(GC3Denum pname)
{
- int value = 0;
+ GC3Dint value = 0;
m_context->getIntegerv(pname, &value);
return WebGLGetInfo(static_cast<long>(value));
}
-WebGLGetInfo WebGLRenderingContext::getUnsignedLongParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getUnsignedLongParameter(GC3Denum pname)
{
- int value = 0;
+ GC3Dint value = 0;
m_context->getIntegerv(pname, &value);
- unsigned int uValue = static_cast<unsigned int>(value);
+ GC3Duint uValue = static_cast<GC3Duint>(value);
return WebGLGetInfo(static_cast<unsigned long>(uValue));
}
-WebGLGetInfo WebGLRenderingContext::getWebGLFloatArrayParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getWebGLFloatArrayParameter(GC3Denum pname)
{
- float value[4] = {0};
+ GC3Dfloat value[4] = {0};
m_context->getFloatv(pname, value);
unsigned length = 0;
switch (pname) {
@@ -3646,9 +3642,9 @@ WebGLGetInfo WebGLRenderingContext::getWebGLFloatArrayParameter(unsigned long pn
return WebGLGetInfo(Float32Array::create(value, length));
}
-WebGLGetInfo WebGLRenderingContext::getWebGLIntArrayParameter(unsigned long pname)
+WebGLGetInfo WebGLRenderingContext::getWebGLIntArrayParameter(GC3Denum pname)
{
- int value[4] = {0};
+ GC3Dint value[4] = {0};
m_context->getIntegerv(pname, value);
unsigned length = 0;
switch (pname) {
@@ -3722,8 +3718,8 @@ void WebGLRenderingContext::createFallbackBlackTextures1x1()
m_context->bindTexture(GraphicsContext3D::TEXTURE_CUBE_MAP, 0);
}
-bool WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid(unsigned long texInternalFormat,
- unsigned long colorBufferFormat)
+bool WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid(GC3Denum texInternalFormat,
+ GC3Denum colorBufferFormat)
{
switch (colorBufferFormat) {
case GraphicsContext3D::ALPHA:
@@ -3741,7 +3737,7 @@ bool WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid(unsig
return false;
}
-unsigned long WebGLRenderingContext::getBoundFramebufferColorFormat()
+GC3Denum WebGLRenderingContext::getBoundFramebufferColorFormat()
{
if (m_framebufferBinding && m_framebufferBinding->object())
return m_framebufferBinding->getColorBufferFormat();
@@ -3764,7 +3760,7 @@ int WebGLRenderingContext::getBoundFramebufferHeight()
return m_context->getInternalFramebufferSize().height();
}
-WebGLTexture* WebGLRenderingContext::validateTextureBinding(unsigned long target, bool useSixEnumsForCubeMap)
+WebGLTexture* WebGLRenderingContext::validateTextureBinding(GC3Denum target, bool useSixEnumsForCubeMap)
{
WebGLTexture* tex = 0;
switch (target) {
@@ -3799,7 +3795,7 @@ WebGLTexture* WebGLRenderingContext::validateTextureBinding(unsigned long target
return tex;
}
-bool WebGLRenderingContext::validateSize(long x, long y)
+bool WebGLRenderingContext::validateSize(GC3Dint x, GC3Dint y)
{
if (x < 0 || y < 0) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -3819,7 +3815,7 @@ bool WebGLRenderingContext::validateString(const String& string)
return true;
}
-bool WebGLRenderingContext::validateTexFuncFormatAndType(unsigned long format, unsigned long type)
+bool WebGLRenderingContext::validateTexFuncFormatAndType(GC3Denum format, GC3Denum type)
{
switch (format) {
case GraphicsContext3D::ALPHA:
@@ -3884,7 +3880,7 @@ bool WebGLRenderingContext::validateTexFuncFormatAndType(unsigned long format, u
return true;
}
-bool WebGLRenderingContext::validateTexFuncLevel(unsigned long target, long level)
+bool WebGLRenderingContext::validateTexFuncLevel(GC3Denum target, GC3Dint level)
{
if (level < 0) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -3914,10 +3910,10 @@ bool WebGLRenderingContext::validateTexFuncLevel(unsigned long target, long leve
return true;
}
-bool WebGLRenderingContext::validateTexFuncParameters(unsigned long target, long level,
- unsigned long internalformat,
- long width, long height, long border,
- unsigned long format, unsigned long type)
+bool WebGLRenderingContext::validateTexFuncParameters(GC3Denum target, GC3Dint level,
+ GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum type)
{
// We absolutely have to validate the format and type combination.
// The texImage2D entry points taking HTMLImage, etc. will produce
@@ -3966,8 +3962,8 @@ bool WebGLRenderingContext::validateTexFuncParameters(unsigned long target, long
return true;
}
-bool WebGLRenderingContext::validateTexFuncData(long width, long height,
- unsigned long format, unsigned long type,
+bool WebGLRenderingContext::validateTexFuncData(GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type,
ArrayBufferView* pixels)
{
if (!pixels)
@@ -4001,20 +3997,12 @@ bool WebGLRenderingContext::validateTexFuncData(long width, long height,
ASSERT_NOT_REACHED();
}
- unsigned int componentsPerPixel, bytesPerComponent;
- if (!m_context->computeFormatAndTypeParameters(format, type, &componentsPerPixel, &bytesPerComponent)) {
- m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
+ unsigned int totalBytesRequired;
+ GC3Denum error = m_context->computeImageSizeInBytes(format, type, width, height, m_unpackAlignment, &totalBytesRequired, 0);
+ if (error != GraphicsContext3D::NO_ERROR) {
+ m_context->synthesizeGLError(error);
return false;
}
-
- if (!width || !height)
- return true;
- unsigned int validRowBytes = width * componentsPerPixel * bytesPerComponent;
- unsigned int totalRowBytes = validRowBytes;
- unsigned int remainder = validRowBytes % m_unpackAlignment;
- if (remainder)
- totalRowBytes += (m_unpackAlignment - remainder);
- unsigned int totalBytesRequired = (height - 1) * totalRowBytes + validRowBytes;
if (pixels->byteLength() < totalBytesRequired) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_OPERATION);
return false;
@@ -4022,7 +4010,7 @@ bool WebGLRenderingContext::validateTexFuncData(long width, long height,
return true;
}
-bool WebGLRenderingContext::validateDrawMode(unsigned long mode)
+bool WebGLRenderingContext::validateDrawMode(GC3Denum mode)
{
switch (mode) {
case GraphicsContext3D::POINTS:
@@ -4048,7 +4036,7 @@ bool WebGLRenderingContext::validateStencilSettings()
return true;
}
-bool WebGLRenderingContext::validateStencilFunc(unsigned long func)
+bool WebGLRenderingContext::validateStencilFunc(GC3Denum func)
{
switch (func) {
case GraphicsContext3D::NEVER:
@@ -4072,7 +4060,7 @@ void WebGLRenderingContext::printWarningToConsole(const String& message)
message, 0, canvas()->document()->url().string());
}
-bool WebGLRenderingContext::validateFramebufferFuncParameters(unsigned long target, unsigned long attachment)
+bool WebGLRenderingContext::validateFramebufferFuncParameters(GC3Denum target, GC3Denum attachment)
{
if (target != GraphicsContext3D::FRAMEBUFFER) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_ENUM);
@@ -4091,7 +4079,7 @@ bool WebGLRenderingContext::validateFramebufferFuncParameters(unsigned long targ
return true;
}
-bool WebGLRenderingContext::validateBlendEquation(unsigned long mode)
+bool WebGLRenderingContext::validateBlendEquation(GC3Denum mode)
{
switch (mode) {
case GraphicsContext3D::FUNC_ADD:
@@ -4104,7 +4092,7 @@ bool WebGLRenderingContext::validateBlendEquation(unsigned long mode)
}
}
-bool WebGLRenderingContext::validateBlendFuncFactors(unsigned long src, unsigned long dst)
+bool WebGLRenderingContext::validateBlendFuncFactors(GC3Denum src, GC3Denum dst)
{
if (((src == GraphicsContext3D::CONSTANT_COLOR || src == GraphicsContext3D::ONE_MINUS_CONSTANT_COLOR)
&& (dst == GraphicsContext3D::CONSTANT_ALPHA || dst == GraphicsContext3D::ONE_MINUS_CONSTANT_ALPHA))
@@ -4116,7 +4104,7 @@ bool WebGLRenderingContext::validateBlendFuncFactors(unsigned long src, unsigned
return true;
}
-bool WebGLRenderingContext::validateCapability(unsigned long cap)
+bool WebGLRenderingContext::validateCapability(GC3Denum cap)
{
switch (cap) {
case GraphicsContext3D::BLEND:
@@ -4135,7 +4123,7 @@ bool WebGLRenderingContext::validateCapability(unsigned long cap)
}
}
-bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, Float32Array* v, int requiredMinSize)
+bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, Float32Array* v, GC3Dsizei requiredMinSize)
{
if (!v) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -4144,7 +4132,7 @@ bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation
return validateUniformMatrixParameters(location, false, v->data(), v->length(), requiredMinSize);
}
-bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, Int32Array* v, int requiredMinSize)
+bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, Int32Array* v, GC3Dsizei requiredMinSize)
{
if (!v) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -4153,12 +4141,12 @@ bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation
return validateUniformMatrixParameters(location, false, v->data(), v->length(), requiredMinSize);
}
-bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, void* v, int size, int requiredMinSize)
+bool WebGLRenderingContext::validateUniformParameters(const WebGLUniformLocation* location, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
{
return validateUniformMatrixParameters(location, false, v, size, requiredMinSize);
}
-bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, Float32Array* v, int requiredMinSize)
+bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, GC3Dsizei requiredMinSize)
{
if (!v) {
m_context->synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
@@ -4167,7 +4155,7 @@ bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLo
return validateUniformMatrixParameters(location, transpose, v->data(), v->length(), requiredMinSize);
}
-bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLocation* location, bool transpose, void* v, int size, int requiredMinSize)
+bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLocation* location, GC3Dboolean transpose, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
{
if (!location)
return false;
@@ -4190,7 +4178,7 @@ bool WebGLRenderingContext::validateUniformMatrixParameters(const WebGLUniformLo
return true;
}
-WebGLBuffer* WebGLRenderingContext::validateBufferDataParameters(unsigned long target, unsigned long usage)
+WebGLBuffer* WebGLRenderingContext::validateBufferDataParameters(GC3Denum target, GC3Denum usage)
{
WebGLBuffer* buffer = 0;
switch (target) {
@@ -4218,7 +4206,7 @@ WebGLBuffer* WebGLRenderingContext::validateBufferDataParameters(unsigned long t
return 0;
}
-void WebGLRenderingContext::vertexAttribfImpl(unsigned long index, int expectedSize, float v0, float v1, float v2, float v3)
+void WebGLRenderingContext::vertexAttribfImpl(GC3Duint index, GC3Dsizei expectedSize, GC3Dfloat v0, GC3Dfloat v1, GC3Dfloat v2, GC3Dfloat v3)
{
if (isContextLost())
return;
@@ -4252,7 +4240,7 @@ void WebGLRenderingContext::vertexAttribfImpl(unsigned long index, int expectedS
m_vertexAttribState[index].value[3] = v3;
}
-void WebGLRenderingContext::vertexAttribfvImpl(unsigned long index, Float32Array* v, int expectedSize)
+void WebGLRenderingContext::vertexAttribfvImpl(GC3Duint index, Float32Array* v, GC3Dsizei expectedSize)
{
if (isContextLost())
return;
@@ -4263,7 +4251,7 @@ void WebGLRenderingContext::vertexAttribfvImpl(unsigned long index, Float32Array
vertexAttribfvImpl(index, v->data(), v->length(), expectedSize);
}
-void WebGLRenderingContext::vertexAttribfvImpl(unsigned long index, float* v, int size, int expectedSize)
+void WebGLRenderingContext::vertexAttribfvImpl(GC3Duint index, GC3Dfloat* v, GC3Dsizei size, GC3Dsizei expectedSize)
{
if (isContextLost())
return;
@@ -4321,21 +4309,21 @@ void WebGLRenderingContext::initVertexAttrib0()
m_vertexAttrib0BufferValue[3] = 1.0f;
}
-bool WebGLRenderingContext::simulateVertexAttrib0(long numVertex)
+bool WebGLRenderingContext::simulateVertexAttrib0(GC3Dsizei numVertex)
{
const VertexAttribState& state = m_vertexAttribState[0];
if (state.enabled || !m_currentProgram || !m_currentProgram->object()
|| !m_currentProgram->isUsingVertexAttrib0())
return false;
m_context->bindBuffer(GraphicsContext3D::ARRAY_BUFFER, m_vertexAttrib0Buffer->object());
- long bufferDataSize = (numVertex + 1) * 4 * sizeof(float);
+ GC3Dsizeiptr bufferDataSize = (numVertex + 1) * 4 * sizeof(GC3Dfloat);
if (bufferDataSize > m_vertexAttrib0BufferSize
|| state.value[0] != m_vertexAttrib0BufferValue[0]
|| state.value[1] != m_vertexAttrib0BufferValue[1]
|| state.value[2] != m_vertexAttrib0BufferValue[2]
|| state.value[3] != m_vertexAttrib0BufferValue[3]) {
- OwnArrayPtr<float> bufferData(new float[(numVertex + 1) * 4]);
- for (long ii = 0; ii < numVertex + 1; ++ii) {
+ OwnArrayPtr<GC3Dfloat> bufferData(new GC3Dfloat[(numVertex + 1) * 4]);
+ for (GC3Dsizei ii = 0; ii < numVertex + 1; ++ii) {
bufferData[ii * 4] = state.value[0];
bufferData[ii * 4 + 1] = state.value[1];
bufferData[ii * 4 + 2] = state.value[2];
@@ -4348,7 +4336,7 @@ bool WebGLRenderingContext::simulateVertexAttrib0(long numVertex)
m_vertexAttrib0BufferValue[2] = state.value[2];
m_vertexAttrib0BufferValue[3] = state.value[3];
}
- m_context->vertexAttribPointer(0, 4, GraphicsContext3D::FLOAT, false, 0, 0);
+ m_context->vertexAttribPointer(0, 4, GraphicsContext3D::FLOAT, 0, 0, 0);
return true;
}
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.h b/Source/WebCore/html/canvas/WebGLRenderingContext.h
index c40847f..d9b738c 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.h
@@ -68,47 +68,47 @@ public:
virtual bool isAccelerated() const { return true; }
virtual bool paintsIntoCanvasBuffer() const;
- void activeTexture(unsigned long texture, ExceptionCode& ec);
+ void activeTexture(GC3Denum 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(float red, float green, float blue, float 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(float red, float green, float blue, float alpha);
- void clearDepth(float);
- void clearStencil(long);
- void colorMask(bool red, bool green, bool blue, bool alpha);
+ void bindAttribLocation(WebGLProgram*, GC3Duint index, const String& name, ExceptionCode& ec);
+ void bindBuffer(GC3Denum target, WebGLBuffer*, ExceptionCode& ec);
+ void bindFramebuffer(GC3Denum target, WebGLFramebuffer*, ExceptionCode& ec);
+ void bindRenderbuffer(GC3Denum target, WebGLRenderbuffer*, ExceptionCode& ec);
+ void bindTexture(GC3Denum target, WebGLTexture*, ExceptionCode& ec);
+ void blendColor(GC3Dfloat red, GC3Dfloat green, GC3Dfloat blue, GC3Dfloat alpha);
+ void blendEquation(GC3Denum mode);
+ void blendEquationSeparate(GC3Denum modeRGB, GC3Denum modeAlpha);
+ void blendFunc(GC3Denum sfactor, GC3Denum dfactor);
+ void blendFuncSeparate(GC3Denum srcRGB, GC3Denum dstRGB, GC3Denum srcAlpha, GC3Denum dstAlpha);
+
+ void bufferData(GC3Denum target, GC3Dsizeiptr size, GC3Denum usage, ExceptionCode&);
+ void bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode&);
+ void bufferData(GC3Denum target, ArrayBufferView* data, GC3Denum usage, ExceptionCode&);
+ void bufferSubData(GC3Denum target, GC3Dintptr offset, ArrayBuffer* data, ExceptionCode&);
+ void bufferSubData(GC3Denum target, GC3Dintptr offset, ArrayBufferView* data, ExceptionCode&);
+
+ GC3Denum checkFramebufferStatus(GC3Denum target);
+ void clear(GC3Dbitfield mask);
+ void clearColor(GC3Dfloat red, GC3Dfloat green, GC3Dfloat blue, GC3Dfloat alpha);
+ void clearDepth(GC3Dfloat);
+ void clearStencil(GC3Dint);
+ void colorMask(GC3Dboolean red, GC3Dboolean green, GC3Dboolean blue, GC3Dboolean 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 compressedTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Dsizei imageSize, const void* data);
+ // void compressedTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei GC3Dsizei height, GC3Denum format, GC3Dsizei imageSize, const void* data);
- void copyTexImage2D(unsigned long target, long level, unsigned long internalformat, long x, long y, long width, long height, long border);
- void copyTexSubImage2D(unsigned long target, long level, long xoffset, long yoffset, long x, long y, long width, long height);
+ void copyTexImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Dint border);
+ void copyTexSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
PassRefPtr<WebGLBuffer> createBuffer();
PassRefPtr<WebGLFramebuffer> createFramebuffer();
PassRefPtr<WebGLProgram> createProgram();
PassRefPtr<WebGLRenderbuffer> createRenderbuffer();
- PassRefPtr<WebGLShader> createShader(unsigned long type, ExceptionCode&);
+ PassRefPtr<WebGLShader> createShader(GC3Denum type, ExceptionCode&);
PassRefPtr<WebGLTexture> createTexture();
- void cullFace(unsigned long mode);
+ void cullFace(GC3Denum mode);
void deleteBuffer(WebGLBuffer*);
void deleteFramebuffer(WebGLFramebuffer*);
@@ -117,173 +117,155 @@ public:
void deleteShader(WebGLShader*);
void deleteTexture(WebGLTexture*);
- void depthFunc(unsigned long);
- void depthMask(bool);
- void depthRange(float zNear, float zFar);
+ void depthFunc(GC3Denum);
+ void depthMask(GC3Dboolean);
+ void depthRange(GC3Dfloat zNear, GC3Dfloat 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 disable(GC3Denum cap);
+ void disableVertexAttribArray(GC3Duint index, ExceptionCode&);
+ void drawArrays(GC3Denum mode, GC3Dint first, GC3Dsizei count, ExceptionCode&);
+ void drawElements(GC3Denum mode, GC3Dsizei count, GC3Denum type, GC3Dintptr offset, ExceptionCode&);
- void enable(unsigned long cap);
- void enableVertexAttribArray(unsigned long index, ExceptionCode&);
+ void enable(GC3Denum cap);
+ void enableVertexAttribArray(GC3Duint 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&);
+ void framebufferRenderbuffer(GC3Denum target, GC3Denum attachment, GC3Denum renderbuffertarget, WebGLRenderbuffer*, ExceptionCode& ec);
+ void framebufferTexture2D(GC3Denum target, GC3Denum attachment, GC3Denum textarget, WebGLTexture*, GC3Dint level, ExceptionCode& ec);
+ void frontFace(GC3Denum mode);
+ void generateMipmap(GC3Denum target);
+ PassRefPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram*, GC3Duint index, ExceptionCode&);
+ PassRefPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram*, GC3Duint index, ExceptionCode&);
bool getAttachedShaders(WebGLProgram*, Vector<WebGLShader*>&, ExceptionCode&);
-
- int getAttribLocation(WebGLProgram*, const String& name);
-
- WebGLGetInfo getBufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
+ GC3Dint getAttribLocation(WebGLProgram*, const String& name);
+ WebGLGetInfo getBufferParameter(GC3Denum target, GC3Denum pname, ExceptionCode&);
PassRefPtr<WebGLContextAttributes> getContextAttributes();
-
- unsigned long getError();
-
+ GC3Denum getError();
WebGLExtension* getExtension(const String& name);
-
- 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&);
-
+ WebGLGetInfo getFramebufferAttachmentParameter(GC3Denum target, GC3Denum attachment, GC3Denum pname, ExceptionCode&);
+ WebGLGetInfo getParameter(GC3Denum pname, ExceptionCode&);
+ WebGLGetInfo getProgramParameter(WebGLProgram*, GC3Denum pname, ExceptionCode&);
String getProgramInfoLog(WebGLProgram*, ExceptionCode& ec);
-
- WebGLGetInfo getRenderbufferParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
- WebGLGetInfo getShaderParameter(WebGLShader*, unsigned long pname, ExceptionCode& ec);
-
+ WebGLGetInfo getRenderbufferParameter(GC3Denum target, GC3Denum pname, ExceptionCode&);
+ WebGLGetInfo getShaderParameter(WebGLShader*, GC3Denum pname, ExceptionCode& ec);
String getShaderInfoLog(WebGLShader*, ExceptionCode& ec);
// TBD
- // void glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+ // void glGetShaderPrecisionFormat (GC3Denum shadertype, GC3Denum precisiontype, GC3Dint* range, GC3Dint* precision);
String getShaderSource(WebGLShader*, ExceptionCode&);
-
Vector<String> getSupportedExtensions();
-
- WebGLGetInfo getTexParameter(unsigned long target, unsigned long pname, ExceptionCode&);
-
+ WebGLGetInfo getTexParameter(GC3Denum target, GC3Denum pname, ExceptionCode&);
WebGLGetInfo getUniform(WebGLProgram*, const WebGLUniformLocation*, ExceptionCode&);
-
PassRefPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&, ExceptionCode&);
+ WebGLGetInfo getVertexAttrib(GC3Duint index, GC3Denum pname, ExceptionCode&);
+ GC3Dsizeiptr getVertexAttribOffset(GC3Duint index, GC3Denum pname);
- 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*);
+ void hint(GC3Denum target, GC3Denum mode);
+ GC3Dboolean isBuffer(WebGLBuffer*);
bool isContextLost();
- bool isEnabled(unsigned long cap);
- bool isFramebuffer(WebGLFramebuffer*);
- bool isProgram(WebGLProgram*);
- bool isRenderbuffer(WebGLRenderbuffer*);
- bool isShader(WebGLShader*);
- bool isTexture(WebGLTexture*);
- void lineWidth(float);
+ GC3Dboolean isEnabled(GC3Denum cap);
+ GC3Dboolean isFramebuffer(WebGLFramebuffer*);
+ GC3Dboolean isProgram(WebGLProgram*);
+ GC3Dboolean isRenderbuffer(WebGLRenderbuffer*);
+ GC3Dboolean isShader(WebGLShader*);
+ GC3Dboolean isTexture(WebGLTexture*);
+
+ void lineWidth(GC3Dfloat);
void linkProgram(WebGLProgram*, ExceptionCode&);
- void pixelStorei(unsigned long pname, long param);
- void polygonOffset(float factor, float units);
- void readPixels(long x, long y, long width, long height, unsigned long format, unsigned long type, ArrayBufferView* pixels, ExceptionCode&);
+ void pixelStorei(GC3Denum pname, GC3Dint param);
+ void polygonOffset(GC3Dfloat factor, GC3Dfloat units);
+ void readPixels(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode&);
void releaseShaderCompiler();
- void renderbufferStorage(unsigned long target, unsigned long internalformat, long width, long height);
- void sampleCoverage(float value, bool invert);
- void scissor(long x, long y, long width, long height);
+ void renderbufferStorage(GC3Denum target, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height);
+ void sampleCoverage(GC3Dfloat value, GC3Dboolean invert);
+ void scissor(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei 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,
- int width, int 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&);
-
- void texParameterf(unsigned target, unsigned pname, float param);
- void texParameteri(unsigned target, unsigned pname, int param);
-
- void texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- int width, int height,
- unsigned format, unsigned type, ArrayBufferView* pixels, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, ImageData* pixels, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLImageElement* image, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLCanvasElement* canvas, ExceptionCode&);
- void texSubImage2D(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type, HTMLVideoElement* video, ExceptionCode&);
-
- void uniform1f(const WebGLUniformLocation* location, float x, ExceptionCode&);
+ void stencilFunc(GC3Denum func, GC3Dint ref, GC3Duint mask);
+ void stencilFuncSeparate(GC3Denum face, GC3Denum func, GC3Dint ref, GC3Duint mask);
+ void stencilMask(GC3Duint);
+ void stencilMaskSeparate(GC3Denum face, GC3Duint mask);
+ void stencilOp(GC3Denum fail, GC3Denum zfail, GC3Denum zpass);
+ void stencilOpSeparate(GC3Denum face, GC3Denum fail, GC3Denum zfail, GC3Denum zpass);
+
+ void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode&);
+ void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, ImageData* pixels, ExceptionCode&);
+ void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLImageElement* image, ExceptionCode&);
+ void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texImage2D(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, HTMLVideoElement* video, ExceptionCode&);
+
+ void texParameterf(GC3Denum target, GC3Denum pname, GC3Dfloat param);
+ void texParameteri(GC3Denum target, GC3Denum pname, GC3Dint param);
+
+ void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type, ArrayBufferView* pixels, ExceptionCode&);
+ void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, ImageData* pixels, ExceptionCode&);
+ void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLImageElement* image, ExceptionCode&);
+ void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLCanvasElement* canvas, ExceptionCode&);
+ void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type, HTMLVideoElement* video, ExceptionCode&);
+
+ void uniform1f(const WebGLUniformLocation* location, GC3Dfloat 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 uniform1fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
+ void uniform1i(const WebGLUniformLocation* location, GC3Dint 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 uniform1iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
+ void uniform2f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat 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 uniform2fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
+ void uniform2i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint 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 uniform2iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
+ void uniform3f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat 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 uniform3fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
+ void uniform3i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint 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 uniform3iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
+ void uniform4f(const WebGLUniformLocation* location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat 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 uniform4fv(const WebGLUniformLocation* location, GC3Dfloat* v, GC3Dsizei size, ExceptionCode&);
+ void uniform4i(const WebGLUniformLocation* location, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint 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 uniform4iv(const WebGLUniformLocation* location, GC3Dint* v, GC3Dsizei size, ExceptionCode&);
+ void uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix2fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei size, ExceptionCode&);
+ void uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix3fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei size, ExceptionCode&);
+ void uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* value, ExceptionCode&);
+ void uniformMatrix4fv(const WebGLUniformLocation* location, GC3Dboolean transpose, GC3Dfloat* value, GC3Dsizei 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, long width, long height);
+ void vertexAttrib1f(GC3Duint index, GC3Dfloat x);
+ void vertexAttrib1fv(GC3Duint index, Float32Array* values);
+ void vertexAttrib1fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
+ void vertexAttrib2f(GC3Duint index, GC3Dfloat x, GC3Dfloat y);
+ void vertexAttrib2fv(GC3Duint index, Float32Array* values);
+ void vertexAttrib2fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
+ void vertexAttrib3f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z);
+ void vertexAttrib3fv(GC3Duint index, Float32Array* values);
+ void vertexAttrib3fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
+ void vertexAttrib4f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w);
+ void vertexAttrib4fv(GC3Duint index, Float32Array* values);
+ void vertexAttrib4fv(GC3Duint index, GC3Dfloat* values, GC3Dsizei size);
+ void vertexAttribPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dboolean normalized,
+ GC3Dsizei stride, GC3Dintptr offset, ExceptionCode&);
+
+ void viewport(GC3Dint x, GC3Dint y, GC3Dsizei width, GC3Dsizei height);
void forceLostContext();
void onLostContext();
@@ -338,18 +320,18 @@ public:
// Helper to return the size in bytes of OpenGL data types
// like GL_FLOAT, GL_INT, etc.
- int sizeInBytes(int type);
+ unsigned int sizeInBytes(GC3Denum 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);
+ bool validateElementArraySize(GC3Dsizei count, GC3Denum type, GC3Dintptr offset);
// Conservative but quick index validation
- bool validateIndexArrayConservative(unsigned long type, long& numElementsRequired);
+ bool validateIndexArrayConservative(GC3Denum type, int& 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 validateIndexArrayPrecise(GC3Dsizei count, GC3Denum type, GC3Dintptr offset, int& numElementsRequired);
// If numElements <= 0, we only check if each enabled vertex attribute is bound to a buffer.
- bool validateRenderingState(long numElements);
+ bool validateRenderingState(int numElements);
bool validateWebGLObject(WebGLObject* object);
@@ -401,21 +383,21 @@ public:
bool enabled;
RefPtr<WebGLBuffer> bufferBinding;
- long bytesPerElement;
- long size;
- unsigned long type;
+ GC3Dsizei bytesPerElement;
+ GC3Dint size;
+ GC3Denum type;
bool normalized;
- long stride;
- long originalStride;
- long offset;
- float value[4];
+ GC3Dsizei stride;
+ GC3Dsizei originalStride;
+ GC3Dintptr offset;
+ GC3Dfloat value[4];
};
Vector<VertexAttribState> m_vertexAttribState;
unsigned m_maxVertexAttribs;
RefPtr<WebGLBuffer> m_vertexAttrib0Buffer;
long m_vertexAttrib0BufferSize;
- float m_vertexAttrib0BufferValue[4];
+ GC3Dfloat m_vertexAttrib0BufferValue[4];
RefPtr<WebGLProgram> m_currentProgram;
RefPtr<WebGLFramebuffer> m_framebufferBinding;
@@ -444,23 +426,23 @@ public:
};
LRUImageBufferCache m_videoCache;
- int m_maxTextureSize;
- int m_maxCubeMapTextureSize;
- int m_maxTextureLevel;
- int m_maxCubeMapTextureLevel;
+ GC3Dint m_maxTextureSize;
+ GC3Dint m_maxCubeMapTextureSize;
+ GC3Dint m_maxTextureLevel;
+ GC3Dint m_maxCubeMapTextureLevel;
- int m_packAlignment;
- int m_unpackAlignment;
+ GC3Dint m_packAlignment;
+ GC3Dint m_unpackAlignment;
bool m_unpackFlipY;
bool m_unpackPremultiplyAlpha;
- unsigned long m_unpackColorspaceConversion;
+ GC3Denum m_unpackColorspaceConversion;
bool m_contextLost;
GraphicsContext3D::Attributes m_attributes;
long m_stencilBits;
- unsigned long m_stencilMask, m_stencilMaskBack;
- long m_stencilFuncRef, m_stencilFuncRefBack; // Note that these are the user specified values, not the internal clamped value.
- unsigned long m_stencilFuncMask, m_stencilFuncMaskBack;
+ GC3Duint m_stencilMask, m_stencilMaskBack;
+ GC3Dint m_stencilFuncRef, m_stencilFuncRefBack; // Note that these are the user specified values, not the internal clamped value.
+ GC3Duint m_stencilFuncMask, m_stencilFuncMaskBack;
bool m_isGLES2Compliant;
bool m_isGLES2NPOTStrict;
@@ -473,26 +455,26 @@ public:
RefPtr<WebKitLoseContext> m_webkitLoseContext;
// 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,
- int width, int height, unsigned border,
- unsigned format, unsigned type, void* pixels, ExceptionCode&);
- void texImage2DImpl(unsigned target, unsigned level, unsigned internalformat,
- unsigned format, unsigned type, Image* image,
+ WebGLGetInfo getBooleanParameter(GC3Denum pname);
+ WebGLGetInfo getBooleanArrayParameter(GC3Denum pname);
+ WebGLGetInfo getFloatParameter(GC3Denum pname);
+ WebGLGetInfo getIntParameter(GC3Denum pname);
+ WebGLGetInfo getLongParameter(GC3Denum pname);
+ WebGLGetInfo getUnsignedLongParameter(GC3Denum pname);
+ WebGLGetInfo getWebGLFloatArrayParameter(GC3Denum pname);
+ WebGLGetInfo getWebGLIntArrayParameter(GC3Denum pname);
+
+ void texImage2DBase(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum type, void* pixels, ExceptionCode&);
+ void texImage2DImpl(GC3Denum target, GC3Dint level, GC3Denum internalformat,
+ GC3Denum format, GC3Denum type, Image* image,
bool flipY, bool premultiplyAlpha, ExceptionCode&);
- void texSubImage2DBase(unsigned target, unsigned level, int xoffset, int yoffset,
- int width, int height,
- unsigned format, unsigned type, void* pixels, ExceptionCode&);
- void texSubImage2DImpl(unsigned target, unsigned level, int xoffset, int yoffset,
- unsigned format, unsigned type,
+ void texSubImage2DBase(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type, void* pixels, ExceptionCode&);
+ void texSubImage2DImpl(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset,
+ GC3Denum format, GC3Denum type,
Image* image, bool flipY, bool premultiplyAlpha, ExceptionCode&);
void handleNPOTTextures(bool prepareToDraw);
@@ -502,11 +484,11 @@ public:
// 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);
+ bool isTexInternalFormatColorBufferCombinationValid(GC3Denum texInternalFormat,
+ GC3Denum colorBufferFormat);
// Helper function to get the bound framebuffer's color buffer format.
- unsigned long getBoundFramebufferColorFormat();
+ GC3Denum getBoundFramebufferColorFormat();
// Helper function to get the bound framebuffer's width.
int getBoundFramebufferWidth();
@@ -516,7 +498,7 @@ public:
// Helper function to check if size is non-negative.
// Generate GL error and return false for negative inputs; otherwise, return true.
- bool validateSize(long x, long y);
+ bool validateSize(GC3Dint x, GC3Dint y);
// Helper function to check if all characters in the string belong to the
// ASCII subset as defined in GLSL ES 1.0 spec section 3.1.
@@ -525,41 +507,41 @@ public:
// Helper function to check target and texture bound to the target.
// Generate GL errors and return 0 if target is invalid or texture bound is
// null. Otherwise, return the texture bound to the target.
- WebGLTexture* validateTextureBinding(unsigned long target, bool useSixEnumsForCubeMap);
+ WebGLTexture* validateTextureBinding(GC3Denum target, bool useSixEnumsForCubeMap);
// 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);
+ bool validateTexFuncFormatAndType(GC3Denum format, GC3Denum type);
// Helper function to check input level for functions {copy}Tex{Sub}Image.
// Generates GL error and returns false if level is invalid.
- bool validateTexFuncLevel(unsigned long target, long level);
+ bool validateTexFuncLevel(GC3Denum target, GC3Dint level);
// 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);
+ bool validateTexFuncParameters(GC3Denum target, GC3Dint level,
+ GC3Denum internalformat,
+ GC3Dsizei width, GC3Dsizei height, GC3Dint border,
+ GC3Denum format, GC3Denum 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,
+ bool validateTexFuncData(GC3Dsizei width, GC3Dsizei height,
+ GC3Denum format, GC3Denum type,
ArrayBufferView* pixels);
// Helper function to validate mode for draw{Arrays/Elements}.
- bool validateDrawMode(unsigned long);
+ bool validateDrawMode(GC3Denum);
// Helper function to validate if front/back stencilMask and stencilFunc settings are the same.
bool validateStencilSettings();
// Helper function to validate stencil func.
- bool validateStencilFunc(unsigned long);
+ bool validateStencilFunc(GC3Denum);
// Helper function for texParameterf and texParameteri.
- void texParameter(unsigned long target, unsigned long pname, float parami, int paramf, bool isFloat);
+ void texParameter(GC3Denum target, GC3Denum pname, GC3Dfloat parami, GC3Dint paramf, bool isFloat);
// Helper function to print warnings to console. Currently
// used only to warn about use of obsolete functions.
@@ -567,36 +549,36 @@ public:
// Helper function to validate input parameters for framebuffer functions.
// Generate GL error if parameters are illegal.
- bool validateFramebufferFuncParameters(unsigned long target, unsigned long attachment);
+ bool validateFramebufferFuncParameters(GC3Denum target, GC3Denum attachment);
// Helper function to validate blend equation mode.
- bool validateBlendEquation(unsigned long);
+ bool validateBlendEquation(GC3Denum);
// Helper function to validate blend func factors.
- bool validateBlendFuncFactors(unsigned long src, unsigned long dst);
+ bool validateBlendFuncFactors(GC3Denum src, GC3Denum dst);
// Helper function to validate a GL capability.
- bool validateCapability(unsigned long);
+ bool validateCapability(GC3Denum);
// 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);
+ bool validateUniformParameters(const WebGLUniformLocation* location, Float32Array* v, GC3Dsizei mod);
+ bool validateUniformParameters(const WebGLUniformLocation* location, Int32Array* v, GC3Dsizei mod);
+ bool validateUniformParameters(const WebGLUniformLocation* location, void* v, GC3Dsizei size, GC3Dsizei mod);
+ bool validateUniformMatrixParameters(const WebGLUniformLocation* location, GC3Dboolean transpose, Float32Array* v, GC3Dsizei mod);
+ bool validateUniformMatrixParameters(const WebGLUniformLocation* location, GC3Dboolean transpose, void* v, GC3Dsizei size, GC3Dsizei 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);
+ WebGLBuffer* validateBufferDataParameters(GC3Denum target, GC3Denum 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);
+ void vertexAttribfImpl(GC3Duint index, GC3Dsizei expectedSize, GC3Dfloat v0, GC3Dfloat v1, GC3Dfloat v2, GC3Dfloat v3);
+ void vertexAttribfvImpl(GC3Duint index, Float32Array* v, GC3Dsizei expectedSize);
+ void vertexAttribfvImpl(GC3Duint index, GC3Dfloat* v, GC3Dsizei size, GC3Dsizei expectedSize);
// Helpers for simulating vertexAttrib0
void initVertexAttrib0();
- bool simulateVertexAttrib0(long numVertex);
+ bool simulateVertexAttrib0(GC3Dsizei numVertex);
void restoreStatesAfterVertexAttrib0Simulation();
friend class WebGLStateRestorer;
diff --git a/Source/WebCore/html/canvas/WebGLShader.cpp b/Source/WebCore/html/canvas/WebGLShader.cpp
index 4f8bf68..a07023f 100644
--- a/Source/WebCore/html/canvas/WebGLShader.cpp
+++ b/Source/WebCore/html/canvas/WebGLShader.cpp
@@ -33,12 +33,12 @@
namespace WebCore {
-PassRefPtr<WebGLShader> WebGLShader::create(WebGLRenderingContext* ctx, GraphicsContext3D::WebGLEnumType type)
+PassRefPtr<WebGLShader> WebGLShader::create(WebGLRenderingContext* ctx, GC3Denum type)
{
return adoptRef(new WebGLShader(ctx, type));
}
-WebGLShader::WebGLShader(WebGLRenderingContext* ctx, GraphicsContext3D::WebGLEnumType type)
+WebGLShader::WebGLShader(WebGLRenderingContext* ctx, GC3Denum type)
: WebGLObject(ctx)
, m_type(type)
{
diff --git a/Source/WebCore/html/canvas/WebGLShader.h b/Source/WebCore/html/canvas/WebGLShader.h
index c0c41df..5deaf20 100644
--- a/Source/WebCore/html/canvas/WebGLShader.h
+++ b/Source/WebCore/html/canvas/WebGLShader.h
@@ -37,18 +37,18 @@ class WebGLShader : public WebGLObject {
public:
virtual ~WebGLShader() { deleteObject(); }
- static PassRefPtr<WebGLShader> create(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
+ static PassRefPtr<WebGLShader> create(WebGLRenderingContext*, GC3Denum);
- GraphicsContext3D::WebGLEnumType getType() const { return m_type; }
+ GC3Denum getType() const { return m_type; }
private:
- WebGLShader(WebGLRenderingContext*, GraphicsContext3D::WebGLEnumType);
+ WebGLShader(WebGLRenderingContext*, GC3Denum);
virtual void deleteObjectImpl(Platform3DObject);
virtual bool isShader() const { return true; }
- GraphicsContext3D::WebGLEnumType m_type;
+ GC3Denum m_type;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/canvas/WebGLTexture.cpp b/Source/WebCore/html/canvas/WebGLTexture.cpp
index 2982e51..a57500f 100644
--- a/Source/WebCore/html/canvas/WebGLTexture.cpp
+++ b/Source/WebCore/html/canvas/WebGLTexture.cpp
@@ -53,7 +53,7 @@ WebGLTexture::WebGLTexture(WebGLRenderingContext* ctx)
setObject(context()->graphicsContext3D()->createTexture());
}
-void WebGLTexture::setTarget(unsigned long target, int maxLevel)
+void WebGLTexture::setTarget(GC3Denum target, GC3Dint maxLevel)
{
if (!object())
return;
@@ -75,7 +75,7 @@ void WebGLTexture::setTarget(unsigned long target, int maxLevel)
}
}
-void WebGLTexture::setParameteri(unsigned long pname, int param)
+void WebGLTexture::setParameteri(GC3Denum pname, GC3Dint param)
{
if (!object() || !m_target)
return;
@@ -124,15 +124,15 @@ void WebGLTexture::setParameteri(unsigned long pname, int param)
update();
}
-void WebGLTexture::setParameterf(unsigned long pname, float param)
+void WebGLTexture::setParameterf(GC3Denum pname, GC3Dfloat param)
{
if (!object() || !m_target)
return;
- int iparam = static_cast<int>(param);
+ GC3Dint iparam = static_cast<GC3Dint>(param);
setParameteri(pname, iparam);
}
-void WebGLTexture::setLevelInfo(unsigned long target, int level, unsigned long internalFormat, int width, int height, unsigned long type)
+void WebGLTexture::setLevelInfo(GC3Denum target, GC3Dint level, GC3Denum internalFormat, GC3Dsizei width, GC3Dsizei height, GC3Denum type)
{
if (!object() || !m_target)
return;
@@ -154,10 +154,10 @@ void WebGLTexture::generateMipmapLevelInfo()
if (!m_isComplete) {
for (size_t ii = 0; ii < m_info.size(); ++ii) {
const LevelInfo& info0 = m_info[ii][0];
- int width = info0.width;
- int height = info0.height;
- int levelCount = computeLevelCount(width, height);
- for (int level = 1; level < levelCount; ++level) {
+ GC3Dsizei width = info0.width;
+ GC3Dsizei height = info0.height;
+ GC3Dint levelCount = computeLevelCount(width, height);
+ for (GC3Dint level = 1; level < levelCount; ++level) {
width = std::max(1, width >> 1);
height = std::max(1, height >> 1);
LevelInfo& info = m_info[ii][level];
@@ -169,7 +169,7 @@ void WebGLTexture::generateMipmapLevelInfo()
m_needToUseBlackTexture = false;
}
-unsigned long WebGLTexture::getInternalFormat(unsigned long target, int level) const
+GC3Denum WebGLTexture::getInternalFormat(GC3Denum target, GC3Dint level) const
{
const LevelInfo* info = getLevelInfo(target, level);
if (!info)
@@ -177,7 +177,7 @@ unsigned long WebGLTexture::getInternalFormat(unsigned long target, int level) c
return info->internalFormat;
}
-unsigned long WebGLTexture::getType(unsigned long target, int level) const
+GC3Denum WebGLTexture::getType(GC3Denum target, GC3Dint level) const
{
const LevelInfo* info = getLevelInfo(target, level);
if (!info)
@@ -185,7 +185,7 @@ unsigned long WebGLTexture::getType(unsigned long target, int level) const
return info->type;
}
-int WebGLTexture::getWidth(unsigned long target, int level) const
+GC3Dsizei WebGLTexture::getWidth(GC3Denum target, GC3Dint level) const
{
const LevelInfo* info = getLevelInfo(target, level);
if (!info)
@@ -193,7 +193,7 @@ int WebGLTexture::getWidth(unsigned long target, int level) const
return info->width;
}
-int WebGLTexture::getHeight(unsigned long target, int level) const
+GC3Dsizei WebGLTexture::getHeight(GC3Denum target, GC3Dint level) const
{
const LevelInfo* info = getLevelInfo(target, level);
if (!info)
@@ -201,8 +201,9 @@ int WebGLTexture::getHeight(unsigned long target, int level) const
return info->height;
}
-bool WebGLTexture::isNPOT(unsigned width, unsigned height)
+bool WebGLTexture::isNPOT(GC3Dsizei width, GC3Dsizei height)
{
+ ASSERT(width >= 0 && height >= 0);
if (!width || !height)
return false;
if ((width & (width - 1)) || (height & (height - 1)))
@@ -229,7 +230,7 @@ void WebGLTexture::deleteObjectImpl(Platform3DObject object)
context()->graphicsContext3D()->deleteTexture(object);
}
-int WebGLTexture::mapTargetToIndex(unsigned long target) const
+int WebGLTexture::mapTargetToIndex(GC3Denum target) const
{
if (m_target == GraphicsContext3D::TEXTURE_2D) {
if (target == GraphicsContext3D::TEXTURE_2D)
@@ -268,17 +269,17 @@ bool WebGLTexture::canGenerateMipmaps()
return true;
}
-int WebGLTexture::computeLevelCount(int width, int height)
+GC3Dint WebGLTexture::computeLevelCount(GC3Dsizei width, GC3Dsizei height)
{
// return 1 + log2Floor(std::max(width, height));
- int n = std::max(width, height);
+ GC3Dsizei n = std::max(width, height);
if (n <= 0)
return 0;
- int log = 0;
- int value = n;
+ GC3Dint log = 0;
+ GC3Dsizei value = n;
for (int ii = 4; ii >= 0; --ii) {
int shift = (1 << ii);
- int x = (value >> shift);
+ GC3Dsizei x = (value >> shift);
if (x) {
value = x;
log += shift;
@@ -299,7 +300,7 @@ void WebGLTexture::update()
}
m_isComplete = true;
const LevelInfo& first = m_info[0][0];
- int levelCount = computeLevelCount(first.width, first.height);
+ GC3Dint levelCount = computeLevelCount(first.width, first.height);
if (levelCount < 1)
m_isComplete = false;
else {
@@ -311,9 +312,9 @@ void WebGLTexture::update()
m_isComplete = false;
break;
}
- int width = info0.width;
- int height = info0.height;
- for (int level = 1; level < levelCount; ++level) {
+ GC3Dsizei width = info0.width;
+ GC3Dsizei height = info0.height;
+ for (GC3Dint level = 1; level < levelCount; ++level) {
width = std::max(1, width >> 1);
height = std::max(1, height >> 1);
const LevelInfo& info = m_info[ii][level];
@@ -338,14 +339,14 @@ void WebGLTexture::update()
m_needToUseBlackTexture = true;
}
-const WebGLTexture::LevelInfo* WebGLTexture::getLevelInfo(unsigned long target, int level) const
+const WebGLTexture::LevelInfo* WebGLTexture::getLevelInfo(GC3Denum target, GC3Dint level) const
{
if (!object() || !m_target)
return 0;
int targetIndex = mapTargetToIndex(target);
if (targetIndex < 0 || targetIndex >= static_cast<int>(m_info.size()))
return 0;
- if (level < 0 || level >= static_cast<int>(m_info[targetIndex].size()))
+ if (level < 0 || level >= static_cast<GC3Dint>(m_info[targetIndex].size()))
return 0;
return &(m_info[targetIndex][level]);
}
diff --git a/Source/WebCore/html/canvas/WebGLTexture.h b/Source/WebCore/html/canvas/WebGLTexture.h
index 419c94d..27eb8ee 100644
--- a/Source/WebCore/html/canvas/WebGLTexture.h
+++ b/Source/WebCore/html/canvas/WebGLTexture.h
@@ -40,25 +40,25 @@ public:
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);
+ void setTarget(GC3Denum target, GC3Dint maxLevel);
+ void setParameteri(GC3Denum pname, GC3Dint param);
+ void setParameterf(GC3Denum pname, GC3Dfloat param);
int getMinFilter() const { return m_minFilter; }
- void setLevelInfo(unsigned long target, int level, unsigned long internalFormat, int width, int height, unsigned long type);
+ void setLevelInfo(GC3Denum target, GC3Dint level, GC3Denum internalFormat, GC3Dsizei width, GC3Dsizei height, GC3Denum type);
bool canGenerateMipmaps();
// Generate all level information.
void generateMipmapLevelInfo();
- unsigned long getInternalFormat(unsigned long target, int level) const;
- unsigned long getType(unsigned long target, int level) const;
- int getWidth(unsigned long target, int level) const;
- int getHeight(unsigned long target, int level) const;
+ GC3Denum getInternalFormat(GC3Denum target, GC3Dint level) const;
+ GC3Denum getType(GC3Denum target, GC3Dint level) const;
+ GC3Dsizei getWidth(GC3Denum target, GC3Dint level) const;
+ GC3Dsizei getHeight(GC3Denum target, GC3Dint level) const;
// Whether width/height is NotPowerOfTwo.
- static bool isNPOT(unsigned, unsigned);
+ static bool isNPOT(GC3Dsizei, GC3Dsizei);
bool isNPOT() const;
// Determine if texture sampling should always return [0, 0, 0, 1] (OpenGL ES 2.0 Sec 3.8.2).
@@ -66,7 +66,7 @@ public:
bool hasEverBeenBound() const { return object() && m_target; }
- static int computeLevelCount(int width, int height);
+ static GC3Dint computeLevelCount(GC3Dsizei width, GC3Dsizei height);
protected:
WebGLTexture(WebGLRenderingContext*);
@@ -85,7 +85,7 @@ private:
{
}
- void setInfo(unsigned long internalFmt, int w, int h, unsigned long tp)
+ void setInfo(GC3Denum internalFmt, GC3Dsizei w, GC3Dsizei h, GC3Denum tp)
{
valid = true;
internalFormat = internalFmt;
@@ -95,26 +95,26 @@ private:
}
bool valid;
- unsigned long internalFormat;
- int width;
- int height;
- unsigned long type;
+ GC3Denum internalFormat;
+ GC3Dsizei width;
+ GC3Dsizei height;
+ GC3Denum type;
};
virtual bool isTexture() const { return true; }
void update();
- int mapTargetToIndex(unsigned long) const;
+ int mapTargetToIndex(GC3Denum) const;
- const LevelInfo* getLevelInfo(unsigned long target, int level) const;
+ const LevelInfo* getLevelInfo(GC3Denum target, GC3Dint level) const;
- unsigned long m_target;
+ GC3Denum m_target;
- int m_minFilter;
- int m_magFilter;
- int m_wrapS;
- int m_wrapT;
+ GC3Denum m_minFilter;
+ GC3Denum m_magFilter;
+ GC3Denum m_wrapS;
+ GC3Denum m_wrapT;
Vector<Vector<LevelInfo> > m_info;
diff --git a/Source/WebCore/html/canvas/WebGLUniformLocation.cpp b/Source/WebCore/html/canvas/WebGLUniformLocation.cpp
index e67b09a..a8220b0 100644
--- a/Source/WebCore/html/canvas/WebGLUniformLocation.cpp
+++ b/Source/WebCore/html/canvas/WebGLUniformLocation.cpp
@@ -32,12 +32,12 @@
namespace WebCore {
-PassRefPtr<WebGLUniformLocation> WebGLUniformLocation::create(WebGLProgram* program, long location)
+PassRefPtr<WebGLUniformLocation> WebGLUniformLocation::create(WebGLProgram* program, GC3Dint location)
{
return adoptRef(new WebGLUniformLocation(program, location));
}
-WebGLUniformLocation::WebGLUniformLocation(WebGLProgram* program, long location)
+WebGLUniformLocation::WebGLUniformLocation(WebGLProgram* program, GC3Dint location)
: m_program(program)
, m_location(location)
{
@@ -54,7 +54,7 @@ WebGLProgram* WebGLUniformLocation::program() const
return m_program.get();
}
-long WebGLUniformLocation::location() const
+GC3Dint WebGLUniformLocation::location() const
{
// If the program has been linked again, then this UniformLocation is no
// longer valid.
diff --git a/Source/WebCore/html/canvas/WebGLUniformLocation.h b/Source/WebCore/html/canvas/WebGLUniformLocation.h
index f8ce699..3ef9fa8 100644
--- a/Source/WebCore/html/canvas/WebGLUniformLocation.h
+++ b/Source/WebCore/html/canvas/WebGLUniformLocation.h
@@ -39,19 +39,19 @@ class WebGLUniformLocation : public RefCounted<WebGLUniformLocation> {
public:
virtual ~WebGLUniformLocation() { }
- static PassRefPtr<WebGLUniformLocation> create(WebGLProgram* program, long location);
+ static PassRefPtr<WebGLUniformLocation> create(WebGLProgram* program, GC3Dint location);
WebGLProgram* program() const;
- long location() const;
+ GC3Dint location() const;
protected:
- WebGLUniformLocation(WebGLProgram* program, long location);
+ WebGLUniformLocation(WebGLProgram* program, GC3Dint location);
private:
RefPtr<WebGLProgram> m_program;
- long m_location;
- unsigned long m_linkCount;
+ GC3Dint m_location;
+ unsigned m_linkCount;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.cpp b/Source/WebCore/html/shadow/SliderThumbElement.cpp
index d29d257..0402e89 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.cpp
+++ b/Source/WebCore/html/shadow/SliderThumbElement.cpp
@@ -37,6 +37,7 @@
#include "Frame.h"
#include "MouseEvent.h"
#include "RenderSlider.h"
+#include "RenderTheme.h"
#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS)
#include "TouchEvent.h"
@@ -44,14 +45,58 @@
namespace WebCore {
+// FIXME: Find a way to cascade appearance (see the layout method) and get rid of this class.
+class RenderSliderThumb : public RenderBlock {
+public:
+ RenderSliderThumb(Node*);
+ virtual void layout();
+};
+
+
+RenderSliderThumb::RenderSliderThumb(Node* node)
+ : RenderBlock(node)
+{
+}
+
+void RenderSliderThumb::layout()
+{
+ // FIXME: Hard-coding this cascade of appearance is bad, because it's something
+ // that CSS usually does. We need to find a way to express this in CSS.
+ RenderStyle* parentStyle = parent()->style();
+ if (parentStyle->appearance() == SliderVerticalPart)
+ style()->setAppearance(SliderThumbVerticalPart);
+ else if (parentStyle->appearance() == SliderHorizontalPart)
+ style()->setAppearance(SliderThumbHorizontalPart);
+ else if (parentStyle->appearance() == MediaSliderPart)
+ style()->setAppearance(MediaSliderThumbPart);
+ else if (parentStyle->appearance() == MediaVolumeSliderPart)
+ style()->setAppearance(MediaVolumeSliderThumbPart);
+
+ if (style()->hasAppearance()) {
+ // FIXME: This should pass the style, not the renderer, to the theme.
+ theme()->adjustSliderThumbSize(this);
+ }
+ RenderBlock::layout();
+}
+
+RenderObject* SliderThumbElement::createRenderer(RenderArena* arena, RenderStyle*)
+{
+ return new (arena) RenderSliderThumb(this);
+}
+
void SliderThumbElement::defaultEventHandler(Event* event)
{
+<<<<<<< HEAD
if (!event->isMouseEvent()
#if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS)
&& !event->isTouchEvent()
#endif
) {
ShadowBlockElement::defaultEventHandler(event);
+=======
+ if (!event->isMouseEvent()) {
+ HTMLDivElement::defaultEventHandler(event);
+>>>>>>> WebKit.org @ r75993
return;
}
@@ -126,7 +171,7 @@ void SliderThumbElement::defaultEventHandler(Event* event)
}
}
- ShadowBlockElement::defaultEventHandler(event);
+ HTMLDivElement::defaultEventHandler(event);
}
void SliderThumbElement::detach()
@@ -135,7 +180,7 @@ void SliderThumbElement::detach()
if (Frame* frame = document()->frame())
frame->eventHandler()->setCapturingMouseEventsNode(0);
}
- ShadowBlockElement::detach();
+ HTMLDivElement::detach();
}
}
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.h b/Source/WebCore/html/shadow/SliderThumbElement.h
index 8205746..7219186 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.h
+++ b/Source/WebCore/html/shadow/SliderThumbElement.h
@@ -33,7 +33,9 @@
#define SliderThumbElement_h
#include "FloatPoint.h"
-#include "ShadowElement.h"
+#include "HTMLDivElement.h"
+#include "HTMLNames.h"
+#include "RenderStyleConstants.h"
#include <wtf/Forward.h>
namespace WebCore {
@@ -42,34 +44,47 @@ class HTMLElement;
class Event;
class FloatPoint;
-class SliderThumbElement : public ShadowBlockElement {
+class SliderThumbElement : public HTMLDivElement {
public:
- static PassRefPtr<SliderThumbElement> create(HTMLElement* shadowParent);
+ static PassRefPtr<SliderThumbElement> create(Document*);
bool inDragMode() const { return m_inDragMode; }
virtual void defaultEventHandler(Event*);
virtual void detach();
+ virtual AtomicString shadowPseudoId() const;
-private:
- SliderThumbElement(HTMLElement* shadowParent);
+private:
+ SliderThumbElement(Document*);
+ virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
FloatPoint m_offsetToThumb;
bool m_inDragMode;
};
-inline SliderThumbElement::SliderThumbElement(HTMLElement* shadowParent)
- : ShadowBlockElement(shadowParent)
+inline SliderThumbElement::SliderThumbElement(Document* document)
+ : HTMLDivElement(HTMLNames::divTag, document)
, m_inDragMode(false)
{
}
-inline PassRefPtr<SliderThumbElement> SliderThumbElement::create(HTMLElement* shadowParent)
+inline PassRefPtr<SliderThumbElement> SliderThumbElement::create(Document* document)
{
- return adoptRef(new SliderThumbElement(shadowParent));
+ return adoptRef(new SliderThumbElement(document));
}
+inline AtomicString SliderThumbElement::shadowPseudoId() const
+{
+ DEFINE_STATIC_LOCAL(AtomicString, sliderThumb, ("-webkit-slider-thumb"));
+ return sliderThumb;
}
+inline SliderThumbElement* toSliderThumbElement(Node* node)
+{
+ ASSERT(!node || node->isHTMLElement());
+ return static_cast<SliderThumbElement*>(node);
+}
+
+}
#endif
diff --git a/Source/WebCore/inspector/CodeGeneratorInspector.pm b/Source/WebCore/inspector/CodeGeneratorInspector.pm
index b8aea0e..b7be15e 100644
--- a/Source/WebCore/inspector/CodeGeneratorInspector.pm
+++ b/Source/WebCore/inspector/CodeGeneratorInspector.pm
@@ -20,11 +20,21 @@ $typeTransform{"CSS"} = {
"header" => "InspectorCSSAgent.h",
"domainAccessor" => "m_inspectorController->m_cssAgent",
};
+$typeTransform{"Console"} = {
+ "forward" => "InspectorConsoleAgent",
+ "header" => "InspectorConsoleAgent.h",
+ "domainAccessor" => "m_inspectorController->m_consoleAgent",
+};
$typeTransform{"Debugger"} = {
"forward" => "InspectorDebuggerAgent",
"header" => "InspectorDebuggerAgent.h",
"domainAccessor" => "m_inspectorController->m_debuggerAgent",
};
+$typeTransform{"BrowserDebugger"} = {
+ "forward" => "InspectorBrowserDebuggerAgent",
+ "header" => "InspectorBrowserDebuggerAgent.h",
+ "domainAccessor" => "m_inspectorController->m_browserDebuggerAgent",
+};
$typeTransform{"Database"} = {
"forward" => "InspectorDatabaseAgent",
"header" => "InspectorDatabaseAgent.h",
diff --git a/Source/WebCore/inspector/ConsoleMessage.cpp b/Source/WebCore/inspector/ConsoleMessage.cpp
index b22a6ef..8d56a5a 100644
--- a/Source/WebCore/inspector/ConsoleMessage.cpp
+++ b/Source/WebCore/inspector/ConsoleMessage.cpp
@@ -82,6 +82,10 @@ ConsoleMessage::ConsoleMessage(MessageSource s, MessageType t, MessageLevel l, c
{
}
+ConsoleMessage::~ConsoleMessage()
+{
+}
+
void ConsoleMessage::addToFrontend(InspectorFrontend* frontend, InjectedScriptHost* injectedScriptHost)
{
RefPtr<InspectorObject> jsonObj = InspectorObject::create();
diff --git a/Source/WebCore/inspector/ConsoleMessage.h b/Source/WebCore/inspector/ConsoleMessage.h
index 06a17d4..310aa8e 100644
--- a/Source/WebCore/inspector/ConsoleMessage.h
+++ b/Source/WebCore/inspector/ConsoleMessage.h
@@ -51,6 +51,7 @@ public:
ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, unsigned li, const String& u);
ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
ConsoleMessage(MessageSource, MessageType, MessageLevel, const String& m, const String& responseUrl, unsigned long identifier);
+ ~ConsoleMessage();
void addToFrontend(InspectorFrontend*, InjectedScriptHost*);
void updateRepeatCountInConsole(InspectorFrontend* frontend);
diff --git a/Source/WebCore/inspector/InjectedScriptHost.cpp b/Source/WebCore/inspector/InjectedScriptHost.cpp
index a4a0c6f..3fd70e4 100644
--- a/Source/WebCore/inspector/InjectedScriptHost.cpp
+++ b/Source/WebCore/inspector/InjectedScriptHost.cpp
@@ -30,6 +30,7 @@
#include "config.h"
#include "InjectedScriptHost.h"
+#include "InjectedScriptSource.h"
#include "InspectorDatabaseAgent.h"
#include "InspectorDOMStorageAgent.h"
@@ -42,6 +43,7 @@
#include "HTMLFrameOwnerElement.h"
#include "InjectedScript.h"
#include "InspectorClient.h"
+#include "InspectorConsoleAgent.h"
#include "InspectorController.h"
#include "InspectorDOMAgent.h"
#include "InspectorFrontend.h"
@@ -82,7 +84,7 @@ InjectedScriptHost::~InjectedScriptHost()
void InjectedScriptHost::clearConsoleMessages()
{
if (m_inspectorController)
- m_inspectorController->clearConsoleMessages();
+ m_inspectorController->consoleAgent()->clearConsoleMessages();
}
void InjectedScriptHost::copyText(const String& text)
@@ -182,6 +184,11 @@ InspectorFrontend* InjectedScriptHost::frontend()
return m_inspectorController->m_frontend.get();
}
+String InjectedScriptHost::injectedScriptSource()
+{
+ return String(reinterpret_cast<char*>(InjectedScriptSource_js), sizeof(InjectedScriptSource_js));
+}
+
pair<long, ScriptObject> InjectedScriptHost::injectScript(const String& source, ScriptState* scriptState)
{
long id = m_nextInjectedScriptId++;
diff --git a/Source/WebCore/inspector/InjectedScriptHost.h b/Source/WebCore/inspector/InjectedScriptHost.h
index 6b70f62..e9c09aa 100644
--- a/Source/WebCore/inspector/InjectedScriptHost.h
+++ b/Source/WebCore/inspector/InjectedScriptHost.h
@@ -58,9 +58,6 @@ public:
~InjectedScriptHost();
- String injectedScriptSource() { return m_injectedScriptSource; }
- void setInjectedScriptSource(const String& source) { m_injectedScriptSource = source; }
-
InspectorController* inspectorController() { return m_inspectorController; }
void disconnectController() { m_inspectorController = 0; }
@@ -96,11 +93,11 @@ private:
InjectedScriptHost(InspectorController* inspectorController);
InspectorDOMAgent* inspectorDOMAgent();
InspectorFrontend* frontend();
+ String injectedScriptSource();
ScriptObject createInjectedScript(const String& source, ScriptState* scriptState, long id);
void discardInjectedScript(ScriptState*);
InspectorController* m_inspectorController;
- String m_injectedScriptSource;
long m_nextInjectedScriptId;
long m_lastWorkerId;
typedef HashMap<long, InjectedScript> IdToInjectedScriptMap;
diff --git a/Source/WebCore/inspector/front-end/InjectedScript.js b/Source/WebCore/inspector/InjectedScriptSource.js
index fb6b796..90797fb 100644
--- a/Source/WebCore/inspector/front-end/InjectedScript.js
+++ b/Source/WebCore/inspector/InjectedScriptSource.js
@@ -26,7 +26,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-var injectedScriptConstructor = (function (InjectedScriptHost, inspectedWindow, injectedScriptId) {
+(function (InjectedScriptHost, inspectedWindow, injectedScriptId) {
var InjectedScript = function()
{
@@ -713,4 +713,5 @@ CommandLineAPI.prototype = {
injectedScript._commandLineAPI = new CommandLineAPI();
return injectedScript;
-});
+})
+
diff --git a/Source/WebCore/inspector/Inspector.idl b/Source/WebCore/inspector/Inspector.idl
index 7b2d7e2..6c2cc2e 100644
--- a/Source/WebCore/inspector/Inspector.idl
+++ b/Source/WebCore/inspector/Inspector.idl
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2010 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -37,7 +37,6 @@ module core {
///////////////////////////////////////////////////////////////////////
// HUGE FIXME: we need to expose InjectedScript methods here. Or document InjectedScript capabilities.
- [domain=Inspector] void setInjectedScriptSource(in String scriptSource);
[domain=Inspector] void dispatchOnInjectedScript(in long injectedScriptId, in String methodName, in String arguments, out Value result, out boolean isException);
[domain=Inspector] void addScriptToEvaluateOnLoad(in String scriptSource);
[domain=Inspector] void removeAllScriptsToEvaluateOnLoad();
@@ -49,6 +48,7 @@ module core {
[domain=Inspector] void openInInspectedWindow(in String url);
[domain=Inspector] void setSearchingForNode(in boolean enabled, out boolean newState);
+ [notify, domain=Inspector] void frontendReused();
[notify, domain=Inspector] void addNodesToSearchResult(out Array nodeIds);
[notify, domain=Inspector] void bringToFront();
[notify, domain=Inspector] void disconnectFromBackend();
@@ -76,12 +76,12 @@ module core {
// Console API
///////////////////////////////////////////////////////////////////////
- [domain=Inspector] void setConsoleMessagesEnabled(in boolean enabled, out boolean newState);
- [notify, domain=Inspector] void addConsoleMessage(out Object messageObj);
- [notify, domain=Inspector] void updateConsoleMessageExpiredCount(out unsigned long count);
- [notify, domain=Inspector] void updateConsoleMessageRepeatCount(out unsigned long count);
- [domain=Inspector] void clearConsoleMessages();
- [notify, domain=Inspector] void consoleMessagesCleared();
+ [domain=Console] void setConsoleMessagesEnabled(in boolean enabled, out boolean newState);
+ [notify, domain=Console] void addConsoleMessage(out Object messageObj);
+ [notify, domain=Console] void updateConsoleMessageExpiredCount(out unsigned long count);
+ [notify, domain=Console] void updateConsoleMessageRepeatCount(out unsigned long count);
+ [domain=Console] void clearConsoleMessages();
+ [notify, domain=Console] void consoleMessagesCleared();
///////////////////////////////////////////////////////////////////////
// Network API
@@ -186,7 +186,6 @@ module core {
[notify, domain=DOM] void childNodeCountUpdated(out long id, out int newValue);
[notify, domain=DOM] void childNodeInserted(out long parentId, out long prevId, out Object node);
[notify, domain=DOM] void childNodeRemoved(out long parentId, out long id);
- [notify, domain=DOM] void didCommitLoad();
///////////////////////////////////////////////////////////////////////
// CSS API
@@ -222,14 +221,15 @@ module core {
// Debugger API
///////////////////////////////////////////////////////////////////////
- [domain=Inspector] void enableDebuggerFromFrontend(in boolean always);
+ [domain=Inspector] void enableDebugger(in boolean always);
[domain=Inspector] void disableDebugger(in boolean always);
+
+ [domain=Inspector] void setStickyBreakpoints(in Object breakpoints);
+
[notify, domain=Debugger] void debuggerWasEnabled();
[notify, domain=Debugger] void debuggerWasDisabled();
- [notify, domain=Debugger] void attachDebuggerWhenShown(); // FIXME: do something with this eventually.
-
- [notify, domain=Debugger] void parsedScriptSource(out String sourceID, out String url, out String data, out int firstLine, out int scriptWorldType);
+ [notify, domain=Debugger] void parsedScriptSource(out String sourceID, out String url, out int lineOffset, out int columnOffset, out int scriptWorldType);
[notify, domain=Debugger] void failedToParseScriptSource(out String url, out String data, out int firstLine, out int errorLine, out String errorMessage);
[domain=Debugger] void activateBreakpoints();
@@ -238,20 +238,16 @@ module core {
[domain=Debugger] void setBreakpoint(in String sourceID, in unsigned int lineNumber, in String condition, in boolean enabled, out String breakpointId, out unsigned int actualLineNumber);
[domain=Debugger] void removeBreakpoint(in String breakpointId);
- [domain=Inspector] void setStickyBreakpoints(in Object breakpoints); // FIXME: Move to newly introduced BrowserDebugger.
-
- [domain=DOM] void setDOMBreakpoint(in long nodeId, in long type); // FIXME: Move to newly introduced BrowserDebugger.
- [domain=DOM] void removeDOMBreakpoint(in long nodeId, in long type); // FIXME: Move to newly introduced BrowserDebugger.
-
- [domain=Inspector] void setEventListenerBreakpoint(in String eventName); // FIXME: Move to newly introduced BrowserDebugger.
- [domain=Inspector] void removeEventListenerBreakpoint(in String eventName); // FIXME: Move to newly introduced BrowserDebugger.
-
- [domain=Inspector] void setXHRBreakpoint(in String url); // FIXME: Move to newly introduced BrowserDebugger.
- [domain=Inspector] void removeXHRBreakpoint(in String url); // FIXME: Move to newly introduced BrowserDebugger.
+ [domain=BrowserDebugger] void setDOMBreakpoint(in long nodeId, in long type);
+ [domain=BrowserDebugger] void removeDOMBreakpoint(in long nodeId, in long type);
+ [domain=BrowserDebugger] void setEventListenerBreakpoint(in String eventName);
+ [domain=BrowserDebugger] void removeEventListenerBreakpoint(in String eventName);
+ [domain=BrowserDebugger] void setXHRBreakpoint(in String url);
+ [domain=BrowserDebugger] void removeXHRBreakpoint(in String url);
- [domain=Debugger] void stepOverStatement(); // FIXME: rename to stepOver
- [domain=Debugger] void stepIntoStatement(); // FIXME: rename to stepInto
- [domain=Debugger] void stepOutOfFunction(); // FIXME: rename to stepOut
+ [domain=Debugger] void stepOver();
+ [domain=Debugger] void stepInto();
+ [domain=Debugger] void stepOut();
[domain=Debugger] void pause();
[notify, domain=Debugger] void pausedScript(out Object details);
[domain=Debugger] void resume();
diff --git a/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp b/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp
index ced61c5..1cca6fe 100644
--- a/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp
+++ b/Source/WebCore/inspector/InspectorApplicationCacheAgent.cpp
@@ -35,6 +35,7 @@
#include "InspectorController.h"
#include "InspectorFrontend.h"
#include "InspectorValues.h"
+#include "NetworkStateNotifier.h"
#include "Page.h"
#include "ResourceResponse.h"
@@ -46,18 +47,15 @@ InspectorApplicationCacheAgent::InspectorApplicationCacheAgent(InspectorControll
{
}
-void InspectorApplicationCacheAgent::didReceiveManifestResponse(unsigned long identifier, const ResourceResponse& response)
-{
- m_inspectorController->didReceiveResponse(identifier, 0, response);
-}
-
-void InspectorApplicationCacheAgent::updateApplicationCacheStatus(ApplicationCacheHost::Status status)
+void InspectorApplicationCacheAgent::updateApplicationCacheStatus(Frame* frame)
{
+ ApplicationCacheHost::Status status = frame->loader()->documentLoader()->applicationCacheHost()->status();
m_frontend->updateApplicationCacheStatus(status);
}
-void InspectorApplicationCacheAgent::updateNetworkState(bool isNowOnline)
+void InspectorApplicationCacheAgent::networkStateChanged()
{
+ bool isNowOnline = networkStateNotifier().onLine();
m_frontend->updateNetworkState(isNowOnline);
}
diff --git a/Source/WebCore/inspector/InspectorApplicationCacheAgent.h b/Source/WebCore/inspector/InspectorApplicationCacheAgent.h
index 11f10ce..3d9e494 100644
--- a/Source/WebCore/inspector/InspectorApplicationCacheAgent.h
+++ b/Source/WebCore/inspector/InspectorApplicationCacheAgent.h
@@ -33,6 +33,7 @@
namespace WebCore {
+class Frame;
class InspectorArray;
class InspectorController;
class InspectorFrontend;
@@ -46,9 +47,8 @@ public:
~InspectorApplicationCacheAgent() { }
// Backend to Frontend
- void didReceiveManifestResponse(unsigned long identifier, const ResourceResponse&);
- void updateApplicationCacheStatus(ApplicationCacheHost::Status);
- void updateNetworkState(bool isNowOnline);
+ void updateApplicationCacheStatus(Frame*);
+ void networkStateChanged();
// From Frontend
void getApplicationCaches(RefPtr<InspectorValue>* applicationCaches);
diff --git a/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp b/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp
new file mode 100644
index 0000000..a33bacc
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp
@@ -0,0 +1,325 @@
+/*
+ * Copyright (C) 2011 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 "InspectorBrowserDebuggerAgent.h"
+
+#if ENABLE(INSPECTOR) && ENABLE(JAVASCRIPT_DEBUGGER)
+
+#include "HTMLElement.h"
+#include "InspectorController.h"
+#include "InspectorDOMAgent.h"
+#include "InspectorDebuggerAgent.h"
+#include "InspectorState.h"
+#include <wtf/text/CString.h>
+
+namespace {
+
+enum DOMBreakpointType {
+ SubtreeModified = 0,
+ AttributeModified,
+ NodeRemoved,
+ DOMBreakpointTypesCount
+};
+
+static const char* const domNativeBreakpointType = "DOM";
+static const char* const eventListenerNativeBreakpointType = "EventListener";
+static const char* const xhrNativeBreakpointType = "XHR";
+
+const uint32_t inheritableDOMBreakpointTypesMask = (1 << SubtreeModified);
+const int domBreakpointDerivedTypeShift = 16;
+
+}
+
+namespace WebCore {
+
+InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent(InspectorController* inspectorController)
+ : m_inspectorController(inspectorController)
+ , m_hasXHRBreakpointWithEmptyURL(false)
+{
+}
+
+InspectorBrowserDebuggerAgent::~InspectorBrowserDebuggerAgent()
+{
+}
+
+void InspectorBrowserDebuggerAgent::discardBindings()
+{
+ m_breakpoints.clear();
+}
+
+void InspectorBrowserDebuggerAgent::setEventListenerBreakpoint(const String& eventName)
+{
+ m_eventListenerBreakpoints.add(eventName);
+}
+
+void InspectorBrowserDebuggerAgent::removeEventListenerBreakpoint(const String& eventName)
+{
+ m_eventListenerBreakpoints.remove(eventName);
+}
+
+void InspectorBrowserDebuggerAgent::didInsertDOMNode(Node* node)
+{
+ if (m_breakpoints.size()) {
+ uint32_t mask = m_breakpoints.get(InspectorDOMAgent::innerParentNode(node));
+ uint32_t inheritableTypesMask = (mask | (mask >> domBreakpointDerivedTypeShift)) & inheritableDOMBreakpointTypesMask;
+ if (inheritableTypesMask)
+ updateSubtreeBreakpoints(node, inheritableTypesMask, true);
+ }
+}
+
+void InspectorBrowserDebuggerAgent::didRemoveDOMNode(Node* node)
+{
+ if (m_breakpoints.size()) {
+ // Remove subtree breakpoints.
+ m_breakpoints.remove(node);
+ Vector<Node*> stack(1, InspectorDOMAgent::innerFirstChild(node));
+ do {
+ Node* node = stack.last();
+ stack.removeLast();
+ if (!node)
+ continue;
+ m_breakpoints.remove(node);
+ stack.append(InspectorDOMAgent::innerFirstChild(node));
+ stack.append(InspectorDOMAgent::innerNextSibling(node));
+ } while (!stack.isEmpty());
+ }
+}
+
+void InspectorBrowserDebuggerAgent::setDOMBreakpoint(long nodeId, long type)
+{
+ Node* node = m_inspectorController->m_domAgent->nodeForId(nodeId);
+ if (!node)
+ return;
+
+ uint32_t rootBit = 1 << type;
+ m_breakpoints.set(node, m_breakpoints.get(node) | rootBit);
+ if (rootBit & inheritableDOMBreakpointTypesMask) {
+ for (Node* child = InspectorDOMAgent::innerFirstChild(node); child; child = InspectorDOMAgent::innerNextSibling(child))
+ updateSubtreeBreakpoints(child, rootBit, true);
+ }
+}
+
+void InspectorBrowserDebuggerAgent::removeDOMBreakpoint(long nodeId, long type)
+{
+ Node* node = m_inspectorController->m_domAgent->nodeForId(nodeId);
+ if (!node)
+ return;
+
+ uint32_t rootBit = 1 << type;
+ uint32_t mask = m_breakpoints.get(node) & ~rootBit;
+ if (mask)
+ m_breakpoints.set(node, mask);
+ else
+ m_breakpoints.remove(node);
+
+ if ((rootBit & inheritableDOMBreakpointTypesMask) && !(mask & (rootBit << domBreakpointDerivedTypeShift))) {
+ for (Node* child = InspectorDOMAgent::innerFirstChild(node); child; child = InspectorDOMAgent::innerNextSibling(child))
+ updateSubtreeBreakpoints(child, rootBit, false);
+ }
+}
+
+void InspectorBrowserDebuggerAgent::willInsertDOMNode(Node*, Node* parent)
+{
+ InspectorDebuggerAgent* debuggerAgent = m_inspectorController->m_debuggerAgent.get();
+ if (!debuggerAgent)
+ return;
+
+ if (hasBreakpoint(parent, SubtreeModified)) {
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ descriptionForDOMEvent(parent, SubtreeModified, true, eventData.get());
+ eventData->setString("breakpointType", domNativeBreakpointType);
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+ }
+}
+
+void InspectorBrowserDebuggerAgent::willRemoveDOMNode(Node* node)
+{
+ InspectorDebuggerAgent* debuggerAgent = m_inspectorController->m_debuggerAgent.get();
+ if (!debuggerAgent)
+ return;
+
+ if (hasBreakpoint(node, NodeRemoved)) {
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ descriptionForDOMEvent(node, NodeRemoved, false, eventData.get());
+ eventData->setString("breakpointType", domNativeBreakpointType);
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+ } else if (hasBreakpoint(InspectorDOMAgent::innerParentNode(node), SubtreeModified)) {
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ descriptionForDOMEvent(node, SubtreeModified, false, eventData.get());
+ eventData->setString("breakpointType", domNativeBreakpointType);
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+ }
+}
+
+void InspectorBrowserDebuggerAgent::willModifyDOMAttr(Element* element)
+{
+ InspectorDebuggerAgent* debuggerAgent = m_inspectorController->m_debuggerAgent.get();
+ if (!debuggerAgent)
+ return;
+
+ if (hasBreakpoint(element, AttributeModified)) {
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ descriptionForDOMEvent(element, AttributeModified, false, eventData.get());
+ eventData->setString("breakpointType", domNativeBreakpointType);
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+ }
+}
+
+void InspectorBrowserDebuggerAgent::descriptionForDOMEvent(Node* target, long breakpointType, bool insertion, InspectorObject* description)
+{
+ ASSERT(hasBreakpoint(target, breakpointType));
+
+ Node* breakpointOwner = target;
+ if ((1 << breakpointType) & inheritableDOMBreakpointTypesMask) {
+ // For inheritable breakpoint types, target node isn't always the same as the node that owns a breakpoint.
+ // Target node may be unknown to frontend, so we need to push it first.
+ long targetNodeId = m_inspectorController->m_domAgent->pushNodePathToFrontend(target);
+ ASSERT(targetNodeId);
+ description->setNumber("targetNodeId", targetNodeId);
+
+ // Find breakpoint owner node.
+ if (!insertion)
+ breakpointOwner = InspectorDOMAgent::innerParentNode(target);
+ ASSERT(breakpointOwner);
+ while (!(m_breakpoints.get(breakpointOwner) & (1 << breakpointType))) {
+ breakpointOwner = InspectorDOMAgent::innerParentNode(breakpointOwner);
+ ASSERT(breakpointOwner);
+ }
+
+ if (breakpointType == SubtreeModified)
+ description->setBoolean("insertion", insertion);
+ }
+
+ long breakpointOwnerNodeId = m_inspectorController->m_domAgent->pushNodePathToFrontend(breakpointOwner);
+ ASSERT(breakpointOwnerNodeId);
+ description->setNumber("nodeId", breakpointOwnerNodeId);
+ description->setNumber("type", breakpointType);
+}
+
+bool InspectorBrowserDebuggerAgent::hasBreakpoint(Node* node, long type)
+{
+ uint32_t rootBit = 1 << type;
+ uint32_t derivedBit = rootBit << domBreakpointDerivedTypeShift;
+ return m_breakpoints.get(node) & (rootBit | derivedBit);
+}
+
+void InspectorBrowserDebuggerAgent::updateSubtreeBreakpoints(Node* node, uint32_t rootMask, bool set)
+{
+ uint32_t oldMask = m_breakpoints.get(node);
+ uint32_t derivedMask = rootMask << domBreakpointDerivedTypeShift;
+ uint32_t newMask = set ? oldMask | derivedMask : oldMask & ~derivedMask;
+ if (newMask)
+ m_breakpoints.set(node, newMask);
+ else
+ m_breakpoints.remove(node);
+
+ uint32_t newRootMask = rootMask & ~newMask;
+ if (!newRootMask)
+ return;
+
+ for (Node* child = InspectorDOMAgent::innerFirstChild(node); child; child = InspectorDOMAgent::innerNextSibling(child))
+ updateSubtreeBreakpoints(child, newRootMask, set);
+}
+
+void InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded(const String& categoryType, const String& eventName, bool synchronous)
+{
+ InspectorDebuggerAgent* debuggerAgent = m_inspectorController->m_debuggerAgent.get();
+ if (!debuggerAgent)
+ return;
+
+ String fullEventName = String::format("%s:%s", categoryType.utf8().data(), eventName.utf8().data());
+ if (!m_eventListenerBreakpoints.contains(fullEventName))
+ return;
+
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ eventData->setString("breakpointType", eventListenerNativeBreakpointType);
+ eventData->setString("eventName", fullEventName);
+ if (synchronous)
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+ else
+ debuggerAgent->schedulePauseOnNextStatement(NativeBreakpointDebuggerEventType, eventData.release());
+}
+
+void InspectorBrowserDebuggerAgent::setXHRBreakpoint(const String& url)
+{
+ if (url.isEmpty())
+ m_hasXHRBreakpointWithEmptyURL = true;
+ else
+ m_XHRBreakpoints.add(url);
+}
+
+void InspectorBrowserDebuggerAgent::removeXHRBreakpoint(const String& url)
+{
+ if (url.isEmpty())
+ m_hasXHRBreakpointWithEmptyURL = false;
+ else
+ m_XHRBreakpoints.remove(url);
+}
+
+void InspectorBrowserDebuggerAgent::willSendXMLHttpRequest(const String& url)
+{
+ InspectorDebuggerAgent* debuggerAgent = m_inspectorController->m_debuggerAgent.get();
+ if (!debuggerAgent)
+ return;
+
+ String breakpointURL;
+ if (m_hasXHRBreakpointWithEmptyURL)
+ breakpointURL = "";
+ else {
+ for (HashSet<String>::iterator it = m_XHRBreakpoints.begin(); it != m_XHRBreakpoints.end(); ++it) {
+ if (url.contains(*it)) {
+ breakpointURL = *it;
+ break;
+ }
+ }
+ }
+
+ if (breakpointURL.isNull())
+ return;
+
+ RefPtr<InspectorObject> eventData = InspectorObject::create();
+ eventData->setString("breakpointType", xhrNativeBreakpointType);
+ eventData->setString("breakpointURL", breakpointURL);
+ eventData->setString("url", url);
+ debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData.release());
+}
+
+void InspectorBrowserDebuggerAgent::clearForPageNavigation()
+{
+ m_eventListenerBreakpoints.clear();
+ m_XHRBreakpoints.clear();
+ m_hasXHRBreakpointWithEmptyURL = false;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR) && ENABLE(JAVASCRIPT_DEBUGGER)
diff --git a/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h b/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h
new file mode 100644
index 0000000..537bda1
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2011 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 InspectorBrowserDebuggerAgent_h
+#define InspectorBrowserDebuggerAgent_h
+
+#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
+
+#include "PlatformString.h"
+
+#include <wtf/HashMap.h>
+#include <wtf/HashSet.h>
+#include <wtf/PassOwnPtr.h>
+#include <wtf/RefCounted.h>
+#include <wtf/text/StringHash.h>
+
+namespace WebCore {
+
+class Element;
+class InspectorController;
+class InspectorObject;
+class Node;
+
+class InspectorBrowserDebuggerAgent : public Noncopyable {
+public:
+ static PassOwnPtr<InspectorBrowserDebuggerAgent> create(InspectorController* inspectorController)
+ {
+ return adoptPtr(new InspectorBrowserDebuggerAgent(inspectorController));
+ }
+
+ virtual ~InspectorBrowserDebuggerAgent();
+
+ // BrowserDebugger API for InspectorFrontend
+ void setXHRBreakpoint(const String& url);
+ void removeXHRBreakpoint(const String& url);
+ void setEventListenerBreakpoint(const String& eventName);
+ void removeEventListenerBreakpoint(const String& eventName);
+ void setDOMBreakpoint(long nodeId, long type);
+ void removeDOMBreakpoint(long nodeId, long type);
+
+ // InspectorInstrumentation API
+ void willInsertDOMNode(Node*, Node* parent);
+ void didInsertDOMNode(Node*);
+ void willRemoveDOMNode(Node*);
+ void didRemoveDOMNode(Node*);
+ void willModifyDOMAttr(Element*);
+ void willSendXMLHttpRequest(const String& url);
+ void pauseOnNativeEventIfNeeded(const String& categoryType, const String& eventName, bool synchronous);
+
+ void clearForPageNavigation();
+private:
+ InspectorBrowserDebuggerAgent(InspectorController*);
+
+ void descriptionForDOMEvent(Node* target, long breakpointType, bool insertion, InspectorObject* description);
+ void updateSubtreeBreakpoints(Node*, uint32_t rootMask, bool set);
+ bool hasBreakpoint(Node*, long type);
+ void discardBindings();
+
+ InspectorController* m_inspectorController;
+ HashMap<Node*, uint32_t> m_breakpoints;
+ HashSet<String> m_eventListenerBreakpoints;
+ HashSet<String> m_XHRBreakpoints;
+ bool m_hasXHRBreakpointWithEmptyURL;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
+
+#endif // !defined(InspectorBrowserDebuggerAgent_h)
diff --git a/Source/WebCore/inspector/InspectorClient.h b/Source/WebCore/inspector/InspectorClient.h
index 0c78246..3b8007e 100644
--- a/Source/WebCore/inspector/InspectorClient.h
+++ b/Source/WebCore/inspector/InspectorClient.h
@@ -26,7 +26,6 @@
#ifndef InspectorClient_h
#define InspectorClient_h
-#include "InspectorController.h"
#include <wtf/Forward.h>
namespace WebCore {
diff --git a/Source/WebCore/inspector/InspectorConsoleAgent.cpp b/Source/WebCore/inspector/InspectorConsoleAgent.cpp
new file mode 100644
index 0000000..a543cb2
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorConsoleAgent.cpp
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2011 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. 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 "InspectorConsoleAgent.h"
+
+#if ENABLE(INSPECTOR)
+#include "Console.h"
+#include "ConsoleMessage.h"
+#include "InjectedScriptHost.h"
+#include "InspectorController.h"
+#include "InspectorDOMAgent.h"
+#include "InspectorFrontend.h"
+#include "InspectorState.h"
+#include "ResourceError.h"
+#include "ResourceResponse.h"
+#include "ScriptArguments.h"
+#include "ScriptCallFrame.h"
+#include "ScriptCallStack.h"
+#include <wtf/CurrentTime.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+#include <wtf/text/StringConcatenate.h>
+
+namespace WebCore {
+
+static const unsigned maximumConsoleMessages = 1000;
+static const unsigned expireConsoleMessagesStep = 100;
+
+InspectorConsoleAgent::InspectorConsoleAgent(InspectorController* inspectorController, InspectorState* state)
+ : m_inspectorController(inspectorController)
+ , m_state(state)
+ , m_frontend(0)
+ , m_previousMessage(0)
+ , m_expiredConsoleMessageCount(0)
+{
+}
+
+InspectorConsoleAgent::~InspectorConsoleAgent()
+{
+ m_inspectorController = 0;
+}
+
+void InspectorConsoleAgent::setConsoleMessagesEnabled(bool enabled, bool* newState)
+{
+ *newState = enabled;
+ setConsoleMessagesEnabled(enabled);
+}
+
+void InspectorConsoleAgent::clearConsoleMessages()
+{
+ m_consoleMessages.clear();
+ m_expiredConsoleMessageCount = 0;
+ m_previousMessage = 0;
+ m_inspectorController->injectedScriptHost()->releaseWrapperObjectGroup(0 /* release the group in all scripts */, "console");
+ if (InspectorDOMAgent* domAgent = m_inspectorController->domAgent())
+ domAgent->releaseDanglingNodes();
+ if (m_frontend)
+ m_frontend->consoleMessagesCleared();
+}
+
+void InspectorConsoleAgent::reset()
+{
+ clearConsoleMessages();
+ m_times.clear();
+ m_counts.clear();
+}
+
+void InspectorConsoleAgent::setFrontend(InspectorFrontend* frontend)
+{
+ m_frontend = frontend;
+}
+
+void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
+{
+ if (!m_inspectorController->enabled())
+ return;
+ addConsoleMessage(new ConsoleMessage(source, type, level, message, arguments, callStack));
+}
+
+void InspectorConsoleAgent::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID)
+{
+ if (!m_inspectorController->enabled())
+ return;
+ addConsoleMessage(new ConsoleMessage(source, type, level, message, lineNumber, sourceID));
+}
+
+void InspectorConsoleAgent::startTiming(const String& title)
+{
+ // Follow Firebug's behavior of requiring a title that is not null or
+ // undefined for timing functions
+ if (title.isNull())
+ return;
+
+ m_times.add(title, currentTime() * 1000);
+}
+
+void InspectorConsoleAgent::stopTiming(const String& title, PassRefPtr<ScriptCallStack> callStack)
+{
+ // Follow Firebug's behavior of requiring a title that is not null or
+ // undefined for timing functions
+ if (title.isNull())
+ return;
+
+ HashMap<String, double>::iterator it = m_times.find(title);
+ if (it == m_times.end())
+ return;
+
+ double startTime = it->second;
+ m_times.remove(it);
+
+ double elapsed = currentTime() * 1000 - startTime;
+ String message = title + String::format(": %.0fms", elapsed);
+ const ScriptCallFrame& lastCaller = callStack->at(0);
+ addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lastCaller.lineNumber(), lastCaller.sourceURL());
+}
+
+void InspectorConsoleAgent::count(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
+{
+ const ScriptCallFrame& lastCaller = callStack->at(0);
+ // Follow Firebug's behavior of counting with null and undefined title in
+ // the same bucket as no argument
+ String title;
+ arguments->getFirstArgumentAsString(title);
+ String identifier = makeString(title, '@', lastCaller.sourceURL(), ':', String::number(lastCaller.lineNumber()));
+
+ HashMap<String, unsigned>::iterator it = m_counts.find(identifier);
+ int count;
+ if (it == m_counts.end())
+ count = 1;
+ else {
+ count = it->second + 1;
+ m_counts.remove(it);
+ }
+
+ m_counts.add(identifier, count);
+
+ String message = makeString(title, ": ", String::number(count));
+ addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lastCaller.lineNumber(), lastCaller.sourceURL());
+}
+
+void InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest(const String& url, const String& sendURL, unsigned sendLineNumber)
+{
+ if (!m_inspectorController->enabled())
+ return;
+ if (m_state->getBoolean(InspectorState::monitoringXHR))
+ addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, "XHR finished loading: \"" + url + "\".", sendLineNumber, sendURL);
+}
+
+void InspectorConsoleAgent::didReceiveResponse(unsigned long identifier, const ResourceResponse& response)
+{
+ if (!m_inspectorController->enabled())
+ return;
+
+ if (response.httpStatusCode() >= 400) {
+ String message = makeString("Failed to load resource: the server responded with a status of ", String::number(response.httpStatusCode()), " (", response.httpStatusText(), ')');
+ addConsoleMessage(new ConsoleMessage(OtherMessageSource, NetworkErrorMessageType, ErrorMessageLevel, message, response.url().string(), identifier));
+ }
+}
+
+void InspectorConsoleAgent::didFailLoading(unsigned long identifier, const ResourceError& error)
+{
+ if (!m_inspectorController->enabled())
+ return;
+
+ String message = "Failed to load resource";
+ if (!error.localizedDescription().isEmpty())
+ message += ": " + error.localizedDescription();
+ addConsoleMessage(new ConsoleMessage(OtherMessageSource, NetworkErrorMessageType, ErrorMessageLevel, message, error.failingURL(), identifier));
+}
+
+void InspectorConsoleAgent::setConsoleMessagesEnabled(bool enabled)
+{
+ m_state->setBoolean(InspectorState::consoleMessagesEnabled, enabled);
+ if (!m_inspectorController->enabled())
+ return;
+ if (m_expiredConsoleMessageCount)
+ m_frontend->updateConsoleMessageExpiredCount(m_expiredConsoleMessageCount);
+ unsigned messageCount = m_consoleMessages.size();
+ for (unsigned i = 0; i < messageCount; ++i)
+ m_consoleMessages[i]->addToFrontend(m_frontend, m_inspectorController->injectedScriptHost());
+}
+
+void InspectorConsoleAgent::addConsoleMessage(PassOwnPtr<ConsoleMessage> consoleMessage)
+{
+ ASSERT(m_inspectorController->enabled());
+ ASSERT_ARG(consoleMessage, consoleMessage);
+
+ if (m_previousMessage && m_previousMessage->isEqual(consoleMessage.get())) {
+ m_previousMessage->incrementCount();
+ if (m_state->getBoolean(InspectorState::consoleMessagesEnabled) && m_frontend)
+ m_previousMessage->updateRepeatCountInConsole(m_frontend);
+ } else {
+ m_previousMessage = consoleMessage.get();
+ m_consoleMessages.append(consoleMessage);
+ if (m_state->getBoolean(InspectorState::consoleMessagesEnabled) && m_frontend)
+ m_previousMessage->addToFrontend(m_frontend, m_inspectorController->injectedScriptHost());
+ }
+
+ if (!m_frontend && m_consoleMessages.size() >= maximumConsoleMessages) {
+ m_expiredConsoleMessageCount += expireConsoleMessagesStep;
+ m_consoleMessages.remove(0, expireConsoleMessagesStep);
+ }
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
diff --git a/Source/WebCore/inspector/InspectorConsoleAgent.h b/Source/WebCore/inspector/InspectorConsoleAgent.h
new file mode 100644
index 0000000..97fcb3f
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorConsoleAgent.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2011 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. 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 InspectorConsoleAgent_h
+#define InspectorConsoleAgent_h
+
+#include "Console.h"
+#include <wtf/Forward.h>
+#include <wtf/HashMap.h>
+#include <wtf/Noncopyable.h>
+#include <wtf/text/StringHash.h>
+#include <wtf/Vector.h>
+
+namespace WebCore {
+
+#if ENABLE(INSPECTOR)
+
+class ConsoleMessage;
+class InspectorController;
+class InspectorFrontend;
+class InspectorState;
+class ResourceError;
+class ResourceResponse;
+class ScriptArguments;
+class ScriptCallStack;
+class ScriptProfile;
+
+class InspectorConsoleAgent : public Noncopyable {
+public:
+ InspectorConsoleAgent(InspectorController*, InspectorState*);
+ ~InspectorConsoleAgent();
+
+ void setConsoleMessagesEnabled(bool enabled, bool* newState);
+ void clearConsoleMessages();
+ void reset();
+ void setFrontend(InspectorFrontend*);
+
+ void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
+ void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceID);
+
+ void startTiming(const String& title);
+ void stopTiming(const String& title, PassRefPtr<ScriptCallStack>);
+ void count(PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
+
+ void resourceRetrievedByXMLHttpRequest(const String& url, const String& sendURL, unsigned sendLineNumber);
+ void didReceiveResponse(unsigned long identifier, const ResourceResponse&);
+ void didFailLoading(unsigned long identifier, const ResourceError&);
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ void addProfileFinishedMessageToConsole(PassRefPtr<ScriptProfile>, unsigned lineNumber, const String& sourceURL);
+ void addStartProfilingMessageToConsole(const String& title, unsigned lineNumber, const String& sourceURL);
+#endif
+
+private:
+ void setConsoleMessagesEnabled(bool);
+ void addConsoleMessage(PassOwnPtr<ConsoleMessage>);
+
+ InspectorController* m_inspectorController;
+ InspectorState* m_state;
+ InspectorFrontend* m_frontend;
+ ConsoleMessage* m_previousMessage;
+ Vector<OwnPtr<ConsoleMessage> > m_consoleMessages;
+ unsigned m_expiredConsoleMessageCount;
+ HashMap<String, unsigned> m_counts;
+ HashMap<String, double> m_times;
+};
+
+#endif
+
+} // namespace WebCore
+
+#endif // !defined(InspectorConsoleAgent_h)
diff --git a/Source/WebCore/inspector/InspectorController.cpp b/Source/WebCore/inspector/InspectorController.cpp
index 7248dc9..5a139b6 100644
--- a/Source/WebCore/inspector/InspectorController.cpp
+++ b/Source/WebCore/inspector/InspectorController.cpp
@@ -35,11 +35,10 @@
#include "CachedResource.h"
#include "CachedResourceLoader.h"
#include "Chrome.h"
-#include "Console.h"
-#include "ConsoleMessage.h"
#include "Cookie.h"
#include "CookieJar.h"
#include "DOMWindow.h"
+#include "DOMWrapperWorld.h"
#include "Document.h"
#include "DocumentLoader.h"
#include "Element.h"
@@ -58,8 +57,10 @@
#include "InjectedScript.h"
#include "InjectedScriptHost.h"
#include "InspectorBackendDispatcher.h"
+#include "InspectorBrowserDebuggerAgent.h"
#include "InspectorCSSAgent.h"
#include "InspectorClient.h"
+#include "InspectorConsoleAgent.h"
#include "InspectorDOMAgent.h"
#include "InspectorDOMStorageResource.h"
#include "InspectorDatabaseResource.h"
@@ -69,6 +70,7 @@
#include "InspectorInstrumentation.h"
#include "InspectorProfilerAgent.h"
#include "InspectorResourceAgent.h"
+#include "InspectorSettings.h"
#include "InspectorState.h"
#include "InspectorTimelineAgent.h"
#include "InspectorValues.h"
@@ -130,29 +132,20 @@ const char* const InspectorController::ConsolePanel = "console";
const char* const InspectorController::ScriptsPanel = "scripts";
const char* const InspectorController::ProfilesPanel = "profiles";
-const unsigned InspectorController::defaultAttachedHeight = 300;
-
-static const unsigned maximumConsoleMessages = 1000;
-static const unsigned expireConsoleMessagesStep = 100;
-
InspectorController::InspectorController(Page* page, InspectorClient* client)
: m_inspectedPage(page)
, m_client(client)
, m_openingFrontend(false)
, m_cssAgent(new InspectorCSSAgent())
- , m_mainResourceIdentifier(0)
- , m_expiredConsoleMessageCount(0)
- , m_previousMessage(0)
- , m_settingsLoaded(false)
+ , m_state(new InspectorState(client))
, m_inspectorBackendDispatcher(new InspectorBackendDispatcher(this))
, m_injectedScriptHost(InjectedScriptHost::create(this))
+ , m_consoleAgent(new InspectorConsoleAgent(this, m_state.get()))
#if ENABLE(JAVASCRIPT_DEBUGGER)
, m_attachDebuggerWhenShown(false)
- , m_hasXHRBreakpointWithEmptyURL(false)
, m_profilerAgent(InspectorProfilerAgent::create(this))
#endif
{
- m_state = new InspectorState(client);
ASSERT_ARG(page, page);
ASSERT_ARG(client, client);
}
@@ -178,7 +171,9 @@ void InspectorController::inspectedPageDestroyed()
#if ENABLE(JAVASCRIPT_DEBUGGER)
m_debuggerAgent.clear();
+ m_browserDebuggerAgent.clear();
#endif
+
ASSERT(m_inspectedPage);
m_inspectedPage = 0;
@@ -195,22 +190,22 @@ bool InspectorController::enabled() const
bool InspectorController::inspectorStartsAttached()
{
- return m_state->getBoolean(InspectorState::inspectorStartsAttached);
+ return m_settings->getBoolean(InspectorSettings::InspectorStartsAttached);
}
void InspectorController::setInspectorStartsAttached(bool attached)
{
- m_state->setBoolean(InspectorState::inspectorStartsAttached, attached);
+ m_settings->setBoolean(InspectorSettings::InspectorStartsAttached, attached);
}
void InspectorController::setInspectorAttachedHeight(long height)
{
- m_state->setLong(InspectorState::inspectorAttachedHeight, height);
+ m_settings->setLong(InspectorSettings::InspectorAttachedHeight, height);
}
-int InspectorController::inspectorAttachedHeight() const
+long InspectorController::inspectorAttachedHeight() const
{
- return m_state->getBoolean(InspectorState::inspectorAttachedHeight);
+ return m_settings->getLong(InspectorSettings::InspectorAttachedHeight);
}
bool InspectorController::searchingForNodeInPage() const
@@ -230,12 +225,24 @@ void InspectorController::getInspectorState(RefPtr<InspectorObject>* state)
void InspectorController::restoreInspectorStateFromCookie(const String& inspectorStateCookie)
{
m_state->restoreFromInspectorCookie(inspectorStateCookie);
+
+ if (!m_frontend) {
+ connectFrontend();
+ m_frontend->frontendReused();
+ m_frontend->inspectedURLChanged(m_inspectedPage->mainFrame()->loader()->url().string());
+ m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
+ pushDataCollectedOffline();
+ }
+
if (m_state->getBoolean(InspectorState::timelineProfilerEnabled))
startTimelineProfiler();
+
#if ENABLE(JAVASCRIPT_DEBUGGER)
+ restoreDebugger();
+ restoreProfiler(ProfilerRestoreResetAgent);
if (m_state->getBoolean(InspectorState::userInitiatedProfiling))
startUserInitiatedProfiling();
-#endif
+#endif
}
void InspectorController::inspect(Node* node)
@@ -303,91 +310,6 @@ void InspectorController::hideHighlight()
m_client->hideHighlight();
}
-void InspectorController::setConsoleMessagesEnabled(bool enabled, bool* newState)
-{
- *newState = enabled;
- setConsoleMessagesEnabled(enabled);
-}
-
-void InspectorController::setConsoleMessagesEnabled(bool enabled)
-{
- m_state->setBoolean(InspectorState::consoleMessagesEnabled, enabled);
- if (!enabled)
- return;
-
- if (m_expiredConsoleMessageCount)
- m_frontend->updateConsoleMessageExpiredCount(m_expiredConsoleMessageCount);
- unsigned messageCount = m_consoleMessages.size();
- for (unsigned i = 0; i < messageCount; ++i)
- m_consoleMessages[i]->addToFrontend(m_frontend.get(), m_injectedScriptHost.get());
-}
-
-void InspectorController::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
-{
- if (!enabled())
- return;
-
- addConsoleMessage(new ConsoleMessage(source, type, level, message, arguments, callStack));
-}
-
-void InspectorController::addMessageToConsole(MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID)
-{
- if (!enabled())
- return;
-
- addConsoleMessage(new ConsoleMessage(source, type, level, message, lineNumber, sourceID));
-}
-
-void InspectorController::addConsoleMessage(PassOwnPtr<ConsoleMessage> consoleMessage)
-{
- ASSERT(enabled());
- ASSERT_ARG(consoleMessage, consoleMessage);
-
- if (m_previousMessage && m_previousMessage->isEqual(consoleMessage.get())) {
- m_previousMessage->incrementCount();
- if (m_state->getBoolean(InspectorState::consoleMessagesEnabled) && m_frontend)
- m_previousMessage->updateRepeatCountInConsole(m_frontend.get());
- } else {
- m_previousMessage = consoleMessage.get();
- m_consoleMessages.append(consoleMessage);
- if (m_state->getBoolean(InspectorState::consoleMessagesEnabled) && m_frontend)
- m_previousMessage->addToFrontend(m_frontend.get(), m_injectedScriptHost.get());
- }
-
- if (!m_frontend && m_consoleMessages.size() >= maximumConsoleMessages) {
- m_expiredConsoleMessageCount += expireConsoleMessagesStep;
- m_consoleMessages.remove(0, expireConsoleMessagesStep);
- }
-}
-
-void InspectorController::clearConsoleMessages()
-{
- m_consoleMessages.clear();
- m_expiredConsoleMessageCount = 0;
- m_previousMessage = 0;
- m_injectedScriptHost->releaseWrapperObjectGroup(0 /* release the group in all scripts */, "console");
- if (m_domAgent)
- m_domAgent->releaseDanglingNodes();
- if (m_frontend)
- m_frontend->consoleMessagesCleared();
-}
-
-void InspectorController::startGroup(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack, bool collapsed)
-{
- addConsoleMessage(new ConsoleMessage(JSMessageSource, collapsed ? StartGroupCollapsedMessageType : StartGroupMessageType, LogMessageLevel, "", arguments, callStack));
-}
-
-void InspectorController::endGroup(MessageSource source, unsigned lineNumber, const String& sourceURL)
-{
- addConsoleMessage(new ConsoleMessage(source, EndGroupMessageType, LogMessageLevel, String(), lineNumber, sourceURL));
-}
-
-void InspectorController::markTimeline(const String& message)
-{
- if (timelineAgent())
- timelineAgent()->didMarkTimeline(message);
-}
-
void InspectorController::mouseDidMoveOverElement(const HitTestResult& result, unsigned)
{
if (!enabled() || !searchingForNodeInPage())
@@ -400,18 +322,17 @@ void InspectorController::mouseDidMoveOverElement(const HitTestResult& result, u
highlight(node);
}
-void InspectorController::handleMousePress()
+bool InspectorController::handleMousePress()
{
- if (!enabled())
- return;
-
- ASSERT(searchingForNodeInPage());
- if (!m_highlightedNode)
- return;
+ if (!enabled() || !searchingForNodeInPage())
+ return false;
- RefPtr<Node> node = m_highlightedNode;
- setSearchingForNode(false);
- inspect(node.get());
+ if (m_highlightedNode) {
+ RefPtr<Node> node = m_highlightedNode;
+ setSearchingForNode(false);
+ inspect(node.get());
+ }
+ return true;
}
void InspectorController::setInspectorFrontendClient(PassOwnPtr<InspectorFrontendClient> client)
@@ -420,8 +341,11 @@ void InspectorController::setInspectorFrontendClient(PassOwnPtr<InspectorFronten
m_inspectorFrontendClient = client;
}
-void InspectorController::inspectedWindowScriptObjectCleared(Frame* frame)
+void InspectorController::didClearWindowObjectInWorld(Frame* frame, DOMWrapperWorld* world)
{
+ if (world != mainThreadNormalWorld())
+ return;
+
// If the page is supposed to serve as InspectorFrontend notify inspetor frontend
// client that it's cleared so that the client can expose inspector bindings.
if (m_inspectorFrontendClient && frame == m_inspectedPage->mainFrame())
@@ -461,6 +385,7 @@ void InspectorController::setMonitoringXHREnabled(bool enabled, bool* newState)
{
*newState = enabled;
m_state->setBoolean(InspectorState::monitoringXHR, enabled);
+ m_settings->setBoolean(InspectorSettings::MonitoringXHREnabled, enabled);
}
void InspectorController::connectFrontend()
@@ -484,6 +409,8 @@ void InspectorController::connectFrontend()
if (m_timelineAgent)
m_timelineAgent->resetFrontendProxyObject(m_frontend.get());
+ m_consoleAgent->setFrontend(m_frontend.get());
+
// Initialize Web Inspector title.
m_frontend->inspectedURLChanged(m_inspectedPage->mainFrame()->loader()->url().string());
@@ -500,13 +427,6 @@ void InspectorController::connectFrontend()
InspectorInstrumentation::frontendCreated();
}
-void InspectorController::reuseFrontend()
-{
- connectFrontend();
- restoreDebugger();
- restoreProfiler(ProfilerRestoreResetAgent);
-}
-
void InspectorController::show()
{
if (!enabled())
@@ -574,6 +494,7 @@ void InspectorController::disconnectFrontend()
m_profilerAgent->setFrontend(0);
m_profilerAgent->stopUserInitiatedProfiling(true);
#endif
+ m_consoleAgent->setFrontend(0);
releaseFrontendLifetimeAgents();
m_timelineAgent.clear();
@@ -630,11 +551,24 @@ void InspectorController::populateScriptObjects()
m_frontend->profilerWasEnabled();
#endif
- m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
+ pushDataCollectedOffline();
if (m_nodeToFocus)
focusNode();
+ // 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_pendingEvaluateTestCommands.clear();
+
+ restoreDebugger();
+ restoreProfiler(ProfilerRestoreNoAction);
+}
+
+void InspectorController::pushDataCollectedOffline()
+{
+ m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
+
#if ENABLE(DATABASE)
DatabaseResourcesMap::iterator databasesEnd = m_databaseResources.end();
for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != databasesEnd; ++it)
@@ -652,25 +586,15 @@ void InspectorController::populateScriptObjects()
m_frontend->didCreateWorker(worker->id(), worker->url(), worker->isSharedWorker());
}
#endif
-
- // 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_pendingEvaluateTestCommands.clear();
-
- restoreDebugger();
- restoreProfiler(ProfilerRestoreNoAction);
}
void InspectorController::restoreDebugger()
{
ASSERT(m_frontend);
#if ENABLE(JAVASCRIPT_DEBUGGER)
- if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled())
- enableDebuggerFromFrontend(false);
- else {
- if (m_state->getBoolean(InspectorState::debuggerAlwaysEnabled) || m_attachDebuggerWhenShown)
- enableDebugger();
+ if (InspectorDebuggerAgent::isDebuggerAlwaysEnabled() || m_attachDebuggerWhenShown || m_settings->getBoolean(InspectorSettings::DebuggerAlwaysEnabled)) {
+ enableDebugger(false);
+ m_attachDebuggerWhenShown = false;
}
#endif
}
@@ -680,7 +604,7 @@ void InspectorController::restoreProfiler(ProfilerRestoreAction action)
ASSERT(m_frontend);
#if ENABLE(JAVASCRIPT_DEBUGGER)
m_profilerAgent->setFrontend(m_frontend.get());
- if (!ScriptProfiler::isProfilerAlwaysEnabled() && m_state->getBoolean(InspectorState::profilerAlwaysEnabled))
+ if (!ScriptProfiler::isProfilerAlwaysEnabled() && m_settings->getBoolean(InspectorSettings::ProfilerAlwaysEnabled))
enableProfiler();
if (action == ProfilerRestoreResetAgent)
m_profilerAgent->resetState();
@@ -718,14 +642,13 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
m_frontend->inspectedURLChanged(loader->url().string());
m_injectedScriptHost->discardInjectedScripts();
- clearConsoleMessages();
-
- m_times.clear();
- m_counts.clear();
+ m_consoleAgent->reset();
#if ENABLE(JAVASCRIPT_DEBUGGER)
if (m_debuggerAgent) {
m_debuggerAgent->clearForPageNavigation();
+ if (m_browserDebuggerAgent)
+ m_browserDebuggerAgent->clearForPageNavigation();
restoreStickyBreakpoints();
}
#endif
@@ -754,50 +677,11 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
m_domStorageResources.clear();
#endif
- if (m_frontend) {
- m_mainResourceIdentifier = 0;
- m_frontend->didCommitLoad();
+ if (m_frontend)
m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
- }
}
}
-void InspectorController::frameDetachedFromParent(Frame* rootFrame)
-{
- if (!enabled())
- return;
-
- if (m_resourceAgent)
- m_resourceAgent->frameDetachedFromParent(rootFrame);
-}
-
-void InspectorController::didLoadResourceFromMemoryCache(DocumentLoader* loader, const CachedResource* cachedResource)
-{
- if (!enabled())
- return;
-
- ensureSettingsLoaded();
-
- if (m_resourceAgent)
- m_resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
-}
-
-void InspectorController::identifierForInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
-{
- if (!enabled())
- return;
- ASSERT(m_inspectedPage);
-
- bool isMainResource = isMainResourceLoader(loader, request.url());
- if (isMainResource)
- m_mainResourceIdentifier = identifier;
-
- ensureSettingsLoaded();
-
- if (m_resourceAgent)
- m_resourceAgent->identifierForInitialRequest(identifier, request.url(), loader);
-}
-
void InspectorController::mainResourceFiredDOMContentEvent(DocumentLoader* loader, const KURL& url)
{
if (!enabled() || !isMainResourceLoader(loader, url))
@@ -825,16 +709,14 @@ bool InspectorController::isMainResourceLoader(DocumentLoader* loader, const KUR
return loader->frame() == m_inspectedPage->mainFrame() && requestUrl == loader->requestURL();
}
-void InspectorController::willSendRequest(unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
+void InspectorController::willSendRequest(ResourceRequest& request)
{
if (!enabled())
return;
- request.setReportLoadTiming(true);
-
if (m_frontend) {
- // Only enable raw headers if front-end is attached, as otherwise we may lack
- // permissions to fetch the headers.
+ // Only enable load timing and raw headers if front-end is attached, as otherwise we may produce overhead.
+ request.setReportLoadTiming(true);
request.setReportRawHeaders(true);
if (m_extraHeaders) {
@@ -843,104 +725,14 @@ void InspectorController::willSendRequest(unsigned long identifier, ResourceRequ
request.setHTTPHeaderField(it->first, it->second);
}
}
-
- bool isMainResource = m_mainResourceIdentifier == identifier;
- if (m_timelineAgent)
- m_timelineAgent->willSendResourceRequest(identifier, isMainResource, request);
-
- if (m_resourceAgent)
- m_resourceAgent->willSendRequest(identifier, request, redirectResponse);
-}
-
-void InspectorController::markResourceAsCached(unsigned long identifier)
-{
- if (!enabled())
- return;
-
- if (m_resourceAgent)
- m_resourceAgent->markResourceAsCached(identifier);
-}
-
-void InspectorController::didReceiveResponse(unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response)
-{
- if (!enabled())
- return;
-
- if (m_resourceAgent)
- m_resourceAgent->didReceiveResponse(identifier, loader, response);
-
- if (response.httpStatusCode() >= 400) {
- String message = makeString("Failed to load resource: the server responded with a status of ", String::number(response.httpStatusCode()), " (", response.httpStatusText(), ')');
- addConsoleMessage(new ConsoleMessage(OtherMessageSource, NetworkErrorMessageType, ErrorMessageLevel, message, response.url().string(), identifier));
- }
-}
-
-void InspectorController::didReceiveContentLength(unsigned long identifier, int lengthReceived)
-{
- if (!enabled())
- return;
-
- if (m_resourceAgent)
- m_resourceAgent->didReceiveContentLength(identifier, lengthReceived);
-}
-
-void InspectorController::didFinishLoading(unsigned long identifier, double finishTime)
-{
- if (!enabled())
- return;
-
- if (m_timelineAgent)
- m_timelineAgent->didFinishLoadingResource(identifier, false, finishTime);
-
- if (m_resourceAgent)
- m_resourceAgent->didFinishLoading(identifier, finishTime);
-}
-
-void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& error)
-{
- if (!enabled())
- return;
-
- if (m_timelineAgent)
- m_timelineAgent->didFinishLoadingResource(identifier, true, 0);
-
- String message = "Failed to load resource";
- if (!error.localizedDescription().isEmpty())
- message += ": " + error.localizedDescription();
- addConsoleMessage(new ConsoleMessage(OtherMessageSource, NetworkErrorMessageType, ErrorMessageLevel, message, error.failingURL(), identifier));
-
- if (m_resourceAgent)
- m_resourceAgent->didFailLoading(identifier, error);
-}
-
-void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber)
-{
- if (!enabled())
- return;
-
- if (m_state->getBoolean(InspectorState::monitoringXHR))
- addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, "XHR finished loading: \"" + url + "\".", sendLineNumber, sendURL);
-
- if (m_resourceAgent)
- m_resourceAgent->setInitialContent(identifier, sourceString, "XHR");
-}
-
-void InspectorController::scriptImported(unsigned long identifier, const String& sourceString)
-{
- if (!enabled())
- return;
-
- if (m_resourceAgent)
- m_resourceAgent->setInitialContent(identifier, sourceString, "Script");
}
void InspectorController::ensureSettingsLoaded()
{
- if (m_settingsLoaded)
+ if (m_settings)
return;
- m_settingsLoaded = true;
-
- m_state->loadFromSettings();
+ m_settings = new InspectorSettings(m_client);
+ m_state->setBoolean(InspectorState::monitoringXHR, m_settings->getBoolean(InspectorSettings::MonitoringXHREnabled));
}
void InspectorController::startTimelineProfiler()
@@ -990,8 +782,10 @@ private:
virtual void performTask(ScriptExecutionContext* scriptContext)
{
- if (InspectorController* inspector = scriptContext->inspectorController())
- inspector->postWorkerNotificationToFrontend(*m_worker, m_action);
+ if (scriptContext->isDocument()) {
+ if (InspectorController* inspector = static_cast<Document*>(scriptContext)->page()->inspectorController())
+ inspector->postWorkerNotificationToFrontend(*m_worker, m_action);
+ }
}
private:
@@ -1201,17 +995,6 @@ void InspectorController::addProfile(PassRefPtr<ScriptProfile> prpProfile, unsig
m_profilerAgent->addProfile(prpProfile, lineNumber, sourceURL);
}
-void InspectorController::addProfileFinishedMessageToConsole(PassRefPtr<ScriptProfile> prpProfile, unsigned lineNumber, const String& sourceURL)
-{
- m_profilerAgent->addProfileFinishedMessageToConsole(prpProfile, lineNumber, sourceURL);
-}
-
-void InspectorController::addStartProfilingMessageToConsole(const String& title, unsigned lineNumber, const String& sourceURL)
-{
- m_profilerAgent->addStartProfilingMessageToConsole(title, lineNumber, sourceURL);
-}
-
-
bool InspectorController::isRecordingUserInitiatedProfile() const
{
return m_profilerAgent->isRecordingUserInitiatedProfile();
@@ -1246,60 +1029,61 @@ bool InspectorController::profilerEnabled() const
void InspectorController::enableProfiler(bool always, bool skipRecompile)
{
if (always)
- m_state->setBoolean(InspectorState::profilerAlwaysEnabled, true);
+ m_settings->setBoolean(InspectorSettings::ProfilerAlwaysEnabled, true);
m_profilerAgent->enable(skipRecompile);
}
void InspectorController::disableProfiler(bool always)
{
if (always)
- m_state->setBoolean(InspectorState::profilerAlwaysEnabled, false);
+ m_settings->setBoolean(InspectorSettings::ProfilerAlwaysEnabled, false);
m_profilerAgent->disable();
}
#endif
#if ENABLE(JAVASCRIPT_DEBUGGER)
-void InspectorController::enableDebuggerFromFrontend(bool always)
+void InspectorController::showAndEnableDebugger()
+{
+ if (!enabled())
+ return;
+
+ if (debuggerEnabled())
+ return;
+
+ if (!m_frontend) {
+ m_attachDebuggerWhenShown = true;
+ showPanel(ScriptsPanel);
+ } else
+ enableDebugger(false);
+}
+
+void InspectorController::enableDebugger(bool always)
{
ASSERT(!debuggerEnabled());
if (always)
- m_state->setBoolean(InspectorState::debuggerAlwaysEnabled, true);
+ m_settings->setBoolean(InspectorSettings::DebuggerAlwaysEnabled, true);
ASSERT(m_inspectedPage);
m_debuggerAgent = InspectorDebuggerAgent::create(this, m_frontend.get());
+ m_browserDebuggerAgent = InspectorBrowserDebuggerAgent::create(this);
restoreStickyBreakpoints();
m_frontend->debuggerWasEnabled();
}
-void InspectorController::enableDebugger()
-{
- if (!enabled())
- return;
-
- if (debuggerEnabled())
- return;
-
- if (!m_frontend)
- m_attachDebuggerWhenShown = true;
- else {
- m_frontend->attachDebuggerWhenShown();
- m_attachDebuggerWhenShown = false;
- }
-}
-
void InspectorController::disableDebugger(bool always)
{
if (!enabled())
return;
if (always)
- m_state->setBoolean(InspectorState::debuggerAlwaysEnabled, false);
+ m_settings->setBoolean(InspectorSettings::DebuggerAlwaysEnabled, false);
ASSERT(m_inspectedPage);
m_debuggerAgent.clear();
+ m_browserDebuggerAgent.clear();
m_attachDebuggerWhenShown = false;
@@ -1320,10 +1104,6 @@ void InspectorController::setStickyBreakpoints(PassRefPtr<InspectorObject> break
void InspectorController::restoreStickyBreakpoints()
{
- m_eventListenerBreakpoints.clear();
- m_XHRBreakpoints.clear();
- m_hasXHRBreakpointWithEmptyURL = false;
-
RefPtr<InspectorObject> allBreakpoints = m_state->getObject(InspectorState::stickyBreakpoints);
KURL url = m_inspectedPage->mainFrame()->loader()->url();
url.removeFragmentIdentifier();
@@ -1352,13 +1132,14 @@ void InspectorController::restoreStickyBreakpoint(PassRefPtr<InspectorObject> br
if (!condition)
return;
- if (type == eventListenerBreakpointType) {
+ if (type == eventListenerBreakpointType && m_browserDebuggerAgent) {
if (!enabled)
return;
String eventName;
- if (condition->getString("eventName", &eventName))
- setEventListenerBreakpoint(eventName);
- } else if (type == javaScriptBreakpointType) {
+ if (!condition->getString("eventName", &eventName))
+ return;
+ m_browserDebuggerAgent->setEventListenerBreakpoint(eventName);
+ } else if (type == javaScriptBreakpointType && m_debuggerAgent) {
String url;
if (!condition->getString("url", &url))
return;
@@ -1368,70 +1149,18 @@ void InspectorController::restoreStickyBreakpoint(PassRefPtr<InspectorObject> br
String javaScriptCondition;
if (!condition->getString("condition", &javaScriptCondition))
return;
- if (m_debuggerAgent)
- m_debuggerAgent->setStickyBreakpoint(url, static_cast<unsigned>(lineNumber), javaScriptCondition, enabled);
- } else if (type == xhrBreakpointType) {
+ m_debuggerAgent->setStickyBreakpoint(url, static_cast<unsigned>(lineNumber), javaScriptCondition, enabled);
+ } else if (type == xhrBreakpointType && m_browserDebuggerAgent) {
if (!enabled)
return;
String url;
- if (condition->getString("url", &url))
- setXHRBreakpoint(url);
- }
-}
-
-void InspectorController::setEventListenerBreakpoint(const String& eventName)
-{
- m_eventListenerBreakpoints.add(eventName);
-}
-
-void InspectorController::removeEventListenerBreakpoint(const String& eventName)
-{
- m_eventListenerBreakpoints.remove(eventName);
-}
-
-bool InspectorController::hasEventListenerBreakpoint(const String& eventName)
-{
- return m_eventListenerBreakpoints.contains(eventName);
-}
-
-void InspectorController::setXHRBreakpoint(const String& url)
-{
- if (url.isEmpty())
- m_hasXHRBreakpointWithEmptyURL = true;
- else
- m_XHRBreakpoints.add(url);
-}
-
-void InspectorController::removeXHRBreakpoint(const String& url)
-{
- if (url.isEmpty())
- m_hasXHRBreakpointWithEmptyURL = false;
- else
- m_XHRBreakpoints.remove(url);
-}
-
-bool InspectorController::hasXHRBreakpoint(const String& url, String* breakpointURL)
-{
- if (m_hasXHRBreakpointWithEmptyURL) {
- *breakpointURL = "";
- return true;
- }
- for (HashSet<String>::iterator it = m_XHRBreakpoints.begin(); it != m_XHRBreakpoints.end(); ++it) {
- if (url.contains(*it)) {
- *breakpointURL = *it;
- return true;
- }
+ if (!condition->getString("url", &url))
+ return;
+ m_browserDebuggerAgent->setXHRBreakpoint(url);
}
- return false;
}
-
#endif
-void InspectorController::setInjectedScriptSource(const String& source)
-{
- injectedScriptHost()->setInjectedScriptSource(source);
-}
-
void InspectorController::dispatchOnInjectedScript(long injectedScriptId, const String& methodName, const String& arguments, RefPtr<InspectorValue>* result, bool* hadException)
{
if (!m_frontend)
@@ -1739,42 +1468,6 @@ void InspectorController::openInInspectedWindow(const String& url)
newFrame->loader()->changeLocation(mainFrame->document()->securityOrigin(), newFrame->loader()->completeURL(url), "", false, false);
}
-void InspectorController::count(const String& title, unsigned lineNumber, const String& sourceID)
-{
- String identifier = makeString(title, '@', sourceID, ':', String::number(lineNumber));
- HashMap<String, unsigned>::iterator it = m_counts.find(identifier);
- int count;
- if (it == m_counts.end())
- count = 1;
- else {
- count = it->second + 1;
- m_counts.remove(it);
- }
-
- m_counts.add(identifier, count);
-
- String message = makeString(title, ": ", String::number(count));
- addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceID);
-}
-
-void InspectorController::startTiming(const String& title)
-{
- m_times.add(title, currentTime() * 1000);
-}
-
-bool InspectorController::stopTiming(const String& title, double& elapsed)
-{
- HashMap<String, double>::iterator it = m_times.find(title);
- if (it == m_times.end())
- return false;
-
- double startTime = it->second;
- m_times.remove(it);
-
- elapsed = currentTime() * 1000 - startTime;
- return true;
-}
-
InjectedScript InspectorController::injectedScriptForNodeId(long id)
{
diff --git a/Source/WebCore/inspector/InspectorController.h b/Source/WebCore/inspector/InspectorController.h
index 481344d..9cddc56 100644
--- a/Source/WebCore/inspector/InspectorController.h
+++ b/Source/WebCore/inspector/InspectorController.h
@@ -45,8 +45,8 @@ namespace WebCore {
class CachedResource;
class CharacterData;
-class ConsoleMessage;
class Database;
+class DOMWrapperWorld;
class Document;
class DocumentLoader;
class FloatRect;
@@ -57,7 +57,9 @@ class InjectedScript;
class InjectedScriptHost;
class InspectorArray;
class InspectorBackendDispatcher;
+class InspectorBrowserDebuggerAgent;
class InspectorClient;
+class InspectorConsoleAgent;
class InspectorCSSAgent;
class InspectorDOMAgent;
class InspectorDOMStorageAgent;
@@ -70,6 +72,7 @@ class InspectorFrontendClient;
class InspectorObject;
class InspectorProfilerAgent;
class InspectorResourceAgent;
+class InspectorSettings;
class InspectorState;
class InspectorStorageAgent;
class InspectorTimelineAgent;
@@ -141,39 +144,22 @@ public:
void reuseFrontend();
void disconnectFrontend();
- void setConsoleMessagesEnabled(bool enabled, bool* newState);
- void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack>);
- void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String&);
- void clearConsoleMessages();
- const Vector<OwnPtr<ConsoleMessage> >& consoleMessages() const { return m_consoleMessages; }
+ InspectorConsoleAgent* consoleAgent() const { return m_consoleAgent.get(); }
+ InspectorDOMAgent* domAgent() const { return m_domAgent.get(); }
bool searchingForNodeInPage() const;
void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags);
- void handleMousePress();
+ bool handleMousePress();
void setInspectorFrontendClient(PassOwnPtr<InspectorFrontendClient> client);
bool hasInspectorFrontendClient() const { return m_inspectorFrontendClient; }
- void inspectedWindowScriptObjectCleared(Frame*);
+ void didClearWindowObjectInWorld(Frame*, DOMWrapperWorld*);
void didCommitLoad(DocumentLoader*);
- void frameDetachedFromParent(Frame*);
- void didLoadResourceFromMemoryCache(DocumentLoader*, const CachedResource*);
-
- void identifierForInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&);
- void willSendRequest(unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
- void markResourceAsCached(unsigned long identifier);
- void didReceiveResponse(unsigned long identifier, DocumentLoader*, const ResourceResponse&);
- void didReceiveContentLength(unsigned long identifier, int lengthReceived);
- void didFinishLoading(unsigned long identifier, double finishTime);
- void didFailLoading(unsigned long identifier, const ResourceError&);
- void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber);
- void scriptImported(unsigned long identifier, const String& sourceString);
void setExtraHeaders(PassRefPtr<InspectorObject>);
- void ensureSettingsLoaded();
-
void startTimelineProfiler();
void stopTimelineProfiler();
InspectorTimelineAgent* timelineAgent() { return m_timelineAgent.get(); }
@@ -217,20 +203,8 @@ public:
void openInInspectedWindow(const String& url);
void drawElementTitle(GraphicsContext&, const IntRect& boundingBox, const FloatRect& overlayRect, WebCore::Settings*) const;
- void count(const String& title, unsigned lineNumber, const String& sourceID);
-
- void startTiming(const String& title);
- bool stopTiming(const String& title, double& elapsed);
-
- void startGroup(PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack> callFrame, bool collapsed = false);
- void endGroup(MessageSource source, unsigned lineNumber, const String& sourceURL);
-
- void markTimeline(const String& message);
-
#if ENABLE(JAVASCRIPT_DEBUGGER)
void addProfile(PassRefPtr<ScriptProfile>, unsigned lineNumber, const String& sourceURL);
- void addProfileFinishedMessageToConsole(PassRefPtr<ScriptProfile>, unsigned lineNumber, const String& sourceURL);
- void addStartProfilingMessageToConsole(const String& title, unsigned lineNumber, const String& sourceURL);
bool isRecordingUserInitiatedProfile() const;
String getCurrentUserInitiatedProfileName(bool incrementProfileNumber = false);
void startProfiling() { startUserInitiatedProfiling(); }
@@ -241,18 +215,13 @@ public:
void disableProfiler(bool always = false);
bool profilerEnabled() const;
- void enableDebugger();
+ void showAndEnableDebugger();
+ void enableDebugger(bool always);
void disableDebugger(bool always = false);
bool debuggerEnabled() const { return m_debuggerAgent; }
void resume();
void setStickyBreakpoints(PassRefPtr<InspectorObject> breakpoints);
- void setEventListenerBreakpoint(const String& eventName);
- void removeEventListenerBreakpoint(const String& eventName);
- bool hasEventListenerBreakpoint(const String& eventName);
- void setXHRBreakpoint(const String& url);
- void removeXHRBreakpoint(const String& url);
- bool hasXHRBreakpoint(const String& url, String* breakpointURL);
#endif
void setInjectedScriptSource(const String& source);
@@ -272,26 +241,28 @@ public:
bool inspectorStartsAttached();
void setInspectorStartsAttached(bool);
void setInspectorAttachedHeight(long height);
- int inspectorAttachedHeight() const;
-
- static const unsigned defaultAttachedHeight;
+ long inspectorAttachedHeight() const;
private:
- void getInspectorState(RefPtr<InspectorObject>* state);
- void setConsoleMessagesEnabled(bool enabled);
-
friend class InspectorBackend;
friend class InspectorBackendDispatcher;
+ friend class InspectorBrowserDebuggerAgent;
friend class InspectorInstrumentation;
friend class InjectedScriptHost;
+ void willSendRequest(ResourceRequest&);
+
+ void ensureSettingsLoaded();
+
+ void getInspectorState(RefPtr<InspectorObject>* state);
+
+ void populateScriptObjects();
+ void pushDataCollectedOffline();
+ void restoreDebugger();
enum ProfilerRestoreAction {
ProfilerRestoreNoAction = 0,
ProfilerRestoreResetAgent = 1
};
-
- void populateScriptObjects();
- void restoreDebugger();
void restoreProfiler(ProfilerRestoreAction action);
void unbindAllResources();
void setSearchingForNode(bool enabled);
@@ -304,7 +275,6 @@ private:
#if ENABLE(JAVASCRIPT_DEBUGGER)
void toggleRecordButton(bool);
- void enableDebuggerFromFrontend(bool always);
void restoreStickyBreakpoints();
void restoreStickyBreakpoint(PassRefPtr<InspectorObject> breakpoint);
#endif
@@ -314,8 +284,6 @@ private:
void focusNode();
- void addConsoleMessage(PassOwnPtr<ConsoleMessage>);
-
bool isMainResourceLoader(DocumentLoader* loader, const KURL& requestUrl);
void didEvaluateForTestInFrontend(long callId, const String& jsonResult);
@@ -338,6 +306,7 @@ private:
OwnPtr<InspectorTimelineAgent> m_timelineAgent;
OwnPtr<InspectorState> m_state;
+ OwnPtr<InspectorSettings> m_settings;
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
OwnPtr<InspectorApplicationCacheAgent> m_applicationCacheAgent;
@@ -349,11 +318,6 @@ private:
RefPtr<Node> m_nodeToFocus;
RefPtr<InspectorResourceAgent> m_resourceAgent;
- unsigned long m_mainResourceIdentifier;
- Vector<OwnPtr<ConsoleMessage> > m_consoleMessages;
- unsigned m_expiredConsoleMessageCount;
- HashMap<String, double> m_times;
- HashMap<String, unsigned> m_counts;
#if ENABLE(DATABASE)
typedef HashMap<int, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
@@ -366,13 +330,9 @@ private:
String m_showAfterVisible;
RefPtr<Node> m_highlightedNode;
- ConsoleMessage* m_previousMessage;
- bool m_settingsLoaded;
OwnPtr<InspectorBackendDispatcher> m_inspectorBackendDispatcher;
RefPtr<InjectedScriptHost> m_injectedScriptHost;
-
- typedef HashMap<String, String> Settings;
- mutable Settings m_settings;
+ OwnPtr<InspectorConsoleAgent> m_consoleAgent;
Vector<pair<long, String> > m_pendingEvaluateTestCommands;
Vector<String> m_scriptsToEvaluateOnLoad;
@@ -380,10 +340,7 @@ private:
#if ENABLE(JAVASCRIPT_DEBUGGER)
bool m_attachDebuggerWhenShown;
OwnPtr<InspectorDebuggerAgent> m_debuggerAgent;
-
- HashSet<String> m_eventListenerBreakpoints;
- HashSet<String> m_XHRBreakpoints;
- bool m_hasXHRBreakpointWithEmptyURL;
+ OwnPtr<InspectorBrowserDebuggerAgent> m_browserDebuggerAgent;
OwnPtr<InspectorProfilerAgent> m_profilerAgent;
#endif
diff --git a/Source/WebCore/inspector/InspectorDOMAgent.cpp b/Source/WebCore/inspector/InspectorDOMAgent.cpp
index e42bf2a..19ae30d 100644
--- a/Source/WebCore/inspector/InspectorDOMAgent.cpp
+++ b/Source/WebCore/inspector/InspectorDOMAgent.cpp
@@ -204,16 +204,6 @@ public:
virtual ~MatchPlainTextJob() { }
};
-enum DOMBreakpointType {
- SubtreeModified = 0,
- AttributeModified,
- NodeRemoved,
- DOMBreakpointTypesCount
-};
-
-const uint32_t inheritableDOMBreakpointTypesMask = (1 << SubtreeModified);
-const int domBreakpointDerivedTypeShift = 16;
-
}
InspectorDOMAgent::InspectorDOMAgent(InspectorFrontend* frontend)
@@ -268,6 +258,15 @@ void InspectorDOMAgent::releaseDanglingNodes()
m_danglingNodeToIdMaps.clear();
}
+void InspectorDOMAgent::startListeningFrameDocument(Node* frameOwnerNode)
+{
+ ASSERT(frameOwnerNode->isFrameOwnerElement());
+ HTMLFrameOwnerElement* frameOwner = static_cast<HTMLFrameOwnerElement*>(frameOwnerNode);
+ Document* doc = frameOwner->contentDocument();
+ if (doc)
+ startListening(doc);
+}
+
void InspectorDOMAgent::startListening(Document* doc)
{
if (m_documents.contains(doc))
@@ -395,7 +394,6 @@ void InspectorDOMAgent::discardBindings()
releaseDanglingNodes();
m_childrenRequested.clear();
m_inspectedNodes.clear();
- m_breakpoints.clear();
}
Node* InspectorDOMAgent::nodeForId(long id)
@@ -760,101 +758,6 @@ void InspectorDOMAgent::searchCanceled()
m_searchResults.clear();
}
-void InspectorDOMAgent::setDOMBreakpoint(long nodeId, long type)
-{
- Node* node = nodeForId(nodeId);
- if (!node)
- return;
-
- uint32_t rootBit = 1 << type;
- m_breakpoints.set(node, m_breakpoints.get(node) | rootBit);
- if (rootBit & inheritableDOMBreakpointTypesMask) {
- for (Node* child = innerFirstChild(node); child; child = innerNextSibling(child))
- updateSubtreeBreakpoints(child, rootBit, true);
- }
-}
-
-void InspectorDOMAgent::removeDOMBreakpoint(long nodeId, long type)
-{
- Node* node = nodeForId(nodeId);
- if (!node)
- return;
-
- uint32_t rootBit = 1 << type;
- uint32_t mask = m_breakpoints.get(node) & ~rootBit;
- if (mask)
- m_breakpoints.set(node, mask);
- else
- m_breakpoints.remove(node);
-
- if ((rootBit & inheritableDOMBreakpointTypesMask) && !(mask & (rootBit << domBreakpointDerivedTypeShift))) {
- for (Node* child = innerFirstChild(node); child; child = innerNextSibling(child))
- updateSubtreeBreakpoints(child, rootBit, false);
- }
-}
-
-bool InspectorDOMAgent::shouldBreakOnNodeInsertion(Node*, Node* parent, PassRefPtr<InspectorObject> details)
-{
- if (hasBreakpoint(parent, SubtreeModified)) {
- descriptionForDOMEvent(parent, SubtreeModified, true, details);
- return true;
- }
- return false;
-}
-
-bool InspectorDOMAgent::shouldBreakOnNodeRemoval(Node* node, PassRefPtr<InspectorObject> details)
-{
- if (hasBreakpoint(node, NodeRemoved)) {
- descriptionForDOMEvent(node, NodeRemoved, false, details);
- return true;
- }
- if (hasBreakpoint(innerParentNode(node), SubtreeModified)) {
- descriptionForDOMEvent(node, SubtreeModified, false, details);
- return true;
- }
- return false;
-}
-
-bool InspectorDOMAgent::shouldBreakOnAttributeModification(Element* element, PassRefPtr<InspectorObject> details)
-{
- if (hasBreakpoint(element, AttributeModified)) {
- descriptionForDOMEvent(element, AttributeModified, false, details);
- return true;
- }
- return false;
-}
-
-void InspectorDOMAgent::descriptionForDOMEvent(Node* target, long breakpointType, bool insertion, PassRefPtr<InspectorObject> description)
-{
- ASSERT(hasBreakpoint(target, breakpointType));
-
- Node* breakpointOwner = target;
- if ((1 << breakpointType) & inheritableDOMBreakpointTypesMask) {
- // For inheritable breakpoint types, target node isn't always the same as the node that owns a breakpoint.
- // Target node may be unknown to frontend, so we need to push it first.
- long targetNodeId = pushNodePathToFrontend(target);
- ASSERT(targetNodeId);
- description->setNumber("targetNodeId", targetNodeId);
-
- // Find breakpoint owner node.
- if (!insertion)
- breakpointOwner = innerParentNode(target);
- ASSERT(breakpointOwner);
- while (!(m_breakpoints.get(breakpointOwner) & (1 << breakpointType))) {
- breakpointOwner = innerParentNode(breakpointOwner);
- ASSERT(breakpointOwner);
- }
-
- if (breakpointType == SubtreeModified)
- description->setBoolean("insertion", insertion);
- }
-
- long breakpointOwnerNodeId = m_documentNodeToIdMap.get(breakpointOwner);
- ASSERT(breakpointOwnerNodeId);
- description->setNumber("nodeId", breakpointOwnerNodeId);
- description->setNumber("type", breakpointType);
-}
-
String InspectorDOMAgent::documentURLString(Document* document) const
{
if (!document || document->url().isNull())
@@ -947,20 +850,24 @@ PassRefPtr<InspectorArray> InspectorDOMAgent::buildArrayForElementAttributes(Ele
PassRefPtr<InspectorArray> InspectorDOMAgent::buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap)
{
RefPtr<InspectorArray> children = InspectorArray::create();
+ Node* child = innerFirstChild(container);
+
if (depth == 0) {
// Special case the_only text child.
- if (innerChildNodeCount(container) == 1) {
- Node *child = innerFirstChild(container);
- if (child->nodeType() == Node::TEXT_NODE)
- children->pushObject(buildObjectForNode(child, 0, nodesMap));
- }
+ if (child && child->nodeType() == Node::TEXT_NODE && !innerNextSibling(child))
+ children->pushObject(buildObjectForNode(child, 0, nodesMap));
return children.release();
} else if (depth > 0) {
depth--;
}
- for (Node *child = innerFirstChild(container); child; child = innerNextSibling(child))
+ if (container->isFrameOwnerElement())
+ startListeningFrameDocument(container);
+
+ while (child) {
children->pushObject(buildObjectForNode(child, depth, nodesMap));
+ child = innerNextSibling(child);
+ }
return children.release();
}
@@ -987,10 +894,8 @@ Node* InspectorDOMAgent::innerFirstChild(Node* node)
if (node->isFrameOwnerElement()) {
HTMLFrameOwnerElement* frameOwner = static_cast<HTMLFrameOwnerElement*>(node);
Document* doc = frameOwner->contentDocument();
- if (doc) {
- startListening(doc);
+ if (doc)
return doc->firstChild();
- }
}
node = node->firstChild();
while (isWhitespace(node))
@@ -1059,13 +964,6 @@ void InspectorDOMAgent::didInsertDOMNode(Node* node)
if (isWhitespace(node))
return;
- if (m_breakpoints.size()) {
- uint32_t mask = m_breakpoints.get(innerParentNode(node));
- uint32_t inheritableTypesMask = (mask | (mask >> domBreakpointDerivedTypeShift)) & inheritableDOMBreakpointTypesMask;
- if (inheritableTypesMask)
- updateSubtreeBreakpoints(node, inheritableTypesMask, true);
- }
-
// We could be attaching existing subtree. Forget the bindings.
unbind(node, &m_documentNodeToIdMap);
@@ -1092,21 +990,6 @@ void InspectorDOMAgent::didRemoveDOMNode(Node* node)
if (isWhitespace(node))
return;
- if (m_breakpoints.size()) {
- // Remove subtree breakpoints.
- m_breakpoints.remove(node);
- Vector<Node*> stack(1, innerFirstChild(node));
- do {
- Node* node = stack.last();
- stack.removeLast();
- if (!node)
- continue;
- m_breakpoints.remove(node);
- stack.append(innerFirstChild(node));
- stack.append(innerNextSibling(node));
- } while (!stack.isEmpty());
- }
-
ContainerNode* parent = node->parentNode();
long parentId = m_documentNodeToIdMap.get(parent);
// If parent is not mapped yet -> ignore the event.
@@ -1146,31 +1029,6 @@ void InspectorDOMAgent::characterDataModified(CharacterData* characterData)
m_frontend->characterDataModified(id, characterData->data());
}
-bool InspectorDOMAgent::hasBreakpoint(Node* node, long type)
-{
- uint32_t rootBit = 1 << type;
- uint32_t derivedBit = rootBit << domBreakpointDerivedTypeShift;
- return m_breakpoints.get(node) & (rootBit | derivedBit);
-}
-
-void InspectorDOMAgent::updateSubtreeBreakpoints(Node* node, uint32_t rootMask, bool set)
-{
- uint32_t oldMask = m_breakpoints.get(node);
- uint32_t derivedMask = rootMask << domBreakpointDerivedTypeShift;
- uint32_t newMask = set ? oldMask | derivedMask : oldMask & ~derivedMask;
- if (newMask)
- m_breakpoints.set(node, newMask);
- else
- m_breakpoints.remove(node);
-
- uint32_t newRootMask = rootMask & ~newMask;
- if (!newRootMask)
- return;
-
- for (Node* child = innerFirstChild(node); child; child = innerNextSibling(child))
- updateSubtreeBreakpoints(child, newRootMask, set);
-}
-
Node* InspectorDOMAgent::nodeForPath(const String& path)
{
// The path is of form "1,HTML,2,BODY,1,DIV"
diff --git a/Source/WebCore/inspector/InspectorDOMAgent.h b/Source/WebCore/inspector/InspectorDOMAgent.h
index 1611baa..97175fe 100644
--- a/Source/WebCore/inspector/InspectorDOMAgent.h
+++ b/Source/WebCore/inspector/InspectorDOMAgent.h
@@ -124,7 +124,7 @@ namespace WebCore {
bool shouldBreakOnNodeRemoval(Node* node, PassRefPtr<InspectorObject> details);
bool shouldBreakOnAttributeModification(Element* element, PassRefPtr<InspectorObject> details);
- // Methods called from the InspectorController.
+ // Methods called from the InspectorInstrumentation.
void setDocument(Document* document);
void releaseDanglingNodes();
@@ -144,10 +144,17 @@ namespace WebCore {
String documentURLString(Document* document) const;
- void setDOMBreakpoint(long nodeId, long type);
- void removeDOMBreakpoint(long nodeId, long type);
+ // We represent embedded doms as a part of the same hierarchy. Hence we treat children of frame owners differently.
+ // We also skip whitespace text nodes conditionally. Following methods encapsulate these specifics.
+ static Node* innerFirstChild(Node*);
+ static Node* innerNextSibling(Node*);
+ static Node* innerPreviousSibling(Node*);
+ static unsigned innerChildNodeCount(Node*);
+ static Node* innerParentNode(Node*);
+ static bool isWhitespace(Node*);
private:
+ void startListeningFrameDocument(Node* frameOwnerNode);
void startListening(Document* document);
void stopListening(Document* document);
@@ -169,15 +176,6 @@ namespace WebCore {
PassRefPtr<InspectorArray> buildArrayForContainerChildren(Node* container, int depth, NodeToIdMap* nodesMap);
PassRefPtr<InspectorObject> buildObjectForEventListener(const RegisteredEventListener& registeredEventListener, const AtomicString& eventType, Node* node);
- // We represent embedded doms as a part of the same hierarchy. Hence we treat children of frame owners differently.
- // We also skip whitespace text nodes conditionally. Following methods encapsulate these specifics.
- Node* innerFirstChild(Node* node);
- Node* innerNextSibling(Node* node);
- Node* innerPreviousSibling(Node* node);
- unsigned innerChildNodeCount(Node* node);
- Node* innerParentNode(Node* node);
- bool isWhitespace(Node* node);
-
Document* mainFrameDocument() const;
void onMatchJobsTimer(Timer<InspectorDOMAgent>*);
@@ -202,7 +200,6 @@ namespace WebCore {
Timer<InspectorDOMAgent> m_matchJobsTimer;
HashSet<RefPtr<Node> > m_searchResults;
Vector<long> m_inspectedNodes;
- HashMap<Node*, uint32_t> m_breakpoints;
};
#endif
diff --git a/Source/WebCore/inspector/InspectorDOMStorageAgent.h b/Source/WebCore/inspector/InspectorDOMStorageAgent.h
index bdfd7cb..f1d4d5c 100644
--- a/Source/WebCore/inspector/InspectorDOMStorageAgent.h
+++ b/Source/WebCore/inspector/InspectorDOMStorageAgent.h
@@ -36,7 +36,6 @@
namespace WebCore {
class InspectorArray;
-class InspectorController;
class InspectorDOMStorageResource;
class InspectorFrontend;
class Storage;
diff --git a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp
index 88db3ae..36bcab8 100644
--- a/Source/WebCore/inspector/InspectorDatabaseAgent.cpp
+++ b/Source/WebCore/inspector/InspectorDatabaseAgent.cpp
@@ -34,9 +34,9 @@
#include "Database.h"
#include "ExceptionCode.h"
-#include "InspectorFrontend.h"
#include "InspectorController.h"
#include "InspectorDatabaseResource.h"
+#include "InspectorFrontend.h"
#include "InspectorValues.h"
#include "SQLError.h"
#include "SQLStatementCallback.h"
diff --git a/Source/WebCore/inspector/InspectorDatabaseAgent.h b/Source/WebCore/inspector/InspectorDatabaseAgent.h
index c73d3c8..a9e9a5d 100644
--- a/Source/WebCore/inspector/InspectorDatabaseAgent.h
+++ b/Source/WebCore/inspector/InspectorDatabaseAgent.h
@@ -37,7 +37,6 @@ namespace WebCore {
class Database;
class InspectorArray;
-class InspectorController;
class InspectorDatabaseResource;
class InspectorFrontend;
diff --git a/Source/WebCore/inspector/InspectorDebuggerAgent.cpp b/Source/WebCore/inspector/InspectorDebuggerAgent.cpp
index 0046989..82c250a 100644
--- a/Source/WebCore/inspector/InspectorDebuggerAgent.cpp
+++ b/Source/WebCore/inspector/InspectorDebuggerAgent.cpp
@@ -152,17 +152,17 @@ void InspectorDebuggerAgent::resume()
ScriptDebugServer::shared().continueProgram();
}
-void InspectorDebuggerAgent::stepOverStatement()
+void InspectorDebuggerAgent::stepOver()
{
ScriptDebugServer::shared().stepOverStatement();
}
-void InspectorDebuggerAgent::stepIntoStatement()
+void InspectorDebuggerAgent::stepInto()
{
ScriptDebugServer::shared().stepIntoStatement();
}
-void InspectorDebuggerAgent::stepOutOfFunction()
+void InspectorDebuggerAgent::stepOut()
{
ScriptDebugServer::shared().stepOutOfFunction();
}
@@ -199,10 +199,10 @@ PassRefPtr<InspectorValue> InspectorDebuggerAgent::currentCallFrames()
// JavaScriptDebugListener functions
-void InspectorDebuggerAgent::didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType worldType)
+void InspectorDebuggerAgent::didParseSource(const String& sourceID, const String& url, const String& data, int lineOffset, int columnOffset, ScriptWorldType worldType)
{
// Don't send script content to the front end until it's really needed.
- m_frontend->parsedScriptSource(sourceID, url, "", firstLine, worldType);
+ m_frontend->parsedScriptSource(sourceID, url, lineOffset, columnOffset, worldType);
m_scriptIDToContent.set(sourceID, data);
diff --git a/Source/WebCore/inspector/InspectorDebuggerAgent.h b/Source/WebCore/inspector/InspectorDebuggerAgent.h
index 6e45e59..07d2ab9 100644
--- a/Source/WebCore/inspector/InspectorDebuggerAgent.h
+++ b/Source/WebCore/inspector/InspectorDebuggerAgent.h
@@ -73,9 +73,9 @@ public:
void breakProgram(DebuggerEventType type, PassRefPtr<InspectorValue> data);
void pause();
void resume();
- void stepOverStatement();
- void stepIntoStatement();
- void stepOutOfFunction();
+ void stepOver();
+ void stepInto();
+ void stepOut();
void setPauseOnExceptionsState(long pauseState, long* newState);
long pauseOnExceptionsState();
@@ -87,7 +87,7 @@ private:
PassRefPtr<InspectorValue> currentCallFrames();
- virtual void didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType);
+ virtual void didParseSource(const String& sourceID, const String& url, const String& data, int lineOffset, int columnOffset, ScriptWorldType);
virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage);
virtual void didPause(ScriptState*);
virtual void didContinue();
diff --git a/Source/WebCore/inspector/InspectorFrontendHost.cpp b/Source/WebCore/inspector/InspectorFrontendHost.cpp
index 4b7e13f..342af0f 100644
--- a/Source/WebCore/inspector/InspectorFrontendHost.cpp
+++ b/Source/WebCore/inspector/InspectorFrontendHost.cpp
@@ -41,6 +41,7 @@
#include "FrameLoader.h"
#include "HitTestResult.h"
#include "HTMLFrameOwnerElement.h"
+#include "InspectorController.h"
#include "InspectorFrontendClient.h"
#include "Page.h"
#include "Pasteboard.h"
diff --git a/Source/WebCore/inspector/InspectorFrontendHost.h b/Source/WebCore/inspector/InspectorFrontendHost.h
index d333893..03c55a9 100644
--- a/Source/WebCore/inspector/InspectorFrontendHost.h
+++ b/Source/WebCore/inspector/InspectorFrontendHost.h
@@ -32,7 +32,6 @@
#include "Console.h"
#include "ContextMenu.h"
#include "ContextMenuProvider.h"
-#include "InspectorController.h"
#include "PlatformString.h"
#include <wtf/RefCounted.h>
@@ -46,6 +45,7 @@ class FrontendMenuProvider;
class InspectorClient;
class InspectorFrontendClient;
class Node;
+class Page;
class InspectorFrontendHost : public RefCounted<InspectorFrontendHost>
{
diff --git a/Source/WebCore/inspector/InspectorInstrumentation.cpp b/Source/WebCore/inspector/InspectorInstrumentation.cpp
index f3a73ba..aa941df 100644
--- a/Source/WebCore/inspector/InspectorInstrumentation.cpp
+++ b/Source/WebCore/inspector/InspectorInstrumentation.cpp
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 2010 Google Inc. All rights reserved.
+* Copyright (C) 2011 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
@@ -34,21 +34,26 @@
#if ENABLE(INSPECTOR)
#include "DOMWindow.h"
+#include "Database.h"
+#include "DocumentLoader.h"
#include "Event.h"
#include "EventContext.h"
+#include "InspectorApplicationCacheAgent.h"
+#include "InspectorBrowserDebuggerAgent.h"
+#include "InspectorConsoleAgent.h"
#include "InspectorController.h"
#include "InspectorDOMAgent.h"
#include "InspectorDebuggerAgent.h"
+#include "InspectorProfilerAgent.h"
+#include "InspectorResourceAgent.h"
#include "InspectorTimelineAgent.h"
+#include "ScriptArguments.h"
+#include "ScriptCallStack.h"
#include "XMLHttpRequest.h"
#include <wtf/text/CString.h>
namespace WebCore {
-static const char* const domNativeBreakpointType = "DOM";
-static const char* const eventListenerNativeBreakpointType = "EventListener";
-static const char* const xhrNativeBreakpointType = "XHR";
-
static const char* const listenerEventCategoryType = "listener";
static const char* const instrumentationEventCategoryType = "instrumentation";
@@ -75,20 +80,21 @@ static bool eventHasListeners(const AtomicString& eventType, DOMWindow* window,
return false;
}
+void InspectorInstrumentation::didClearWindowObjectInWorldImpl(InspectorController* inspectorController, Frame* frame, DOMWrapperWorld* world)
+{
+ inspectorController->didClearWindowObjectInWorld(frame, world);
+}
+
+void InspectorInstrumentation::inspectedPageDestroyedImpl(InspectorController* inspectorController)
+{
+ inspectorController->inspectedPageDestroyed();
+}
+
void InspectorInstrumentation::willInsertDOMNodeImpl(InspectorController* inspectorController, Node* node, Node* parent)
{
#if ENABLE(JAVASCRIPT_DEBUGGER)
- InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get();
- if (!debuggerAgent)
- return;
- InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get();
- if (!domAgent)
- return;
- RefPtr<InspectorObject> eventData = InspectorObject::create();
- if (domAgent->shouldBreakOnNodeInsertion(node, parent, eventData)) {
- eventData->setString("breakpointType", domNativeBreakpointType);
- debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData);
- }
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->willInsertDOMNode(node, parent);
#endif
}
@@ -96,27 +102,26 @@ void InspectorInstrumentation::didInsertDOMNodeImpl(InspectorController* inspect
{
if (InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get())
domAgent->didInsertDOMNode(node);
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->didInsertDOMNode(node);
+#endif
}
void InspectorInstrumentation::willRemoveDOMNodeImpl(InspectorController* inspectorController, Node* node)
{
#if ENABLE(JAVASCRIPT_DEBUGGER)
- InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get();
- if (!debuggerAgent)
- return;
- InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get();
- if (!domAgent)
- return;
- RefPtr<InspectorObject> eventData = InspectorObject::create();
- if (domAgent->shouldBreakOnNodeRemoval(node, eventData)) {
- eventData->setString("breakpointType", domNativeBreakpointType);
- debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData);
- }
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->willRemoveDOMNode(node);
#endif
}
void InspectorInstrumentation::didRemoveDOMNodeImpl(InspectorController* inspectorController, Node* node)
{
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->didRemoveDOMNode(node);
+#endif
if (InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get())
domAgent->didRemoveDOMNode(node);
}
@@ -124,17 +129,8 @@ void InspectorInstrumentation::didRemoveDOMNodeImpl(InspectorController* inspect
void InspectorInstrumentation::willModifyDOMAttrImpl(InspectorController* inspectorController, Element* element)
{
#if ENABLE(JAVASCRIPT_DEBUGGER)
- InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get();
- if (!debuggerAgent)
- return;
- InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get();
- if (!domAgent)
- return;
- RefPtr<InspectorObject> eventData = InspectorObject::create();
- if (domAgent->shouldBreakOnAttributeModification(element, eventData)) {
- eventData->setString("breakpointType", domNativeBreakpointType);
- debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData);
- }
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->willModifyDOMAttr(element);
#endif
}
@@ -144,6 +140,16 @@ void InspectorInstrumentation::didModifyDOMAttrImpl(InspectorController* inspect
domAgent->didModifyDOMAttr(element);
}
+void InspectorInstrumentation::mouseDidMoveOverElementImpl(InspectorController* inspectorController, const HitTestResult& result, unsigned modifierFlags)
+{
+ inspectorController->mouseDidMoveOverElement(result, modifierFlags);
+}
+
+bool InspectorInstrumentation::handleMousePressImpl(InspectorController* inspectorController)
+{
+ return inspectorController->handleMousePress();
+}
+
void InspectorInstrumentation::characterDataModifiedImpl(InspectorController* inspectorController, CharacterData* characterData)
{
if (InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get())
@@ -153,19 +159,8 @@ void InspectorInstrumentation::characterDataModifiedImpl(InspectorController* in
void InspectorInstrumentation::willSendXMLHttpRequestImpl(InspectorController* inspectorController, const String& url)
{
#if ENABLE(JAVASCRIPT_DEBUGGER)
- InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get();
- if (!debuggerAgent)
- return;
-
- String breakpointURL;
- if (!inspectorController->hasXHRBreakpoint(url, &breakpointURL))
- return;
-
- RefPtr<InspectorObject> eventData = InspectorObject::create();
- eventData->setString("breakpointType", xhrNativeBreakpointType);
- eventData->setString("breakpointURL", breakpointURL);
- eventData->setString("url", url);
- debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData);
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->willSendXMLHttpRequest(url);
#endif
}
@@ -189,7 +184,6 @@ void InspectorInstrumentation::didRemoveTimerImpl(InspectorController* inspector
timelineAgent->didRemoveTimer(timerId);
}
-
InspectorInstrumentationCookie InspectorInstrumentation::willCallFunctionImpl(InspectorController* inspectorController, const String& scriptName, int scriptLine)
{
int timelineAgentId = 0;
@@ -372,6 +366,40 @@ void InspectorInstrumentation::didRecalculateStyleImpl(const InspectorInstrument
timelineAgent->didRecalculateStyle();
}
+void InspectorInstrumentation::identifierForInitialRequestImpl(InspectorController* ic, unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
+{
+ if (!ic->enabled())
+ return;
+ ic->ensureSettingsLoaded();
+
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->identifierForInitialRequest(identifier, request.url(), loader);
+}
+
+void InspectorInstrumentation::willSendRequestImpl(InspectorController* ic, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
+{
+ ic->willSendRequest(request);
+ if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(ic))
+ timelineAgent->willSendResourceRequest(identifier, request);
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->willSendRequest(identifier, request, redirectResponse);
+}
+
+void InspectorInstrumentation::markResourceAsCachedImpl(InspectorController* ic, unsigned long identifier)
+{
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->markResourceAsCached(identifier);
+}
+
+void InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl(InspectorController* ic, DocumentLoader* loader, const CachedResource* cachedResource)
+{
+ if (!ic->enabled())
+ return;
+ ic->ensureSettingsLoaded();
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
+}
+
InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceDataImpl(InspectorController* inspectorController, unsigned long identifier)
{
int timelineAgentId = 0;
@@ -400,12 +428,73 @@ InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceResp
return InspectorInstrumentationCookie(inspectorController, timelineAgentId);
}
-void InspectorInstrumentation::didReceiveResourceResponseImpl(const InspectorInstrumentationCookie& cookie)
+void InspectorInstrumentation::didReceiveResourceResponseImpl(const InspectorInstrumentationCookie& cookie, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response)
{
+ InspectorController* ic = cookie.first;
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->didReceiveResponse(identifier, loader, response);
+ ic->m_consoleAgent->didReceiveResponse(identifier, response);
if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(cookie))
timelineAgent->didReceiveResourceResponse();
}
+void InspectorInstrumentation::didReceiveContentLengthImpl(InspectorController* ic, unsigned long identifier, int lengthReceived)
+{
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->didReceiveContentLength(identifier, lengthReceived);
+}
+
+void InspectorInstrumentation::didFinishLoadingImpl(InspectorController* ic, unsigned long identifier, double finishTime)
+{
+ if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(ic))
+ timelineAgent->didFinishLoadingResource(identifier, false, finishTime);
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->didFinishLoading(identifier, finishTime);
+}
+
+void InspectorInstrumentation::didFailLoadingImpl(InspectorController* ic, unsigned long identifier, const ResourceError& error)
+{
+ ic->m_consoleAgent->didFailLoading(identifier, error);
+ if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(ic))
+ timelineAgent->didFinishLoadingResource(identifier, true, 0);
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->didFailLoading(identifier, error);
+}
+
+void InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl(InspectorController* ic, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber)
+{
+ ic->m_consoleAgent->resourceRetrievedByXMLHttpRequest(url, sendURL, sendLineNumber);
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->setInitialContent(identifier, sourceString, "XHR");
+}
+
+void InspectorInstrumentation::scriptImportedImpl(InspectorController* ic, unsigned long identifier, const String& sourceString)
+{
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(ic))
+ resourceAgent->setInitialContent(identifier, sourceString, "Script");
+}
+
+void InspectorInstrumentation::mainResourceFiredLoadEventImpl(InspectorController* inspectorController, Frame* frame, const KURL& url)
+{
+ inspectorController->mainResourceFiredLoadEvent(frame->loader()->documentLoader(), url);
+}
+
+void InspectorInstrumentation::mainResourceFiredDOMContentEventImpl(InspectorController* inspectorController, Frame* frame, const KURL& url)
+{
+ inspectorController->mainResourceFiredDOMContentEvent(frame->loader()->documentLoader(), url);
+}
+
+void InspectorInstrumentation::frameDetachedFromParentImpl(InspectorController* inspectorController, Frame* frame)
+{
+ if (InspectorResourceAgent* resourceAgent = retrieveResourceAgent(inspectorController))
+ resourceAgent->frameDetachedFromParent(frame);
+}
+
+void InspectorInstrumentation::didCommitLoadImpl(InspectorController* inspectorController, DocumentLoader* loader)
+{
+ inspectorController->didCommitLoad(loader);
+}
+
InspectorInstrumentationCookie InspectorInstrumentation::willWriteHTMLImpl(InspectorController* inspectorController, unsigned int length, unsigned int startLine)
{
int timelineAgentId = 0;
@@ -423,6 +512,74 @@ void InspectorInstrumentation::didWriteHTMLImpl(const InspectorInstrumentationCo
timelineAgent->didWriteHTML(endLine);
}
+void InspectorInstrumentation::addMessageToConsoleImpl(InspectorController* inspectorController, MessageSource source, MessageType type, MessageLevel level, const String& message, ScriptArguments* arguments, ScriptCallStack* callStack)
+{
+ inspectorController->consoleAgent()->addMessageToConsole(source, type, level, message, arguments, callStack);
+}
+
+void InspectorInstrumentation::addMessageToConsoleImpl(InspectorController* inspectorController, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID)
+{
+ inspectorController->consoleAgent()->addMessageToConsole(source, type, level, message, lineNumber, sourceID);
+}
+
+void InspectorInstrumentation::consoleCountImpl(InspectorController* inspectorController, ScriptArguments* arguments, ScriptCallStack* stack)
+{
+ inspectorController->consoleAgent()->count(arguments, stack);
+}
+
+void InspectorInstrumentation::startConsoleTimingImpl(InspectorController* inspectorController, const String& title)
+{
+ inspectorController->consoleAgent()->startTiming(title);
+}
+
+void InspectorInstrumentation::stopConsoleTimingImpl(InspectorController* inspectorController, const String& title, ScriptCallStack* stack)
+{
+ inspectorController->consoleAgent()->stopTiming(title, stack);
+}
+
+void InspectorInstrumentation::consoleMarkTimelineImpl(InspectorController* inspectorController, ScriptArguments* arguments)
+{
+ if (InspectorTimelineAgent* timelineAgent = retrieveTimelineAgent(inspectorController)) {
+ String message;
+ arguments->getFirstArgumentAsString(message);
+ timelineAgent->didMarkTimeline(message);
+ }
+}
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+void InspectorInstrumentation::addStartProfilingMessageToConsoleImpl(InspectorController* inspectorController, const String& title, unsigned lineNumber, const String& sourceURL)
+{
+ if (InspectorProfilerAgent* profilerAgent = inspectorController->m_profilerAgent.get())
+ profilerAgent->addStartProfilingMessageToConsole(title, lineNumber, sourceURL);
+}
+#endif
+
+#if ENABLE(DATABASE)
+void InspectorInstrumentation::didOpenDatabaseImpl(InspectorController* inspectorController, Database* database, const String& domain, const String& name, const String& version)
+{
+ inspectorController->didOpenDatabase(database, domain, name, version);
+}
+#endif
+
+#if ENABLE(DOM_STORAGE)
+void InspectorInstrumentation::didUseDOMStorageImpl(InspectorController* inspectorController, StorageArea* storageArea, bool isLocalStorage, Frame* frame)
+{
+ inspectorController->didUseDOMStorage(storageArea, isLocalStorage, frame);
+}
+#endif
+
+#if ENABLE(WORKERS)
+void InspectorInstrumentation::didCreateWorkerImpl(InspectorController* inspectorController, intptr_t id, const String& url, bool isSharedWorker)
+{
+ inspectorController->didCreateWorker(id, url, isSharedWorker);
+}
+
+void InspectorInstrumentation::didDestroyWorkerImpl(InspectorController* inspectorController, intptr_t id)
+{
+ inspectorController->didDestroyWorker(id);
+}
+#endif
+
#if ENABLE(WEB_SOCKETS)
void InspectorInstrumentation::didCreateWebSocketImpl(InspectorController* inspectorController, unsigned long identifier, const KURL& requestURL, const KURL& documentURL)
{
@@ -445,6 +602,20 @@ void InspectorInstrumentation::didCloseWebSocketImpl(InspectorController* inspec
}
#endif
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+void InspectorInstrumentation::networkStateChangedImpl(InspectorController* ic)
+{
+ if (InspectorApplicationCacheAgent* applicationCacheAgent = ic->applicationCacheAgent())
+ applicationCacheAgent->networkStateChanged();
+}
+
+void InspectorInstrumentation::updateApplicationCacheStatusImpl(InspectorController* ic, Frame* frame)
+{
+ if (InspectorApplicationCacheAgent* applicationCacheAgent = ic->applicationCacheAgent())
+ applicationCacheAgent->updateApplicationCacheStatus(frame);
+}
+#endif
+
bool InspectorInstrumentation::hasFrontend(InspectorController* inspectorController)
{
return inspectorController->hasFrontend();
@@ -453,19 +624,8 @@ bool InspectorInstrumentation::hasFrontend(InspectorController* inspectorControl
void InspectorInstrumentation::pauseOnNativeEventIfNeeded(InspectorController* inspectorController, const String& categoryType, const String& eventName, bool synchronous)
{
#if ENABLE(JAVASCRIPT_DEBUGGER)
- InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get();
- if (!debuggerAgent)
- return;
- String fullEventName = String::format("%s:%s", categoryType.utf8().data(), eventName.utf8().data());
- if (!inspectorController->hasEventListenerBreakpoint(fullEventName))
- return;
- RefPtr<InspectorObject> eventData = InspectorObject::create();
- eventData->setString("breakpointType", eventListenerNativeBreakpointType);
- eventData->setString("eventName", fullEventName);
- if (synchronous)
- debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData);
- else
- debuggerAgent->schedulePauseOnNextStatement(NativeBreakpointDebuggerEventType, eventData);
+ if (InspectorBrowserDebuggerAgent* browserDebuggerAgent = inspectorController->m_browserDebuggerAgent.get())
+ browserDebuggerAgent->pauseOnNativeEventIfNeeded(categoryType, eventName, synchronous);
#endif
}
@@ -490,6 +650,11 @@ InspectorTimelineAgent* InspectorInstrumentation::retrieveTimelineAgent(const In
return 0;
}
+InspectorResourceAgent* InspectorInstrumentation::retrieveResourceAgent(InspectorController* ic)
+{
+ return ic->m_resourceAgent.get();
+}
+
} // namespace WebCore
#endif // !ENABLE(INSPECTOR)
diff --git a/Source/WebCore/inspector/InspectorInstrumentation.h b/Source/WebCore/inspector/InspectorInstrumentation.h
index 9c69055..28867cb 100644
--- a/Source/WebCore/inspector/InspectorInstrumentation.h
+++ b/Source/WebCore/inspector/InspectorInstrumentation.h
@@ -31,22 +31,34 @@
#ifndef InspectorInstrumentation_h
#define InspectorInstrumentation_h
+#include "Console.h"
#include "Frame.h"
#include "Page.h"
#include "ScriptExecutionContext.h"
+#include <wtf/PassRefPtr.h>
+
namespace WebCore {
class CharacterData;
+class DOMWrapperWorld;
+class Database;
class Document;
class Element;
class EventContext;
+class DocumentLoader;
+class HitTestResult;
class InspectorController;
+class InspectorResourceAgent;
class InspectorTimelineAgent;
class KURL;
class Node;
class ResourceRequest;
class ResourceResponse;
+class ScriptArguments;
+class ScriptCallStack;
+class ScriptExecutionContext;
+class StorageArea;
class XMLHttpRequest;
#if ENABLE(WEB_SOCKETS)
@@ -58,6 +70,9 @@ typedef pair<InspectorController*, int> InspectorInstrumentationCookie;
class InspectorInstrumentation {
public:
+ static void didClearWindowObjectInWorld(Frame*, DOMWrapperWorld*);
+ static void inspectedPageDestroyed(Page*);
+
static void willInsertDOMNode(Document*, Node*, Node* parent);
static void didInsertDOMNode(Document*, Node*);
static void willRemoveDOMNode(Document*, Node*);
@@ -65,6 +80,9 @@ public:
static void didModifyDOMAttr(Document*, Element*);
static void characterDataModified(Document*, CharacterData*);
+ static void mouseDidMoveOverElement(Page*, const HitTestResult&, unsigned modifierFlags);
+ static bool handleMousePress(Page*);
+
static void willSendXMLHttpRequest(ScriptExecutionContext*, const String& url);
static void didScheduleResourceRequest(Document*, const String& url);
static void didInstallTimer(ScriptExecutionContext*, int timerId, int timeout, bool singleShot);
@@ -90,13 +108,52 @@ public:
static void didPaint(const InspectorInstrumentationCookie&);
static InspectorInstrumentationCookie willRecalculateStyle(Document*);
static void didRecalculateStyle(const InspectorInstrumentationCookie&);
+
+ static void identifierForInitialRequest(Frame*, unsigned long identifier, DocumentLoader*, const ResourceRequest&);
+ static void willSendRequest(Frame*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
+ static void markResourceAsCached(Page*, unsigned long identifier);
+ static void didLoadResourceFromMemoryCache(Page*, DocumentLoader*, const CachedResource*);
static InspectorInstrumentationCookie willReceiveResourceData(Frame*, unsigned long identifier);
static void didReceiveResourceData(const InspectorInstrumentationCookie&);
- static InspectorInstrumentationCookie willReceiveResourceResponse(Frame*, unsigned long identifier, const ResourceResponse& response);
- static void didReceiveResourceResponse(const InspectorInstrumentationCookie&);
+ static InspectorInstrumentationCookie willReceiveResourceResponse(Frame*, unsigned long identifier, const ResourceResponse&);
+ static void didReceiveResourceResponse(const InspectorInstrumentationCookie&, unsigned long identifier, DocumentLoader*, const ResourceResponse&);
+ static void didReceiveContentLength(Frame*, unsigned long identifier, int lengthReceived);
+ static void didFinishLoading(Frame*, unsigned long identifier, double finishTime);
+ static void didFailLoading(Frame*, unsigned long identifier, const ResourceError&);
+ static void resourceRetrievedByXMLHttpRequest(ScriptExecutionContext*, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber);
+ static void scriptImported(ScriptExecutionContext*, unsigned long identifier, const String& sourceString);
+ static void mainResourceFiredLoadEvent(Frame*, const KURL&);
+ static void mainResourceFiredDOMContentEvent(Frame*, const KURL&);
+ static void frameDetachedFromParent(Frame*);
+ static void didCommitLoad(Frame*, DocumentLoader*);
+
static InspectorInstrumentationCookie willWriteHTML(Document*, unsigned int length, unsigned int startLine);
static void didWriteHTML(const InspectorInstrumentationCookie&, unsigned int endLine);
+ static void addMessageToConsole(Page*, MessageSource, MessageType, MessageLevel, const String& message, ScriptArguments*, ScriptCallStack*);
+ static void addMessageToConsole(Page*, MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String&);
+ static void consoleCount(Page*, ScriptArguments*, ScriptCallStack*);
+ static void startConsoleTiming(Page*, const String& title);
+ static void stopConsoleTiming(Page*, const String& title, ScriptCallStack*);
+ static void consoleMarkTimeline(Page*, ScriptArguments*);
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ static void addStartProfilingMessageToConsole(Page*, const String& title, unsigned lineNumber, const String& sourceURL);
+#endif
+
+#if ENABLE(DATABASE)
+ static void didOpenDatabase(ScriptExecutionContext*, Database*, const String& domain, const String& name, const String& version);
+#endif
+
+#if ENABLE(DOM_STORAGE)
+ static void didUseDOMStorage(Page*, StorageArea*, bool isLocalStorage, Frame*);
+#endif
+
+#if ENABLE(WORKERS)
+ static void didCreateWorker(ScriptExecutionContext*, intptr_t id, const String& url, bool isSharedWorker);
+ static void didDestroyWorker(ScriptExecutionContext*, intptr_t id);
+#endif
+
#if ENABLE(WEB_SOCKETS)
static void didCreateWebSocket(ScriptExecutionContext*, unsigned long identifier, const KURL& requestURL, const KURL& documentURL);
static void willSendWebSocketHandshakeRequest(ScriptExecutionContext*, unsigned long identifier, const WebSocketHandshakeRequest&);
@@ -104,6 +161,12 @@ public:
static void didCloseWebSocket(ScriptExecutionContext*, unsigned long identifier);
#endif
+ static void networkStateChanged(Page*);
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ static void updateApplicationCacheStatus(Frame*);
+#endif
+
#if ENABLE(INSPECTOR)
static void frontendCreated() { s_frontendCounter += 1; }
static void frontendDeleted() { s_frontendCounter -= 1; }
@@ -114,6 +177,9 @@ public:
private:
#if ENABLE(INSPECTOR)
+ static void didClearWindowObjectInWorldImpl(InspectorController*, Frame*, DOMWrapperWorld*);
+ static void inspectedPageDestroyedImpl(InspectorController*);
+
static void willInsertDOMNodeImpl(InspectorController*, Node* node, Node* parent);
static void didInsertDOMNodeImpl(InspectorController*, Node*);
static void willRemoveDOMNodeImpl(InspectorController*, Node*);
@@ -122,6 +188,9 @@ private:
static void didModifyDOMAttrImpl(InspectorController*, Element*);
static void characterDataModifiedImpl(InspectorController*, CharacterData*);
+ static void mouseDidMoveOverElementImpl(InspectorController*, const HitTestResult&, unsigned modifierFlags);
+ static bool handleMousePressImpl(InspectorController*);
+
static void willSendXMLHttpRequestImpl(InspectorController*, const String& url);
static void didScheduleResourceRequestImpl(InspectorController*, const String& url);
static void didInstallTimerImpl(InspectorController*, int timerId, int timeout, bool singleShot);
@@ -147,13 +216,51 @@ private:
static void didPaintImpl(const InspectorInstrumentationCookie&);
static InspectorInstrumentationCookie willRecalculateStyleImpl(InspectorController*);
static void didRecalculateStyleImpl(const InspectorInstrumentationCookie&);
+ static void identifierForInitialRequestImpl(InspectorController*, unsigned long identifier, DocumentLoader*, const ResourceRequest&);
+ static void willSendRequestImpl(InspectorController*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse);
+ static void markResourceAsCachedImpl(InspectorController*, unsigned long identifier);
+ static void didLoadResourceFromMemoryCacheImpl(InspectorController*, DocumentLoader*, const CachedResource*);
static InspectorInstrumentationCookie willReceiveResourceDataImpl(InspectorController*, unsigned long identifier);
static void didReceiveResourceDataImpl(const InspectorInstrumentationCookie&);
- static InspectorInstrumentationCookie willReceiveResourceResponseImpl(InspectorController*, unsigned long identifier, const ResourceResponse& response);
- static void didReceiveResourceResponseImpl(const InspectorInstrumentationCookie&);
+ static InspectorInstrumentationCookie willReceiveResourceResponseImpl(InspectorController*, unsigned long identifier, const ResourceResponse&);
+ static void didReceiveResourceResponseImpl(const InspectorInstrumentationCookie&, unsigned long identifier, DocumentLoader*, const ResourceResponse&);
+ static void didReceiveContentLengthImpl(InspectorController*, unsigned long identifier, int lengthReceived);
+ static void didFinishLoadingImpl(InspectorController*, unsigned long identifier, double finishTime);
+ static void didFailLoadingImpl(InspectorController*, unsigned long identifier, const ResourceError&);
+ static void resourceRetrievedByXMLHttpRequestImpl(InspectorController*, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber);
+ static void scriptImportedImpl(InspectorController*, unsigned long identifier, const String& sourceString);
+ static void mainResourceFiredLoadEventImpl(InspectorController*, Frame*, const KURL&);
+ static void mainResourceFiredDOMContentEventImpl(InspectorController*, Frame*, const KURL&);
+ static void frameDetachedFromParentImpl(InspectorController*, Frame*);
+ static void didCommitLoadImpl(InspectorController*, DocumentLoader*);
+
static InspectorInstrumentationCookie willWriteHTMLImpl(InspectorController*, unsigned int length, unsigned int startLine);
static void didWriteHTMLImpl(const InspectorInstrumentationCookie&, unsigned int endLine);
+ static void addMessageToConsoleImpl(InspectorController*, MessageSource, MessageType, MessageLevel, const String& message, ScriptArguments*, ScriptCallStack*);
+ static void addMessageToConsoleImpl(InspectorController*, MessageSource, MessageType, MessageLevel, const String& message, unsigned lineNumber, const String& sourceID);
+ static void consoleCountImpl(InspectorController*, ScriptArguments*, ScriptCallStack*);
+ static void startConsoleTimingImpl(InspectorController*, const String& title);
+ static void stopConsoleTimingImpl(InspectorController*, const String& title, ScriptCallStack*);
+ static void consoleMarkTimelineImpl(InspectorController*, ScriptArguments*);
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+ static void addStartProfilingMessageToConsoleImpl(InspectorController*, const String& title, unsigned lineNumber, const String& sourceURL);
+#endif
+
+#if ENABLE(DATABASE)
+ static void didOpenDatabaseImpl(InspectorController*, Database*, const String& domain, const String& name, const String& version);
+#endif
+
+#if ENABLE(DOM_STORAGE)
+ static void didUseDOMStorageImpl(InspectorController*, StorageArea*, bool isLocalStorage, Frame*);
+#endif
+
+#if ENABLE(WORKERS)
+ static void didCreateWorkerImpl(InspectorController*, intptr_t id, const String& url, bool isSharedWorker);
+ static void didDestroyWorkerImpl(InspectorController*, intptr_t id);
+#endif
+
#if ENABLE(WEB_SOCKETS)
static void didCreateWebSocketImpl(InspectorController*, unsigned long identifier, const KURL& requestURL, const KURL& documentURL);
static void willSendWebSocketHandshakeRequestImpl(InspectorController*, unsigned long identifier, const WebSocketHandshakeRequest&);
@@ -161,25 +268,50 @@ private:
static void didCloseWebSocketImpl(InspectorController*, unsigned long identifier);
#endif
- static InspectorController* inspectorControllerForContext(ScriptExecutionContext*);
- static InspectorController* inspectorControllerForDocument(Document*);
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ static void networkStateChangedImpl(InspectorController*);
+ static void updateApplicationCacheStatusImpl(InspectorController*, Frame*);
+#endif
+
static InspectorController* inspectorControllerForFrame(Frame*);
+ static InspectorController* inspectorControllerForContext(ScriptExecutionContext*);
static InspectorController* inspectorControllerForPage(Page*);
+ static InspectorController* inspectorControllerWithFrontendForContext(ScriptExecutionContext*);
+ static InspectorController* inspectorControllerWithFrontendForDocument(Document*);
+ static InspectorController* inspectorControllerWithFrontendForFrame(Frame*);
+ static InspectorController* inspectorControllerWithFrontendForPage(Page*);
static bool hasFrontend(InspectorController*);
static void pauseOnNativeEventIfNeeded(InspectorController*, const String& categoryType, const String& eventName, bool synchronous);
static void cancelPauseOnNativeEvent(InspectorController*);
static InspectorTimelineAgent* retrieveTimelineAgent(InspectorController*);
static InspectorTimelineAgent* retrieveTimelineAgent(const InspectorInstrumentationCookie&);
+ static InspectorResourceAgent* retrieveResourceAgent(InspectorController*);
static int s_frontendCounter;
#endif
};
+inline void InspectorInstrumentation::didClearWindowObjectInWorld(Frame* frame, DOMWrapperWorld* world)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ didClearWindowObjectInWorldImpl(inspectorController, frame, world);
+#endif
+}
+
+inline void InspectorInstrumentation::inspectedPageDestroyed(Page* page)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ inspectedPageDestroyedImpl(inspectorController);
+#endif
+}
+
inline void InspectorInstrumentation::willInsertDOMNode(Document* document, Node* node, Node* parent)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
willInsertDOMNodeImpl(inspectorController, node, parent);
#endif
}
@@ -187,7 +319,7 @@ inline void InspectorInstrumentation::willInsertDOMNode(Document* document, Node
inline void InspectorInstrumentation::didInsertDOMNode(Document* document, Node* node)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
didInsertDOMNodeImpl(inspectorController, node);
#endif
}
@@ -195,7 +327,7 @@ inline void InspectorInstrumentation::didInsertDOMNode(Document* document, Node*
inline void InspectorInstrumentation::willRemoveDOMNode(Document* document, Node* node)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document)) {
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document)) {
willRemoveDOMNodeImpl(inspectorController, node);
didRemoveDOMNodeImpl(inspectorController, node);
}
@@ -205,7 +337,7 @@ inline void InspectorInstrumentation::willRemoveDOMNode(Document* document, Node
inline void InspectorInstrumentation::willModifyDOMAttr(Document* document, Element* element)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
willModifyDOMAttrImpl(inspectorController, element);
#endif
}
@@ -213,15 +345,32 @@ inline void InspectorInstrumentation::willModifyDOMAttr(Document* document, Elem
inline void InspectorInstrumentation::didModifyDOMAttr(Document* document, Element* element)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
didModifyDOMAttrImpl(inspectorController, element);
#endif
}
+inline void InspectorInstrumentation::mouseDidMoveOverElement(Page* page, const HitTestResult& result, unsigned modifierFlags)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForPage(page))
+ mouseDidMoveOverElementImpl(inspectorController, result, modifierFlags);
+#endif
+}
+
+inline bool InspectorInstrumentation::handleMousePress(Page* page)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForPage(page))
+ return handleMousePressImpl(inspectorController);
+#endif
+ return false;
+}
+
inline void InspectorInstrumentation::characterDataModified(Document* document, CharacterData* characterData)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
characterDataModifiedImpl(inspectorController, characterData);
#endif
}
@@ -229,7 +378,7 @@ inline void InspectorInstrumentation::characterDataModified(Document* document,
inline void InspectorInstrumentation::willSendXMLHttpRequest(ScriptExecutionContext* context, const String& url)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
willSendXMLHttpRequestImpl(inspectorController, url);
#endif
}
@@ -237,7 +386,7 @@ inline void InspectorInstrumentation::willSendXMLHttpRequest(ScriptExecutionCont
inline void InspectorInstrumentation::didScheduleResourceRequest(Document* document, const String& url)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
didScheduleResourceRequestImpl(inspectorController, url);
#endif
}
@@ -245,7 +394,7 @@ inline void InspectorInstrumentation::didScheduleResourceRequest(Document* docum
inline void InspectorInstrumentation::didInstallTimer(ScriptExecutionContext* context, int timerId, int timeout, bool singleShot)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
didInstallTimerImpl(inspectorController, timerId, timeout, singleShot);
#endif
}
@@ -253,7 +402,7 @@ inline void InspectorInstrumentation::didInstallTimer(ScriptExecutionContext* co
inline void InspectorInstrumentation::didRemoveTimer(ScriptExecutionContext* context, int timerId)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
didRemoveTimerImpl(inspectorController, timerId);
#endif
}
@@ -262,7 +411,7 @@ inline void InspectorInstrumentation::didRemoveTimer(ScriptExecutionContext* con
inline InspectorInstrumentationCookie InspectorInstrumentation::willCallFunction(Frame* frame, const String& scriptName, int scriptLine)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willCallFunctionImpl(inspectorController, scriptName, scriptLine);
#endif
return InspectorInstrumentationCookie();
@@ -279,7 +428,7 @@ inline void InspectorInstrumentation::didCallFunction(const InspectorInstrumenta
inline InspectorInstrumentationCookie InspectorInstrumentation::willChangeXHRReadyState(ScriptExecutionContext* context, XMLHttpRequest* request)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
return willChangeXHRReadyStateImpl(inspectorController, request);
#endif
return InspectorInstrumentationCookie();
@@ -296,7 +445,7 @@ inline void InspectorInstrumentation::didChangeXHRReadyState(const InspectorInst
inline InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEvent(Document* document, const Event& event, DOMWindow* window, Node* node, const Vector<EventContext>& ancestors)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
return willDispatchEventImpl(inspectorController, event, window, node, ancestors);
#endif
return InspectorInstrumentationCookie();
@@ -313,7 +462,7 @@ inline void InspectorInstrumentation::didDispatchEvent(const InspectorInstrument
inline InspectorInstrumentationCookie InspectorInstrumentation::willDispatchEventOnWindow(Frame* frame, const Event& event, DOMWindow* window)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willDispatchEventOnWindowImpl(inspectorController, event, window);
#endif
return InspectorInstrumentationCookie();
@@ -330,7 +479,7 @@ inline void InspectorInstrumentation::didDispatchEventOnWindow(const InspectorIn
inline InspectorInstrumentationCookie InspectorInstrumentation::willEvaluateScript(Frame* frame, const String& url, int lineNumber)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willEvaluateScriptImpl(inspectorController, url, lineNumber);
#endif
return InspectorInstrumentationCookie();
@@ -347,7 +496,7 @@ inline void InspectorInstrumentation::didEvaluateScript(const InspectorInstrumen
inline InspectorInstrumentationCookie InspectorInstrumentation::willFireTimer(ScriptExecutionContext* context, int timerId)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
return willFireTimerImpl(inspectorController, timerId);
#endif
return InspectorInstrumentationCookie();
@@ -364,7 +513,7 @@ inline void InspectorInstrumentation::didFireTimer(const InspectorInstrumentatio
inline InspectorInstrumentationCookie InspectorInstrumentation::willLayout(Frame* frame)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willLayoutImpl(inspectorController);
#endif
return InspectorInstrumentationCookie();
@@ -381,7 +530,7 @@ inline void InspectorInstrumentation::didLayout(const InspectorInstrumentationCo
inline InspectorInstrumentationCookie InspectorInstrumentation::willLoadXHR(ScriptExecutionContext* context, XMLHttpRequest* request)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
return willLoadXHRImpl(inspectorController, request);
#endif
return InspectorInstrumentationCookie();
@@ -398,7 +547,7 @@ inline void InspectorInstrumentation::didLoadXHR(const InspectorInstrumentationC
inline InspectorInstrumentationCookie InspectorInstrumentation::willPaint(Frame* frame, const IntRect& rect)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willPaintImpl(inspectorController, rect);
#endif
return InspectorInstrumentationCookie();
@@ -415,7 +564,7 @@ inline void InspectorInstrumentation::didPaint(const InspectorInstrumentationCoo
inline InspectorInstrumentationCookie InspectorInstrumentation::willRecalculateStyle(Document* document)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
return willRecalculateStyleImpl(inspectorController);
#endif
return InspectorInstrumentationCookie();
@@ -429,10 +578,43 @@ inline void InspectorInstrumentation::didRecalculateStyle(const InspectorInstrum
#endif
}
+inline void InspectorInstrumentation::identifierForInitialRequest(Frame* frame, unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
+{
+#if ENABLE(INSPECTOR)
+ // This notification should be procecessed even in cases there is no frontend.
+ if (!frame)
+ return;
+ if (InspectorController* ic = inspectorControllerForPage(frame->page()))
+ identifierForInitialRequestImpl(ic, identifier, loader, request);
+#endif
+}
+
+inline void InspectorInstrumentation::willSendRequest(Frame* frame, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* ic = inspectorControllerWithFrontendForFrame(frame))
+ willSendRequestImpl(ic, identifier, request, redirectResponse);
+#endif
+}
+
+inline void InspectorInstrumentation::markResourceAsCached(Page* page, unsigned long identifier)
+{
+#if ENABLE(INSPECTOR)
+ markResourceAsCachedImpl(inspectorControllerForPage(page), identifier);
+#endif
+}
+
+inline void InspectorInstrumentation::didLoadResourceFromMemoryCache(Page* page, DocumentLoader* loader, const CachedResource* resource)
+{
+#if ENABLE(INSPECTOR)
+ didLoadResourceFromMemoryCacheImpl(inspectorControllerForPage(page), loader, resource);
+#endif
+}
+
inline InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceData(Frame* frame, unsigned long identifier)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willReceiveResourceDataImpl(inspectorController, identifier);
#endif
return InspectorInstrumentationCookie();
@@ -449,24 +631,96 @@ inline void InspectorInstrumentation::didReceiveResourceData(const InspectorInst
inline InspectorInstrumentationCookie InspectorInstrumentation::willReceiveResourceResponse(Frame* frame, unsigned long identifier, const ResourceResponse& response)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
return willReceiveResourceResponseImpl(inspectorController, identifier, response);
#endif
return InspectorInstrumentationCookie();
}
-inline void InspectorInstrumentation::didReceiveResourceResponse(const InspectorInstrumentationCookie& cookie)
+inline void InspectorInstrumentation::didReceiveResourceResponse(const InspectorInstrumentationCookie& cookie, unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response)
{
#if ENABLE(INSPECTOR)
if (hasFrontends() && cookie.first)
- didReceiveResourceResponseImpl(cookie);
+ didReceiveResourceResponseImpl(cookie, identifier, loader, response);
+#endif
+}
+
+inline void InspectorInstrumentation::didReceiveContentLength(Frame* frame, unsigned long identifier, int lengthReceived)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ didReceiveContentLengthImpl(inspectorController, identifier, lengthReceived);
+#endif
+}
+
+inline void InspectorInstrumentation::didFinishLoading(Frame* frame, unsigned long identifier, double finishTime)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ didFinishLoadingImpl(inspectorController, identifier, finishTime);
+#endif
+}
+
+inline void InspectorInstrumentation::didFailLoading(Frame* frame, unsigned long identifier, const ResourceError& error)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ didFailLoadingImpl(inspectorController, identifier, error);
+#endif
+}
+
+inline void InspectorInstrumentation::resourceRetrievedByXMLHttpRequest(ScriptExecutionContext* context, unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ resourceRetrievedByXMLHttpRequestImpl(inspectorController, identifier, sourceString, url, sendURL, sendLineNumber);
+#endif
+}
+
+inline void InspectorInstrumentation::scriptImported(ScriptExecutionContext* context, unsigned long identifier, const String& sourceString)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ scriptImportedImpl(inspectorController, identifier, sourceString);
+#endif
+}
+
+inline void InspectorInstrumentation::mainResourceFiredLoadEvent(Frame* frame, const KURL& url)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ mainResourceFiredLoadEventImpl(inspectorController, frame, url);
+#endif
+}
+
+inline void InspectorInstrumentation::mainResourceFiredDOMContentEvent(Frame* frame, const KURL& url)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ mainResourceFiredDOMContentEventImpl(inspectorController, frame, url);
+#endif
+}
+
+inline void InspectorInstrumentation::frameDetachedFromParent(Frame* frame)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ frameDetachedFromParentImpl(inspectorController, frame);
+#endif
+}
+
+inline void InspectorInstrumentation::didCommitLoad(Frame* frame, DocumentLoader* loader)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForFrame(frame))
+ didCommitLoadImpl(inspectorController, loader);
#endif
}
inline InspectorInstrumentationCookie InspectorInstrumentation::willWriteHTML(Document* document, unsigned int length, unsigned int startLine)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForDocument(document))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForDocument(document))
return willWriteHTMLImpl(inspectorController, length, startLine);
#endif
return InspectorInstrumentationCookie();
@@ -480,11 +734,50 @@ inline void InspectorInstrumentation::didWriteHTML(const InspectorInstrumentatio
#endif
}
+#if ENABLE(DATABASE)
+inline void InspectorInstrumentation::didOpenDatabase(ScriptExecutionContext* context, Database* database, const String& domain, const String& name, const String& version)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ didOpenDatabaseImpl(inspectorController, database, domain, name, version);
+#endif
+}
+#endif
+
+#if ENABLE(DOM_STORAGE)
+inline void InspectorInstrumentation::didUseDOMStorage(Page* page, StorageArea* storageArea, bool isLocalStorage, Frame* frame)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ didUseDOMStorageImpl(inspectorController, storageArea, isLocalStorage, frame);
+#endif
+}
+#endif
+
+#if ENABLE(WORKERS)
+inline void InspectorInstrumentation::didCreateWorker(ScriptExecutionContext* context, intptr_t id, const String& url, bool isSharedWorker)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
+ didCreateWorkerImpl(inspectorController, id, url, isSharedWorker);
+#endif
+}
+
+inline void InspectorInstrumentation::didDestroyWorker(ScriptExecutionContext* context, intptr_t id)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
+ didDestroyWorkerImpl(inspectorController, id);
+#endif
+}
+#endif
+
+
#if ENABLE(WEB_SOCKETS)
inline void InspectorInstrumentation::didCreateWebSocket(ScriptExecutionContext* context, unsigned long identifier, const KURL& requestURL, const KURL& documentURL)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
didCreateWebSocketImpl(inspectorController, identifier, requestURL, documentURL);
#endif
}
@@ -492,7 +785,7 @@ inline void InspectorInstrumentation::didCreateWebSocket(ScriptExecutionContext*
inline void InspectorInstrumentation::willSendWebSocketHandshakeRequest(ScriptExecutionContext* context, unsigned long identifier, const WebSocketHandshakeRequest& request)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
willSendWebSocketHandshakeRequestImpl(inspectorController, identifier, request);
#endif
}
@@ -500,7 +793,7 @@ inline void InspectorInstrumentation::willSendWebSocketHandshakeRequest(ScriptEx
inline void InspectorInstrumentation::didReceiveWebSocketHandshakeResponse(ScriptExecutionContext* context, unsigned long identifier, const WebSocketHandshakeResponse& response)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
didReceiveWebSocketHandshakeResponseImpl(inspectorController, identifier, response);
#endif
}
@@ -508,38 +801,135 @@ inline void InspectorInstrumentation::didReceiveWebSocketHandshakeResponse(Scrip
inline void InspectorInstrumentation::didCloseWebSocket(ScriptExecutionContext* context, unsigned long identifier)
{
#if ENABLE(INSPECTOR)
- if (InspectorController* inspectorController = inspectorControllerForContext(context))
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForContext(context))
didCloseWebSocketImpl(inspectorController, identifier);
#endif
}
#endif
+inline void InspectorInstrumentation::networkStateChanged(Page* page)
+{
+#if ENABLE(INSPECTOR) && ENABLE(OFFLINE_WEB_APPLICATIONS)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForPage(page))
+ networkStateChangedImpl(inspectorController);
+#endif
+}
+
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+inline void InspectorInstrumentation::updateApplicationCacheStatus(Frame* frame)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForFrame(frame))
+ updateApplicationCacheStatusImpl(inspectorController, frame);
+#endif
+}
+#endif
+
+inline void InspectorInstrumentation::addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, ScriptArguments* arguments, ScriptCallStack* callStack)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ addMessageToConsoleImpl(inspectorController, source, type, level, message, arguments, callStack);
+#endif
+}
+
+inline void InspectorInstrumentation::addMessageToConsole(Page* page, MessageSource source, MessageType type, MessageLevel level, const String& message, unsigned lineNumber, const String& sourceID)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ addMessageToConsoleImpl(inspectorController, source, type, level, message, lineNumber, sourceID);
+#endif
+}
+
+inline void InspectorInstrumentation::consoleCount(Page* page, ScriptArguments* arguments, ScriptCallStack* stack)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ consoleCountImpl(inspectorController, arguments, stack);
+#endif
+}
+
+inline void InspectorInstrumentation::startConsoleTiming(Page* page, const String& title)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ startConsoleTimingImpl(inspectorController, title);
+#endif
+}
+
+inline void InspectorInstrumentation::stopConsoleTiming(Page* page, const String& title, ScriptCallStack* stack)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ stopConsoleTimingImpl(inspectorController, title, stack);
+#endif
+}
+
+inline void InspectorInstrumentation::consoleMarkTimeline(Page* page, ScriptArguments* arguments)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerWithFrontendForPage(page))
+ consoleMarkTimelineImpl(inspectorController, arguments);
+#endif
+}
+
+#if ENABLE(JAVASCRIPT_DEBUGGER)
+inline void InspectorInstrumentation::addStartProfilingMessageToConsole(Page* page, const String& title, unsigned lineNumber, const String& sourceURL)
+{
+#if ENABLE(INSPECTOR)
+ if (InspectorController* inspectorController = inspectorControllerForPage(page))
+ addStartProfilingMessageToConsoleImpl(inspectorController, title, lineNumber, sourceURL);
+#endif
+}
+#endif
+
#if ENABLE(INSPECTOR)
inline InspectorController* InspectorInstrumentation::inspectorControllerForContext(ScriptExecutionContext* context)
{
- if (hasFrontends() && context && context->isDocument())
+ if (context && context->isDocument())
return inspectorControllerForPage(static_cast<Document*>(context)->page());
return 0;
}
-inline InspectorController* InspectorInstrumentation::inspectorControllerForDocument(Document* document)
+inline InspectorController* InspectorInstrumentation::inspectorControllerForFrame(Frame* frame)
+{
+ if (frame)
+ return inspectorControllerForPage(frame->page());
+ return 0;
+}
+
+inline InspectorController* InspectorInstrumentation::inspectorControllerForPage(Page* page)
+{
+ if (!page)
+ return 0;
+ return page->inspectorController();
+}
+
+inline InspectorController* InspectorInstrumentation::inspectorControllerWithFrontendForContext(ScriptExecutionContext* context)
+{
+ if (hasFrontends() && context && context->isDocument())
+ return inspectorControllerWithFrontendForPage(static_cast<Document*>(context)->page());
+ return 0;
+}
+
+inline InspectorController* InspectorInstrumentation::inspectorControllerWithFrontendForDocument(Document* document)
{
if (hasFrontends() && document)
- return inspectorControllerForPage(document->page());
+ return inspectorControllerWithFrontendForPage(document->page());
return 0;
}
-inline InspectorController* InspectorInstrumentation::inspectorControllerForFrame(Frame* frame)
+inline InspectorController* InspectorInstrumentation::inspectorControllerWithFrontendForFrame(Frame* frame)
{
if (hasFrontends() && frame)
- return inspectorControllerForPage(frame->page());
+ return inspectorControllerWithFrontendForPage(frame->page());
return 0;
}
-inline InspectorController* InspectorInstrumentation::inspectorControllerForPage(Page* page)
+inline InspectorController* InspectorInstrumentation::inspectorControllerWithFrontendForPage(Page* page)
{
if (page) {
- if (InspectorController* inspectorController = page->inspectorController()) {
+ if (InspectorController* inspectorController = inspectorControllerForPage(page)) {
if (hasFrontend(inspectorController))
return inspectorController;
}
diff --git a/Source/WebCore/inspector/InspectorProfilerAgent.cpp b/Source/WebCore/inspector/InspectorProfilerAgent.cpp
index ac67a1a..da9b67d 100644
--- a/Source/WebCore/inspector/InspectorProfilerAgent.cpp
+++ b/Source/WebCore/inspector/InspectorProfilerAgent.cpp
@@ -33,6 +33,7 @@
#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
#include "Console.h"
+#include "InspectorConsoleAgent.h"
#include "InspectorController.h"
#include "InspectorFrontend.h"
#include "InspectorValues.h"
@@ -90,13 +91,13 @@ void InspectorProfilerAgent::addProfileFinishedMessageToConsole(PassRefPtr<Scrip
RefPtr<ScriptProfile> profile = prpProfile;
String title = profile->title();
String message = makeString("Profile \"webkit-profile://", CPUProfileType, '/', encodeWithURLEscapeSequences(title), '#', String::number(profile->uid()), "\" finished.");
- m_inspectorController->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL);
+ m_inspectorController->consoleAgent()->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL);
}
void InspectorProfilerAgent::addStartProfilingMessageToConsole(const String& title, unsigned lineNumber, const String& sourceURL)
{
String message = makeString("Profile \"webkit-profile://", CPUProfileType, '/', encodeWithURLEscapeSequences(title), "#0\" started.");
- m_inspectorController->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL);
+ m_inspectorController->consoleAgent()->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lineNumber, sourceURL);
}
PassRefPtr<InspectorObject> InspectorProfilerAgent::createProfileHeader(const ScriptProfile& profile)
diff --git a/Source/WebCore/inspector/InspectorResourceAgent.cpp b/Source/WebCore/inspector/InspectorResourceAgent.cpp
index 9fc562c..6779790 100644
--- a/Source/WebCore/inspector/InspectorResourceAgent.cpp
+++ b/Source/WebCore/inspector/InspectorResourceAgent.cpp
@@ -132,7 +132,7 @@ CachedResource* InspectorResourceAgent::cachedResource(Frame* frame, const KURL&
{
CachedResource* cachedResource = frame->document()->cachedResourceLoader()->cachedResource(url);
if (!cachedResource)
- cachedResource = cache()->resourceForURL(url);
+ cachedResource = memoryCache()->resourceForURL(url);
return cachedResource;
}
diff --git a/Source/WebCore/inspector/InspectorSettings.cpp b/Source/WebCore/inspector/InspectorSettings.cpp
new file mode 100644
index 0000000..3ebc3ab
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorSettings.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2011 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 "InspectorSettings.h"
+
+#if ENABLE(INSPECTOR)
+
+#include "InspectorClient.h"
+
+namespace WebCore {
+
+const char* InspectorSettings::MonitoringXHREnabled = "xhrMonitor";
+const char* InspectorSettings::ProfilerAlwaysEnabled = "profilerEnabled";
+const char* InspectorSettings::DebuggerAlwaysEnabled = "debuggerEnabled";
+const char* InspectorSettings::InspectorStartsAttached = "inspectorStartsAttached";
+const char* InspectorSettings::InspectorAttachedHeight = "inspectorAttachedHeight";
+
+InspectorSettings::InspectorSettings(InspectorClient* client)
+ : m_client(client)
+{
+ registerBoolean(MonitoringXHREnabled, false);
+ registerBoolean(ProfilerAlwaysEnabled, false);
+ registerBoolean(DebuggerAlwaysEnabled, false);
+ registerBoolean(InspectorStartsAttached, true);
+ registerLong(InspectorAttachedHeight, 300);
+}
+
+bool InspectorSettings::getBoolean(const String& name)
+{
+ String value;
+ m_client->populateSetting(name, &value);
+ if (value.isEmpty())
+ value = m_defaultValues.get(name);
+ return value == "true";
+}
+
+void InspectorSettings::setBoolean(const String& name, bool value)
+{
+ m_client->storeSetting(name, value ? "true" : "false");
+}
+
+long InspectorSettings::getLong(const String& name)
+{
+ String value;
+ m_client->populateSetting(name, &value);
+ if (value.isEmpty())
+ value = m_defaultValues.get(name);
+ return value.toInt();
+}
+
+void InspectorSettings::setLong(const String& name, long value)
+{
+ m_client->storeSetting(name, String::number(value));
+}
+
+void InspectorSettings::registerBoolean(const String& name, bool defaultValue)
+{
+ m_defaultValues.set(name, defaultValue ? "true" : "false");
+}
+
+void InspectorSettings::registerLong(const String& name, long defaultValue)
+{
+ m_defaultValues.set(name, String::number(defaultValue));
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
diff --git a/Source/WebCore/inspector/InspectorSettings.h b/Source/WebCore/inspector/InspectorSettings.h
new file mode 100644
index 0000000..717d11f
--- /dev/null
+++ b/Source/WebCore/inspector/InspectorSettings.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2011 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 InspectorSettings_h
+#define InspectorSettings_h
+
+#if ENABLE(INSPECTOR)
+
+#include "PlatformString.h"
+
+#include <wtf/HashMap.h>
+#include <wtf/text/StringHash.h>
+
+namespace WebCore {
+
+class InspectorClient;
+
+class InspectorSettings {
+public:
+ static const char* MonitoringXHREnabled;
+ static const char* ProfilerAlwaysEnabled;
+ static const char* DebuggerAlwaysEnabled;
+ static const char* InspectorStartsAttached;
+ static const char* InspectorAttachedHeight;
+
+ InspectorSettings(InspectorClient* client);
+
+ bool getBoolean(const String& name);
+ void setBoolean(const String& name, bool value);
+
+ long getLong(const String& name);
+ void setLong(const String& name, long value);
+
+private:
+ void registerBoolean(const String& name, bool defaultValue);
+ void registerLong(const String& name, long defaultValue);
+
+ typedef HashMap<String, String> Dictionary;
+ Dictionary m_defaultValues;
+ InspectorClient* m_client;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
+#endif // !defined(InspectorSettings_h)
diff --git a/Source/WebCore/inspector/InspectorState.cpp b/Source/WebCore/inspector/InspectorState.cpp
index 0865648..1b74518 100644
--- a/Source/WebCore/inspector/InspectorState.cpp
+++ b/Source/WebCore/inspector/InspectorState.cpp
@@ -32,24 +32,22 @@
#if ENABLE(INSPECTOR)
#include "InspectorClient.h"
-#include "InspectorController.h"
namespace WebCore {
InspectorState::InspectorState(InspectorClient* client)
: m_client(client)
{
- registerBoolean(monitoringXHR, false, "monitoringXHREnabled", "xhrMonitor");
- registerBoolean(timelineProfilerEnabled, false, "timelineProfilerEnabled", String());
- registerBoolean(searchingForNode, false, "searchingForNodeEnabled", String());
- registerBoolean(profilerAlwaysEnabled, false, String(), "profilerEnabled");
- registerBoolean(debuggerAlwaysEnabled, false, String(), "debuggerEnabled");
- registerBoolean(inspectorStartsAttached, true, String(), "InspectorStartsAttached");
- registerLong(inspectorAttachedHeight, InspectorController::defaultAttachedHeight, String(), "inspectorAttachedHeight");
- registerLong(pauseOnExceptionsState, 0, "pauseOnExceptionsState", String());
- registerBoolean(consoleMessagesEnabled, false, "consoleMessagesEnabled", String());
- registerBoolean(userInitiatedProfiling, false, "userInitiatedProfiling", String());
- registerObject(stickyBreakpoints, String(), String());
+ // Pure reload state
+ registerBoolean(userInitiatedProfiling, false, String());
+ registerBoolean(timelineProfilerEnabled, false, String());
+ registerBoolean(searchingForNode, false, String());
+ registerObject(stickyBreakpoints, String());
+
+ // Should go away
+ registerBoolean(consoleMessagesEnabled, false, "consoleMessagesEnabled");
+ registerBoolean(monitoringXHR, false, "monitoringXHREnabled");
+ registerLong(pauseOnExceptionsState, 0, "pauseOnExceptionsState");
}
void InspectorState::restoreFromInspectorCookie(const String& json)
@@ -82,32 +80,6 @@ PassRefPtr<InspectorObject> InspectorState::generateStateObjectForFrontend()
return stateObject.release();
}
-void InspectorState::loadFromSettings()
-{
- for (PropertyMap::iterator i = m_properties.begin(); i != m_properties.end(); ++i) {
- if (i->second.m_preferenceName.length()) {
- String value;
- m_client->populateSetting(i->second.m_preferenceName, &value);
- switch (i->second.m_value->type()) {
- case InspectorValue::TypeBoolean:
- if (value.length())
- i->second.m_value = InspectorBasicValue::create(value == "true");
- break;
- case InspectorValue::TypeString:
- i->second.m_value = InspectorString::create(value);
- break;
- case InspectorValue::TypeNumber:
- if (value.length())
- i->second.m_value = InspectorBasicValue::create((double)value.toInt());
- break;
- default:
- ASSERT(false);
- break;
- }
- }
- }
-}
-
void InspectorState::updateCookie()
{
RefPtr<InspectorObject> cookieObject = InspectorObject::create();
@@ -116,13 +88,11 @@ void InspectorState::updateCookie()
m_client->updateInspectorStateCookie(cookieObject->toJSONString());
}
-void InspectorState::setValue(InspectorPropertyId id, PassRefPtr<InspectorValue> value, const String& stringValue)
+void InspectorState::setValue(InspectorPropertyId id, PassRefPtr<InspectorValue> value)
{
PropertyMap::iterator i = m_properties.find(id);
ASSERT(i != m_properties.end());
i->second.m_value = value;
- if (i->second.m_preferenceName.length())
- m_client->storeSetting(i->second.m_preferenceName, stringValue);
updateCookie();
}
@@ -166,37 +136,34 @@ void InspectorState::setObject(InspectorPropertyId id, PassRefPtr<InspectorObjec
ASSERT(i != m_properties.end());
Property& property = i->second;
property.m_value = value;
- if (property.m_preferenceName.length())
- m_client->storeSetting(property.m_preferenceName, value->toJSONString());
updateCookie();
}
-void InspectorState::registerBoolean(InspectorPropertyId propertyId, bool value, const String& frontendAlias, const String& preferenceName)
+void InspectorState::registerBoolean(InspectorPropertyId propertyId, bool value, const String& frontendAlias)
{
- m_properties.set(propertyId, Property::create(InspectorBasicValue::create(value), frontendAlias, preferenceName));
+ m_properties.set(propertyId, Property::create(InspectorBasicValue::create(value), frontendAlias));
}
-void InspectorState::registerString(InspectorPropertyId propertyId, const String& value, const String& frontendAlias, const String& preferenceName)
+void InspectorState::registerString(InspectorPropertyId propertyId, const String& value, const String& frontendAlias)
{
- m_properties.set(propertyId, Property::create(InspectorString::create(value), frontendAlias, preferenceName));
+ m_properties.set(propertyId, Property::create(InspectorString::create(value), frontendAlias));
}
-void InspectorState::registerLong(InspectorPropertyId propertyId, long value, const String& frontendAlias, const String& preferenceName)
+void InspectorState::registerLong(InspectorPropertyId propertyId, long value, const String& frontendAlias)
{
- m_properties.set(propertyId, Property::create(InspectorBasicValue::create((double)value), frontendAlias, preferenceName));
+ m_properties.set(propertyId, Property::create(InspectorBasicValue::create((double)value), frontendAlias));
}
-void InspectorState::registerObject(InspectorPropertyId propertyId, const String& frontendAlias, const String& preferenceName)
+void InspectorState::registerObject(InspectorPropertyId propertyId, const String& frontendAlias)
{
- m_properties.set(propertyId, Property::create(InspectorObject::create(), frontendAlias, preferenceName));
+ m_properties.set(propertyId, Property::create(InspectorObject::create(), frontendAlias));
}
-InspectorState::Property InspectorState::Property::create(PassRefPtr<InspectorValue> value, const String& frontendAlias, const String& preferenceName)
+InspectorState::Property InspectorState::Property::create(PassRefPtr<InspectorValue> value, const String& frontendAlias)
{
Property property;
property.m_value = value;
property.m_frontendAlias = frontendAlias;
- property.m_preferenceName = preferenceName;
return property;
}
diff --git a/Source/WebCore/inspector/InspectorState.h b/Source/WebCore/inspector/InspectorState.h
index 4f57da7..3142c92 100644
--- a/Source/WebCore/inspector/InspectorState.h
+++ b/Source/WebCore/inspector/InspectorState.h
@@ -47,11 +47,6 @@ public:
monitoringXHR = 1,
timelineProfilerEnabled,
searchingForNode,
- profilerAlwaysEnabled,
- debuggerAlwaysEnabled,
- lastActivePanel,
- inspectorStartsAttached,
- inspectorAttachedHeight,
pauseOnExceptionsState,
consoleMessagesEnabled,
userInitiatedProfiling,
@@ -63,7 +58,6 @@ public:
PassRefPtr<InspectorObject> generateStateObjectForFrontend();
void restoreFromInspectorCookie(const String& jsonString);
- void loadFromSettings();
String getFrontendAlias(InspectorPropertyId propertyId);
bool getBoolean(InspectorPropertyId propertyId);
@@ -71,28 +65,27 @@ public:
long getLong(InspectorPropertyId propertyId);
PassRefPtr<InspectorObject> getObject(InspectorPropertyId id);
- void setBoolean(InspectorPropertyId propertyId, bool value) { setValue(propertyId, InspectorBasicValue::create(value), value ? "true" : "false"); }
- void setString(InspectorPropertyId propertyId, const String& value) { setValue(propertyId, InspectorString::create(value), value); }
- void setLong(InspectorPropertyId propertyId, long value) { setValue(propertyId, InspectorBasicValue::create((double)value), String::number(value)); }
+ void setBoolean(InspectorPropertyId propertyId, bool value) { setValue(propertyId, InspectorBasicValue::create(value)); }
+ void setString(InspectorPropertyId propertyId, const String& value) { setValue(propertyId, InspectorString::create(value)); }
+ void setLong(InspectorPropertyId propertyId, long value) { setValue(propertyId, InspectorBasicValue::create((double)value)); }
void setObject(InspectorPropertyId propertyId, PassRefPtr<InspectorObject> value);
private:
void updateCookie();
- void setValue(InspectorPropertyId propertyId, PassRefPtr<InspectorValue> value, const String& stringValue);
+ void setValue(InspectorPropertyId propertyId, PassRefPtr<InspectorValue> value);
struct Property {
- static Property create(PassRefPtr<InspectorValue> value, const String& frontendAlias, const String& preferenceName);
+ static Property create(PassRefPtr<InspectorValue> value, const String& frontendAlias);
String m_frontendAlias;
- String m_preferenceName;
RefPtr<InspectorValue> m_value;
};
typedef HashMap<long, Property> PropertyMap;
PropertyMap m_properties;
- void registerBoolean(InspectorPropertyId propertyId, bool value, const String& frontendAlias, const String& preferenceName);
- void registerString(InspectorPropertyId propertyId, const String& value, const String& frontendAlias, const String& preferenceName);
- void registerLong(InspectorPropertyId propertyId, long value, const String& frontendAlias, const String& preferenceName);
- void registerObject(InspectorPropertyId propertyId, const String& frontendAlias, const String& preferenceName);
+ void registerBoolean(InspectorPropertyId propertyId, bool value, const String& frontendAlias);
+ void registerString(InspectorPropertyId propertyId, const String& value, const String& frontendAlias);
+ void registerLong(InspectorPropertyId propertyId, long value, const String& frontendAlias);
+ void registerObject(InspectorPropertyId propertyId, const String& frontendAlias);
InspectorClient* m_client;
};
diff --git a/Source/WebCore/inspector/InspectorTimelineAgent.cpp b/Source/WebCore/inspector/InspectorTimelineAgent.cpp
index 74739e1..081a5f0 100644
--- a/Source/WebCore/inspector/InspectorTimelineAgent.cpp
+++ b/Source/WebCore/inspector/InspectorTimelineAgent.cpp
@@ -209,12 +209,11 @@ void InspectorTimelineAgent::didScheduleResourceRequest(const String& url)
addRecordToTimeline(record.release(), ScheduleResourceRequestTimelineRecordType);
}
-void InspectorTimelineAgent::willSendResourceRequest(unsigned long identifier, bool isMainResource,
- const ResourceRequest& request)
+void InspectorTimelineAgent::willSendResourceRequest(unsigned long identifier, const ResourceRequest& request)
{
pushGCEventRecords();
RefPtr<InspectorObject> record = TimelineRecordFactory::createGenericRecord(WTF::currentTimeMS());
- record->setObject("data", TimelineRecordFactory::createResourceSendRequestData(identifier, isMainResource, request));
+ record->setObject("data", TimelineRecordFactory::createResourceSendRequestData(identifier, request));
record->setNumber("type", ResourceSendRequestTimelineRecordType);
setHeapSizeStatistic(record.get());
m_frontend->addRecordToTimeline(record.release());
diff --git a/Source/WebCore/inspector/InspectorTimelineAgent.h b/Source/WebCore/inspector/InspectorTimelineAgent.h
index bc1e027..33e2737 100644
--- a/Source/WebCore/inspector/InspectorTimelineAgent.h
+++ b/Source/WebCore/inspector/InspectorTimelineAgent.h
@@ -119,7 +119,7 @@ public:
void didMarkLoadEvent();
void didScheduleResourceRequest(const String& url);
- void willSendResourceRequest(unsigned long, bool isMainResource, const ResourceRequest&);
+ void willSendResourceRequest(unsigned long, const ResourceRequest&);
void willReceiveResourceResponse(unsigned long, const ResourceResponse&);
void didReceiveResourceResponse();
void didFinishLoadingResource(unsigned long, bool didFail, double finishTime);
diff --git a/Source/WebCore/inspector/ScriptDebugListener.h b/Source/WebCore/inspector/ScriptDebugListener.h
index 5973402..a28cabb 100644
--- a/Source/WebCore/inspector/ScriptDebugListener.h
+++ b/Source/WebCore/inspector/ScriptDebugListener.h
@@ -46,7 +46,7 @@ class ScriptDebugListener {
public:
virtual ~ScriptDebugListener() { }
- virtual void didParseSource(const String& sourceID, const String& url, const String& data, int firstLine, ScriptWorldType) = 0;
+ virtual void didParseSource(const String& sourceID, const String& url, const String& data, int lineOffset, int columnOffset, ScriptWorldType) = 0;
virtual void failedToParseSource(const String& url, const String& data, int firstLine, int errorLine, const String& errorMessage) = 0;
virtual void didPause(ScriptState*) = 0;
virtual void didContinue() = 0;
diff --git a/Source/WebCore/inspector/TimelineRecordFactory.cpp b/Source/WebCore/inspector/TimelineRecordFactory.cpp
index 7f339cd..dd7f2be 100644
--- a/Source/WebCore/inspector/TimelineRecordFactory.cpp
+++ b/Source/WebCore/inspector/TimelineRecordFactory.cpp
@@ -129,13 +129,12 @@ PassRefPtr<InspectorObject> TimelineRecordFactory::createScheduleResourceRequest
return data.release();
}
-PassRefPtr<InspectorObject> TimelineRecordFactory::createResourceSendRequestData(unsigned long identifier, bool isMainResource, const ResourceRequest& request)
+PassRefPtr<InspectorObject> TimelineRecordFactory::createResourceSendRequestData(unsigned long identifier, const ResourceRequest& request)
{
RefPtr<InspectorObject> data = InspectorObject::create();
data->setNumber("identifier", identifier);
data->setString("url", request.url().string());
data->setString("requestMethod", request.httpMethod());
- data->setBoolean("isMainResource", isMainResource);
return data.release();
}
diff --git a/Source/WebCore/inspector/TimelineRecordFactory.h b/Source/WebCore/inspector/TimelineRecordFactory.h
index 5d4cb77..fafeae6 100644
--- a/Source/WebCore/inspector/TimelineRecordFactory.h
+++ b/Source/WebCore/inspector/TimelineRecordFactory.h
@@ -64,8 +64,7 @@ namespace WebCore {
static PassRefPtr<InspectorObject> createMarkTimelineData(const String&);
- static PassRefPtr<InspectorObject> createResourceSendRequestData(unsigned long identifier,
- bool isMainResource, const ResourceRequest&);
+ static PassRefPtr<InspectorObject> createResourceSendRequestData(unsigned long identifier, const ResourceRequest&);
static PassRefPtr<InspectorObject> createScheduleResourceRequestData(const String&);
diff --git a/Source/WebCore/inspector/front-end/ApplicationCacheItemsView.js b/Source/WebCore/inspector/front-end/ApplicationCacheItemsView.js
index f5147e3..e7aa188 100644
--- a/Source/WebCore/inspector/front-end/ApplicationCacheItemsView.js
+++ b/Source/WebCore/inspector/front-end/ApplicationCacheItemsView.js
@@ -167,7 +167,7 @@ WebInspector.ApplicationCacheItemsView.prototype = {
this._emptyMsgElement.addStyleClass("hidden");
this.deleteButton.visible = true;
- var totalSizeString = Number.bytesToString(this._size, WebInspector.UIString);
+ var totalSizeString = Number.bytesToString(this._size);
this._treeElement.subtitle = WebInspector.UIString("%s (%s)", lastPathComponent, totalSizeString);
// FIXME: For Chrome, put creationTime and updateTime somewhere.
@@ -223,7 +223,7 @@ WebInspector.ApplicationCacheItemsView.prototype = {
var resource = this._resources[i];
data[0] = resource.name;
data[1] = resource.type;
- data[2] = Number.bytesToString(resource.size, WebInspector.UIString);
+ data[2] = Number.bytesToString(resource.size);
var node = new WebInspector.DataGridNode(data);
node.resource = resource;
node.selectable = true;
diff --git a/Source/WebCore/inspector/front-end/AuditLauncherView.js b/Source/WebCore/inspector/front-end/AuditLauncherView.js
index d4bbf90..c140589 100644
--- a/Source/WebCore/inspector/front-end/AuditLauncherView.js
+++ b/Source/WebCore/inspector/front-end/AuditLauncherView.js
@@ -53,24 +53,6 @@ WebInspector.AuditLauncherView = function(runnerCallback)
}
WebInspector.AuditLauncherView.prototype = {
- updateResourceTrackingState: function(isTracking)
- {
- if (!this._auditPresentStateLabelElement)
- return;
-
- if (isTracking) {
- this._auditPresentStateLabelElement.nodeValue = WebInspector.UIString("Audit Present State");
- this._auditPresentStateElement.disabled = false;
- this._auditPresentStateElement.parentElement.removeStyleClass("disabled");
- } else {
- this._resetResourceCount();
- this._auditPresentStateLabelElement.nodeValue = WebInspector.UIString("Audit Present State (Resource Tracking must be enabled)");
- this._auditPresentStateElement.disabled = true;
- this._auditPresentStateElement.parentElement.addStyleClass("disabled");
- this.auditReloadedStateElement.checked = true;
- }
- },
-
get totalResources()
{
return this._totalResources;
@@ -100,20 +82,21 @@ WebInspector.AuditLauncherView.prototype = {
_resetResourceCount: function()
{
this.loadedResources = 0;
-
- // We never receive a resourceStarted notification for the main resource
- // (see InspectorController.willSendRequest())
- this.totalResources = 1;
+ this.totalResources = 0;
},
resourceStarted: function(resource)
{
- ++this.totalResources;
+ // Ignore long-living WebSockets for the sake of progress indicator, as we won't be waiting them anyway.
+ if (resource.type !== WebInspector.Resource.Type.WebSocket)
+ ++this.totalResources;
},
resourceFinished: function(resource)
{
- ++this.loadedResources;
+ // See resorceStarted for details.
+ if (resource.type !== WebInspector.Resource.Type.WebSocket)
+ ++this.loadedResources;
},
reset: function()
@@ -237,7 +220,7 @@ WebInspector.AuditLauncherView.prototype = {
this._auditPresentStateElement.name = "audit-mode";
this._auditPresentStateElement.type = "radio";
this._auditPresentStateElement.checked = true;
- this._auditPresentStateLabelElement = document.createTextNode("");
+ this._auditPresentStateLabelElement = document.createTextNode(WebInspector.UIString("Audit Present State"));
labelElement.appendChild(this._auditPresentStateElement);
labelElement.appendChild(this._auditPresentStateLabelElement);
this._buttonContainerElement.appendChild(labelElement);
@@ -267,7 +250,6 @@ WebInspector.AuditLauncherView.prototype = {
this._contentElement.appendChild(this._buttonContainerElement);
this._selectAllClicked(this._selectAllCheckboxElement.checked);
- this.updateResourceTrackingState();
this._updateButton();
this._updateResourceProgress();
},
diff --git a/Source/WebCore/inspector/front-end/AuditRules.js b/Source/WebCore/inspector/front-end/AuditRules.js
index 3f79c25..7aa891f 100644
--- a/Source/WebCore/inspector/front-end/AuditRules.js
+++ b/Source/WebCore/inspector/front-end/AuditRules.js
@@ -92,13 +92,13 @@ WebInspector.AuditRules.GzipRule.prototype = {
}
var savings = 2 * size / 3;
totalSavings += savings;
- summary.addChild(String.sprintf("%s could save ~%s", WebInspector.AuditRuleResult.linkifyDisplayName(resource.url), Number.bytesToString(savings, WebInspector.UIString)));
+ summary.addChild(String.sprintf("%s could save ~%s", WebInspector.AuditRuleResult.linkifyDisplayName(resource.url), Number.bytesToString(savings)));
result.violationCount++;
}
}
if (!totalSavings)
return callback(null);
- summary.value = String.sprintf("Compressing the following resources with gzip could reduce their transfer size by about two thirds (~%s):", Number.bytesToString(totalSavings, WebInspector.UIString));
+ summary.value = String.sprintf("Compressing the following resources with gzip could reduce their transfer size by about two thirds (~%s):", Number.bytesToString(totalSavings));
callback(result);
},
@@ -966,7 +966,7 @@ WebInspector.AuditRules.CookieSizeRule.prototype = {
for (var i = 0, len = sortedCookieSizes.length; i < len; ++i) {
var maxCookieSize = sortedCookieSizes[i].maxCookieSize;
if (maxCookieSize > this._maxBytesThreshold)
- hugeCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(sortedCookieSizes[i].domain) + ": " + Number.bytesToString(maxCookieSize, WebInspector.UIString));
+ hugeCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(sortedCookieSizes[i].domain) + ": " + Number.bytesToString(maxCookieSize));
}
var bigAvgCookieDomains = [];
@@ -975,9 +975,9 @@ WebInspector.AuditRules.CookieSizeRule.prototype = {
var domain = sortedCookieSizes[i].domain;
var avgCookieSize = sortedCookieSizes[i].avgCookieSize;
if (avgCookieSize > this._avgBytesThreshold && avgCookieSize < this._maxBytesThreshold)
- bigAvgCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(domain) + ": " + Number.bytesToString(avgCookieSize, WebInspector.UIString));
+ bigAvgCookieDomains.push(WebInspector.AuditRuleResult.resourceDomain(domain) + ": " + Number.bytesToString(avgCookieSize));
}
- result.addChild(String.sprintf("The average cookie size for all requests on this page is %s", Number.bytesToString(avgAllCookiesSize, WebInspector.UIString)));
+ result.addChild(String.sprintf("The average cookie size for all requests on this page is %s", Number.bytesToString(avgAllCookiesSize)));
var message;
if (hugeCookieDomains.length) {
@@ -1027,7 +1027,7 @@ WebInspector.AuditRules.StaticCookielessRule.prototype = {
if (badUrls.length < this._minResources)
return;
- var entry = result.addChild(String.sprintf("%s of cookies were sent with the following static resources. Serve these static resources from a domain that does not set cookies:", Number.bytesToString(cookieBytes, WebInspector.UIString)), true);
+ var entry = result.addChild(String.sprintf("%s of cookies were sent with the following static resources. Serve these static resources from a domain that does not set cookies:", Number.bytesToString(cookieBytes)), true);
entry.addURLs(badUrls);
result.violationCount = badUrls.length;
},
diff --git a/Source/WebCore/inspector/front-end/AuditsPanel.js b/Source/WebCore/inspector/front-end/AuditsPanel.js
index 096f8ce..c639f47 100644
--- a/Source/WebCore/inspector/front-end/AuditsPanel.js
+++ b/Source/WebCore/inspector/front-end/AuditsPanel.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -129,9 +129,7 @@ WebInspector.AuditsPanel.prototype = {
_executeAudit: function(categories, resultCallback)
{
- var resources = [];
- for (var id in WebInspector.networkResources)
- resources.push(WebInspector.networkResources[id]);
+ var resources = WebInspector.networkResources;
var rulesRemaining = 0;
for (var i = 0; i < categories.length; ++i)
@@ -248,12 +246,6 @@ WebInspector.AuditsPanel.prototype = {
x.show(this.viewsContainerElement);
},
- show: function()
- {
- WebInspector.Panel.prototype.show.call(this);
- this._updateLauncherViewControls(!WebInspector.panels.resources || WebInspector.panels.resources.resourceTrackingEnabled);
- },
-
reset: function()
{
this._launcherView.reset();
@@ -271,12 +263,6 @@ WebInspector.AuditsPanel.prototype = {
this.viewsContainerElement.style.left = width + "px";
},
- _updateLauncherViewControls: function(isTracking)
- {
- if (this._launcherView)
- this._launcherView.updateResourceTrackingState(isTracking);
- },
-
_clearButtonClicked: function()
{
this.auditsItemTreeElement.reveal();
diff --git a/Source/WebCore/inspector/front-end/Breakpoint.js b/Source/WebCore/inspector/front-end/Breakpoint.js
index 0a888d2..e5e1768 100644
--- a/Source/WebCore/inspector/front-end/Breakpoint.js
+++ b/Source/WebCore/inspector/front-end/Breakpoint.js
@@ -37,7 +37,6 @@ WebInspector.Breakpoint = function(debuggerModel, breakpointId, sourceID, url, l
this.sourceID = sourceID;
this._enabled = enabled;
this._condition = condition || "";
- this._sourceText = "";
this._hit = false;
this._debuggerModel = debuggerModel;
}
@@ -56,17 +55,6 @@ WebInspector.Breakpoint.prototype = {
WebInspector.debuggerModel.setBreakpoint(this.sourceID, this.line, enabled, this.condition);
},
- get sourceText()
- {
- return this._sourceText;
- },
-
- set sourceText(text)
- {
- this._sourceText = text;
- this.dispatchEventToListeners("label-changed");
- },
-
get condition()
{
return this._condition;
@@ -99,14 +87,19 @@ WebInspector.Breakpoint.prototype = {
populateLabelElement: function(element)
{
- var displayName = this.url ? WebInspector.displayNameForURL(this.url) : WebInspector.UIString("(program)");
- var labelElement = document.createTextNode(displayName + ":" + this.line);
- element.appendChild(labelElement);
+ function didGetSourceLine(text)
+ {
+ var displayName = this.url ? WebInspector.displayNameForURL(this.url) : WebInspector.UIString("(program)");
+ var labelElement = document.createTextNode(displayName + ":" + this.line);
+ element.appendChild(labelElement);
- var sourceTextElement = document.createElement("div");
- sourceTextElement.textContent = this.sourceText;
- sourceTextElement.className = "source-text monospace";
- element.appendChild(sourceTextElement);
+ var sourceTextElement = document.createElement("div");
+ sourceTextElement.textContent = text;
+ sourceTextElement.className = "source-text monospace";
+ element.appendChild(sourceTextElement);
+ }
+ var script = this._debuggerModel.scriptForSourceID(this.sourceID);
+ script.sourceLine(this.line, didGetSourceLine.bind(this));
},
remove: function()
diff --git a/Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js b/Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js
index 619525c..408c5ba 100644
--- a/Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js
+++ b/Source/WebCore/inspector/front-end/BreakpointsSidebarPane.js
@@ -265,24 +265,24 @@ WebInspector.EventListenerBreakpointsSidebarPane = function()
WebInspector.breakpointManager.addEventListener(WebInspector.BreakpointManager.Events.EventListenerBreakpointAdded, this._breakpointAdded, this);
this._breakpointItems = {};
- this._createCategory("Keyboard", "listener", ["keydown", "keyup", "keypress", "textInput"]);
- this._createCategory("Mouse", "listener", ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mousemove", "mouseout", "mousewheel"]);
+ this._createCategory(WebInspector.UIString("Keyboard"), "listener", ["keydown", "keyup", "keypress", "textInput"]);
+ this._createCategory(WebInspector.UIString("Mouse"), "listener", ["click", "dblclick", "mousedown", "mouseup", "mouseover", "mousemove", "mouseout", "mousewheel"]);
// FIXME: uncomment following once inspector stops being drop targer in major ports.
// Otherwise, inspector page reacts on drop event and tries to load the event data.
- // this._createCategory("Drag", "listener", ["drag", "drop", "dragstart", "dragend", "dragenter", "dragleave", "dragover"]);
- this._createCategory("Control", "listener", ["resize", "scroll", "zoom", "focus", "blur", "select", "change", "submit", "reset"]);
- this._createCategory("Clipboard", "listener", ["copy", "cut", "paste", "beforecopy", "beforecut", "beforepaste"]);
- this._createCategory("Load", "listener", ["load", "unload", "abort", "error"]);
- this._createCategory("DOM Mutation", "listener", ["DOMActivate", "DOMFocusIn", "DOMFocusOut", "DOMAttrModified", "DOMCharacterDataModified", "DOMNodeInserted", "DOMNodeInsertedIntoDocument", "DOMNodeRemoved", "DOMNodeRemovedFromDocument", "DOMSubtreeModified", "DOMContentLoaded"]);
- this._createCategory("Device", "listener", ["deviceorientation", "devicemotion"]);
- this._createCategory("Timer", "instrumentation", ["setTimer", "clearTimer", "timerFired"]);
+ // this._createCategory(WebInspector.UIString("Drag"), "listener", ["drag", "drop", "dragstart", "dragend", "dragenter", "dragleave", "dragover"]);
+ this._createCategory(WebInspector.UIString("Control"), "listener", ["resize", "scroll", "zoom", "focus", "blur", "select", "change", "submit", "reset"]);
+ this._createCategory(WebInspector.UIString("Clipboard"), "listener", ["copy", "cut", "paste", "beforecopy", "beforecut", "beforepaste"]);
+ this._createCategory(WebInspector.UIString("Load"), "listener", ["load", "unload", "abort", "error"]);
+ this._createCategory(WebInspector.UIString("DOM Mutation"), "listener", ["DOMActivate", "DOMFocusIn", "DOMFocusOut", "DOMAttrModified", "DOMCharacterDataModified", "DOMNodeInserted", "DOMNodeInsertedIntoDocument", "DOMNodeRemoved", "DOMNodeRemovedFromDocument", "DOMSubtreeModified", "DOMContentLoaded"]);
+ this._createCategory(WebInspector.UIString("Device"), "listener", ["deviceorientation", "devicemotion"]);
+ this._createCategory(WebInspector.UIString("Timer"), "instrumentation", ["setTimer", "clearTimer", "timerFired"]);
}
WebInspector.EventListenerBreakpointsSidebarPane.prototype = {
_createCategory: function(name, type, eventNames)
{
var categoryItem = {};
- categoryItem.element = new TreeElement(WebInspector.UIString(name));
+ categoryItem.element = new TreeElement(name);
this.categoriesTreeOutline.appendChild(categoryItem.element);
categoryItem.element.listItemElement.addStyleClass("event-category");
categoryItem.element.selectable = true;
diff --git a/Source/WebCore/inspector/front-end/ConsoleView.js b/Source/WebCore/inspector/front-end/ConsoleView.js
index c98552d..a40030e 100644
--- a/Source/WebCore/inspector/front-end/ConsoleView.js
+++ b/Source/WebCore/inspector/front-end/ConsoleView.js
@@ -97,9 +97,63 @@ WebInspector.ConsoleView = function(drawer)
"node": this._formatnode,
"string": this._formatstring
};
+
+ this._registerConsoleDomainDispatcher();
}
WebInspector.ConsoleView.prototype = {
+ _registerConsoleDomainDispatcher: function() {
+ var console = this;
+ var dispatcher = {
+ addConsoleMessage: function(payload)
+ {
+ var consoleMessage = new WebInspector.ConsoleMessage(
+ payload.source,
+ payload.type,
+ payload.level,
+ payload.line,
+ payload.url,
+ payload.repeatCount,
+ payload.message,
+ payload.parameters,
+ payload.stackTrace,
+ payload.requestId);
+ console.addMessage(consoleMessage);
+ },
+
+ updateConsoleMessageExpiredCount: function(count)
+ {
+ var message = String.sprintf(WebInspector.UIString("%d console messages are not shown."), count);
+ console.addMessage(WebInspector.ConsoleMessage.createTextMessage(message, WebInspector.ConsoleMessage.MessageLevel.Warning));
+ },
+
+ updateConsoleMessageRepeatCount: function(count)
+ {
+ var msg = console.previousMessage;
+ var prevRepeatCount = msg.totalRepeatCount;
+
+ if (!console.commandSincePreviousMessage) {
+ msg.repeatDelta = count - prevRepeatCount;
+ msg.repeatCount = msg.repeatCount + msg.repeatDelta;
+ msg.totalRepeatCount = count;
+ msg._updateRepeatCount();
+ console._incrementErrorWarningCount(msg);
+ } else {
+ var msgCopy = new WebInspector.ConsoleMessage(msg.source, msg.type, msg.level, msg.line, msg.url, count - prevRepeatCount, msg._messageText, msg._parameters, msg._stackTrace, msg._requestId);
+ msgCopy.totalRepeatCount = count;
+ msgCopy._formatMessage();
+ console.addMessage(msgCopy);
+ }
+ },
+
+ consoleMessagesCleared: function()
+ {
+ console.clearMessages();
+ }
+ }
+ InspectorBackend.registerDomainDispatcher("Console", dispatcher);
+ },
+
_updateFilter: function(e)
{
var isMac = WebInspector.isMac();
@@ -247,25 +301,6 @@ WebInspector.ConsoleView.prototype = {
this._scheduleScrollIntoView();
},
- updateMessageRepeatCount: function(count)
- {
- var msg = this.previousMessage;
- var prevRepeatCount = msg.totalRepeatCount;
-
- if (!this.commandSincePreviousMessage) {
- msg.repeatDelta = count - prevRepeatCount;
- msg.repeatCount = msg.repeatCount + msg.repeatDelta;
- msg.totalRepeatCount = count;
- msg._updateRepeatCount();
- this._incrementErrorWarningCount(msg);
- } else {
- var msgCopy = new WebInspector.ConsoleMessage(msg.source, msg.type, msg.level, msg.line, msg.url, count - prevRepeatCount, msg._messageText, msg._parameters, msg._stackTrace, msg._requestId);
- msgCopy.totalRepeatCount = count;
- msgCopy._formatMessage();
- this.addMessage(msgCopy);
- }
- },
-
_incrementErrorWarningCount: function(msg)
{
switch (msg.level) {
@@ -668,7 +703,7 @@ WebInspector.ConsoleMessage.prototype = {
messageText = document.createTextNode(this._messageText);
break;
case WebInspector.ConsoleMessage.MessageType.NetworkError:
- var resource = this._requestId && WebInspector.panels.network.resources[this._requestId];
+ var resource = this._requestId && WebInspector.networkResourceById(this._requestId);
if (resource) {
stackTrace = resource.stackTrace;
diff --git a/Source/WebCore/inspector/front-end/CookieItemsView.js b/Source/WebCore/inspector/front-end/CookieItemsView.js
index 75c7f84..dc76b39 100644
--- a/Source/WebCore/inspector/front-end/CookieItemsView.js
+++ b/Source/WebCore/inspector/front-end/CookieItemsView.js
@@ -101,9 +101,10 @@ WebInspector.CookieItemsView.prototype = {
this._emptyMsgElement.addStyleClass("hidden");
if (isAdvanced) {
this._treeElement.subtitle = String.sprintf(WebInspector.UIString("%d cookies (%s)"), this._cookies.length,
- Number.bytesToString(this._totalSize, WebInspector.UIString));
+ Number.bytesToString(this._totalSize));
this._deleteButton.visible = true;
}
+ this._cookiesTable.updateWidths();
},
_filterCookiesForDomain: function(allCookies)
diff --git a/Source/WebCore/inspector/front-end/DOMAgent.js b/Source/WebCore/inspector/front-end/DOMAgent.js
index 89822a3..e4fc7ad 100644
--- a/Source/WebCore/inspector/front-end/DOMAgent.js
+++ b/Source/WebCore/inspector/front-end/DOMAgent.js
@@ -300,7 +300,7 @@ WebInspector.DOMAgent = function() {
this._window = new WebInspector.DOMWindow(this);
this._idToDOMNode = null;
this.document = null;
- InspectorBackend.registerDomainDispatcher("DOM", this);
+ InspectorBackend.registerDomainDispatcher("DOM", new WebInspector.DOMDispatcher(this));
}
WebInspector.DOMAgent.prototype = {
@@ -351,7 +351,7 @@ WebInspector.DOMAgent.prototype = {
elem.updateTitle();
},
- attributesUpdated: function(nodeId, attrsArray)
+ _attributesUpdated: function(nodeId, attrsArray)
{
var node = this._idToDOMNode[nodeId];
node._setAttributesPayload(attrsArray);
@@ -359,7 +359,7 @@ WebInspector.DOMAgent.prototype = {
this.document._fireDomEvent("DOMAttrModified", event);
},
- characterDataModified: function(nodeId, newValue)
+ _characterDataModified: function(nodeId, newValue)
{
var node = this._idToDOMNode[nodeId];
node._nodeValue = newValue;
@@ -373,13 +373,7 @@ WebInspector.DOMAgent.prototype = {
return this._idToDOMNode[nodeId];
},
- didCommitLoad: function()
- {
- // Cleanup elements panel early on inspected page refresh.
- this.setDocument(null);
- },
-
- setDocument: function(payload)
+ _setDocument: function(payload)
{
this._idToDOMNode = {};
if (payload && "id" in payload) {
@@ -392,13 +386,13 @@ WebInspector.DOMAgent.prototype = {
WebInspector.panels.elements.setDocument(this.document);
},
- setDetachedRoot: function(payload)
+ _setDetachedRoot: function(payload)
{
var root = new WebInspector.DOMNode(this.document, payload);
this._idToDOMNode[payload.id] = root;
},
- setChildNodes: function(parentId, payloads)
+ _setChildNodes: function(parentId, payloads)
{
var parent = this._idToDOMNode[parentId];
parent._setChildrenPayload(payloads);
@@ -415,7 +409,7 @@ WebInspector.DOMAgent.prototype = {
}
},
- childNodeCountUpdated: function(nodeId, newValue)
+ _childNodeCountUpdated: function(nodeId, newValue)
{
var node = this._idToDOMNode[nodeId];
node._childNodeCount = newValue;
@@ -425,7 +419,7 @@ WebInspector.DOMAgent.prototype = {
treeElement.hasChildren = newValue;
},
- childNodeInserted: function(parentId, prevId, payload)
+ _childNodeInserted: function(parentId, prevId, payload)
{
var parent = this._idToDOMNode[parentId];
var prev = this._idToDOMNode[prevId];
@@ -435,7 +429,7 @@ WebInspector.DOMAgent.prototype = {
this.document._fireDomEvent("DOMNodeInserted", event);
},
- childNodeRemoved: function(parentId, nodeId)
+ _childNodeRemoved: function(parentId, nodeId)
{
var parent = this._idToDOMNode[parentId];
var node = this._idToDOMNode[nodeId];
@@ -457,31 +451,82 @@ WebInspector.DOMAgent.prototype = {
}
}
-WebInspector.ApplicationCache = {}
-
-WebInspector.ApplicationCache.getApplicationCachesAsync = function(callback)
+WebInspector.DOMDispatcher = function(domAgent)
{
- function mycallback(applicationCaches)
+ this._domAgent = domAgent;
+}
+
+WebInspector.DOMDispatcher.prototype = {
+ setDocument: function(payload)
{
- // FIXME: Currently, this list only returns a single application cache.
- if (applicationCaches)
- callback(applicationCaches);
- }
+ this._domAgent._setDocument(payload);
+ },
+
+ attributesUpdated: function(nodeId, attrsArray)
+ {
+ this._domAgent._attributesUpdated(nodeId, attrsArray);
+ },
- InspectorBackend.getApplicationCaches(mycallback);
+ characterDataModified: function(nodeId, newValue)
+ {
+ this._domAgent._characterDataModified(nodeId, newValue);
+ },
+
+ setChildNodes: function(parentId, payloads)
+ {
+ this._domAgent._setChildNodes(parentId, payloads);
+ },
+
+ setDetachedRoot: function(payload)
+ {
+ this._domAgent._setDetachedRoot(payload);
+ },
+
+ childNodeCountUpdated: function(nodeId, newValue)
+ {
+ this._domAgent._childNodeCountUpdated(nodeId, newValue);
+ },
+
+ childNodeInserted: function(parentId, prevId, payload)
+ {
+ this._domAgent._childNodeInserted(parentId, prevId, payload);
+ },
+
+ childNodeRemoved: function(parentId, nodeId)
+ {
+ this._domAgent._childNodeRemoved(parentId, nodeId);
+ }
}
-WebInspector.ApplicationCache.updateApplicationCacheStatus = function(status)
+WebInspector.ApplicationCacheDispatcher = function()
{
- WebInspector.panels.resources.updateApplicationCacheStatus(status);
}
-WebInspector.ApplicationCache.updateNetworkState = function(isNowOnline)
-{
- WebInspector.panels.resources.updateNetworkState(isNowOnline);
+WebInspector.ApplicationCacheDispatcher.prototype = {
+ getApplicationCachesAsync: function(callback)
+ {
+ function mycallback(applicationCaches)
+ {
+ // FIXME: Currently, this list only returns a single application cache.
+ if (applicationCaches)
+ callback(applicationCaches);
+ }
+
+ InspectorBackend.getApplicationCaches(mycallback);
+ },
+
+ updateApplicationCacheStatus: function(status)
+ {
+ WebInspector.panels.resources.updateApplicationCacheStatus(status);
+ },
+
+ updateNetworkState: function(isNowOnline)
+ {
+ WebInspector.panels.resources.updateNetworkState(isNowOnline);
+ }
}
-InspectorBackend.registerDomainDispatcher("ApplicationCache", WebInspector.ApplicationCache);
+InspectorBackend.registerDomainDispatcher("ApplicationCache", new WebInspector.ApplicationCacheDispatcher());
WebInspector.Cookies = {}
diff --git a/Source/WebCore/inspector/front-end/DOMStorage.js b/Source/WebCore/inspector/front-end/DOMStorage.js
index aa14a9c..d3d2226 100644
--- a/Source/WebCore/inspector/front-end/DOMStorage.js
+++ b/Source/WebCore/inspector/front-end/DOMStorage.js
@@ -70,26 +70,33 @@ WebInspector.DOMStorage.prototype = {
}
}
-WebInspector.DOMStorage.addDOMStorage = function(payload)
-{
- if (!WebInspector.panels.resources)
- return;
- var domStorage = new WebInspector.DOMStorage(
- payload.id,
- payload.host,
- payload.isLocalStorage);
- WebInspector.panels.resources.addDOMStorage(domStorage);
-}
-WebInspector.DOMStorage.selectDOMStorage = function(o)
+WebInspector.DOMStorageDispatcher = function()
{
- WebInspector.showPanel("resources");
- WebInspector.panels.resources.selectDOMStorage(o);
}
-WebInspector.DOMStorage.updateDOMStorage = function(storageId)
-{
- WebInspector.panels.resources.updateDOMStorage(storageId);
+WebInspector.DOMStorageDispatcher.prototype = {
+ addDOMStorage: function(payload)
+ {
+ if (!WebInspector.panels.resources)
+ return;
+ var domStorage = new WebInspector.DOMStorage(
+ payload.id,
+ payload.host,
+ payload.isLocalStorage);
+ WebInspector.panels.resources.addDOMStorage(domStorage);
+ },
+
+ selectDOMStorage: function(o)
+ {
+ WebInspector.showPanel("resources");
+ WebInspector.panels.resources.selectDOMStorage(o);
+ },
+
+ updateDOMStorage: function(storageId)
+ {
+ WebInspector.panels.resources.updateDOMStorage(storageId);
+ }
}
-InspectorBackend.registerDomainDispatcher("DOMStorage", WebInspector.DOMStorage);
+InspectorBackend.registerDomainDispatcher("DOMStorage", new WebInspector.DOMStorageDispatcher());
diff --git a/Source/WebCore/inspector/front-end/Database.js b/Source/WebCore/inspector/front-end/Database.js
index 0b00330..faa17fa 100644
--- a/Source/WebCore/inspector/front-end/Database.js
+++ b/Source/WebCore/inspector/front-end/Database.js
@@ -34,8 +34,6 @@ WebInspector.Database = function(id, domain, name, version)
this._version = version;
}
-WebInspector.Database._callbacks = {};
-
WebInspector.Database.prototype = {
get id()
{
@@ -94,50 +92,58 @@ WebInspector.Database.prototype = {
onError(WebInspector.UIString("Database not found."));
return;
}
- WebInspector.Database._callbacks[transactionId] = {"onSuccess": onSuccess, "onError": onError};
+ WebInspector.DatabaseDispatcher._callbacks[transactionId] = {"onSuccess": onSuccess, "onError": onError};
}
InspectorBackend.executeSQL(this._id, query, callback);
}
}
-WebInspector.Database.addDatabase = function(payload)
+WebInspector.DatabaseDispatcher = function()
{
- if (!WebInspector.panels.resources)
- return;
- var database = new WebInspector.Database(
- payload.id,
- payload.domain,
- payload.name,
- payload.version);
- WebInspector.panels.resources.addDatabase(database);
}
-WebInspector.Database.selectDatabase = function(o)
-{
- WebInspector.showPanel("resources");
- WebInspector.panels.resources.selectDatabase(o);
-}
+WebInspector.DatabaseDispatcher._callbacks = {};
-WebInspector.Database.sqlTransactionSucceeded = function(transactionId, columnNames, values)
-{
- if (!WebInspector.Database._callbacks[transactionId])
- return;
+WebInspector.DatabaseDispatcher.prototype = {
+ addDatabase: function(payload)
+ {
+ if (!WebInspector.panels.resources)
+ return;
+ var database = new WebInspector.Database(
+ payload.id,
+ payload.domain,
+ payload.name,
+ payload.version);
+ WebInspector.panels.resources.addDatabase(database);
+ },
- var callback = WebInspector.Database._callbacks[transactionId].onSuccess;
- delete WebInspector.Database._callbacks[transactionId];
- if (callback)
- callback(columnNames, values);
-}
+ selectDatabase: function(o)
+ {
+ WebInspector.showPanel("resources");
+ WebInspector.panels.resources.selectDatabase(o);
+ },
-WebInspector.Database.sqlTransactionFailed = function(transactionId, errorObj)
-{
- if (!WebInspector.Database._callbacks[transactionId])
- return;
+ sqlTransactionSucceeded: function(transactionId, columnNames, values)
+ {
+ if (!WebInspector.DatabaseDispatcher._callbacks[transactionId])
+ return;
+
+ var callback = WebInspector.DatabaseDispatcher._callbacks[transactionId].onSuccess;
+ delete WebInspector.DatabaseDispatcher._callbacks[transactionId];
+ if (callback)
+ callback(columnNames, values);
+ },
+
+ sqlTransactionFailed: function(transactionId, errorObj)
+ {
+ if (!WebInspector.DatabaseDispatcher._callbacks[transactionId])
+ return;
- var callback = WebInspector.Database._callbacks[transactionId].onError;
- delete WebInspector.Database._callbacks[transactionId];
- if (callback)
- callback(errorObj);
+ var callback = WebInspector.DatabaseDispatcher._callbacks[transactionId].onError;
+ delete WebInspector.DatabaseDispatcher._callbacks[transactionId];
+ if (callback)
+ callback(errorObj);
+ }
}
-InspectorBackend.registerDomainDispatcher("Database", WebInspector.Database);
+InspectorBackend.registerDomainDispatcher("Database", new WebInspector.DatabaseDispatcher());
diff --git a/Source/WebCore/inspector/front-end/DebuggerModel.js b/Source/WebCore/inspector/front-end/DebuggerModel.js
index 5ab0e2d..8f5bcf7 100644
--- a/Source/WebCore/inspector/front-end/DebuggerModel.js
+++ b/Source/WebCore/inspector/front-end/DebuggerModel.js
@@ -30,12 +30,12 @@
WebInspector.DebuggerModel = function()
{
- InspectorBackend.registerDomainDispatcher("Debugger", this);
-
this._paused = false;
this._breakpoints = {};
this._sourceIDAndLineToBreakpointId = {};
this._scripts = {};
+
+ InspectorBackend.registerDomainDispatcher("Debugger", new WebInspector.DebuggerDispatcher(this));
}
WebInspector.DebuggerModel.Events = {
@@ -86,11 +86,6 @@ WebInspector.DebuggerModel.prototype = {
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.BreakpointRemoved, breakpointId);
},
- breakpointResolved: function(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber)
- {
- this._breakpointSetOnBackend(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber, true);
- },
-
_breakpointSetOnBackend: function(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber, restored)
{
var sourceIDAndLine = this._encodeSourceIDAndLine(sourceID, lineNumber);
@@ -161,9 +156,7 @@ WebInspector.DebuggerModel.prototype = {
return scripts;
},
- // All the methods below are InspectorBackend notification handlers.
-
- pausedScript: function(details)
+ _pausedScript: function(details)
{
this._paused = true;
if ("_continueToLineBreakpointId" in this) {
@@ -182,7 +175,7 @@ WebInspector.DebuggerModel.prototype = {
this._lastHitBreakpoint = breakpoint;
},
- resumedScript: function()
+ _resumedScript: function()
{
this._paused = false;
this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.DebuggerResumed);
@@ -193,9 +186,42 @@ WebInspector.DebuggerModel.prototype = {
delete this._lastHitBreakpoint;
},
- attachDebuggerWhenShown: function()
+ _parsedScriptSource: function(sourceID, sourceURL, lineOffset, columnOffset, scriptWorldType)
+ {
+ var script = new WebInspector.Script(sourceID, sourceURL, "", lineOffset, columnOffset, undefined, undefined, scriptWorldType);
+ this._scripts[sourceID] = script;
+ this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.ParsedScriptSource, sourceID);
+ },
+
+ _failedToParseScriptSource: function(sourceURL, source, startingLine, errorLine, errorMessage)
+ {
+ var script = new WebInspector.Script(null, sourceURL, source, startingLine, errorLine, errorMessage, undefined);
+ this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, script);
+ }
+}
+
+WebInspector.DebuggerModel.prototype.__proto__ = WebInspector.Object.prototype;
+
+WebInspector.DebuggerEventTypes = {
+ JavaScriptPause: 0,
+ JavaScriptBreakpoint: 1,
+ NativeBreakpoint: 2
+};
+
+WebInspector.DebuggerDispatcher = function(debuggerModel)
+{
+ this._debuggerModel = debuggerModel;
+}
+
+WebInspector.DebuggerDispatcher.prototype = {
+ pausedScript: function(details)
+ {
+ this._debuggerModel._pausedScript(details);
+ },
+
+ resumedScript: function()
{
- WebInspector.panels.scripts.attachDebuggerWhenShown();
+ this._debuggerModel._resumedScript();
},
debuggerWasEnabled: function()
@@ -208,17 +234,19 @@ WebInspector.DebuggerModel.prototype = {
WebInspector.panels.scripts.debuggerWasDisabled();
},
- parsedScriptSource: function(sourceID, sourceURL, source, startingLine, scriptWorldType)
+ parsedScriptSource: function(sourceID, sourceURL, lineOffset, columnOffset, scriptWorldType)
{
- var script = new WebInspector.Script(sourceID, sourceURL, source, startingLine, undefined, undefined, scriptWorldType);
- this._scripts[sourceID] = script;
- this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.ParsedScriptSource, sourceID);
+ this._debuggerModel._parsedScriptSource(sourceID, sourceURL, lineOffset, columnOffset, scriptWorldType);
},
failedToParseScriptSource: function(sourceURL, source, startingLine, errorLine, errorMessage)
{
- var script = new WebInspector.Script(null, sourceURL, source, startingLine, errorLine, errorMessage, undefined);
- this.dispatchEventToListeners(WebInspector.DebuggerModel.Events.FailedToParseScriptSource, script);
+ this._debuggerModel._failedToParseScriptSource(sourceURL, source, startingLine, errorLine, errorMessage);
+ },
+
+ breakpointResolved: function(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber)
+ {
+ this._debuggerModel._breakpointSetOnBackend(breakpointId, sourceID, lineNumber, condition, enabled, originalLineNumber, true);
},
didCreateWorker: function()
@@ -233,11 +261,3 @@ WebInspector.DebuggerModel.prototype = {
workersPane.removeWorker.apply(workersPane, arguments);
}
}
-
-WebInspector.DebuggerModel.prototype.__proto__ = WebInspector.Object.prototype;
-
-WebInspector.DebuggerEventTypes = {
- JavaScriptPause: 0,
- JavaScriptBreakpoint: 1,
- NativeBreakpoint: 2
-};
diff --git a/Source/WebCore/inspector/front-end/ExtensionServer.js b/Source/WebCore/inspector/front-end/ExtensionServer.js
index 373c855..1320efb 100644
--- a/Source/WebCore/inspector/front-end/ExtensionServer.js
+++ b/Source/WebCore/inspector/front-end/ExtensionServer.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -288,7 +288,7 @@ WebInspector.ExtensionServer.prototype = {
var id = message.id;
var resource = null;
- resource = WebInspector.networkResources[id] || WebInspector.resourceForURL(id);
+ resource = WebInspector.networkResourceById(id) || WebInspector.resourceForURL(id);
if (!resource)
return this._status.E_NOTFOUND(typeof id + ": " + id);
@@ -318,7 +318,7 @@ WebInspector.ExtensionServer.prototype = {
};
this._dispatchCallback(message.requestId, port, response);
}
- var resource = WebInspector.networkResources[message.id];
+ var resource = WebInspector.networkResourceById(message.id);
if (!resource)
return this._status.E_NOTFOUND(message.id);
resource.requestContent(onContentAvailable.bind(this));
diff --git a/Source/WebCore/inspector/front-end/FileSystemView.js b/Source/WebCore/inspector/front-end/FileSystemView.js
index 14ecf46..56f21a4 100644
--- a/Source/WebCore/inspector/front-end/FileSystemView.js
+++ b/Source/WebCore/inspector/front-end/FileSystemView.js
@@ -28,34 +28,38 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-WebInspector.FileSystem = {}
+WebInspector.FileSystemDispatcher = function()
+{
+}
// Keep in sync with Type in AsyncFileSystem.h
-WebInspector.FileSystem.TEMPORARY = 0;
-WebInspector.FileSystem.PERSISTENT = 1;
+WebInspector.FileSystemDispatcher.TEMPORARY = 0;
+WebInspector.FileSystemDispatcher.PERSISTENT = 1;
-WebInspector.FileSystem.getFileSystemPathsAsync = function(origin)
-{
- InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystem.PERSISTENT, origin);
- InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystem.TEMPORARY, origin);
-}
+WebInspector.FileSystemDispatcher.prototype = {
+ getFileSystemPathsAsync: function(origin)
+ {
+ InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystemDispatcher.PERSISTENT, origin);
+ InspectorBackend.getFileSystemPathAsync(WebInspector.FileSystemDispatcher.TEMPORARY, origin);
+ },
-WebInspector.FileSystem.didGetFileSystemPath = function(root, type, origin)
-{
- WebInspector.panels.resources.updateFileSystemPath(root, type, origin);
-}
+ didGetFileSystemPath: function(root, type, origin)
+ {
+ WebInspector.panels.resources.updateFileSystemPath(root, type, origin);
+ },
-WebInspector.FileSystem.didGetFileSystemError = function(type, origin)
-{
- WebInspector.panels.resources.updateFileSystemError(type, origin);
-}
+ didGetFileSystemError: function(type, origin)
+ {
+ WebInspector.panels.resources.updateFileSystemError(type, origin);
+ },
-WebInspector.FileSystem.didGetFileSystemDisabled = function()
-{
- WebInspector.panels.resources.setFileSystemDisabled();
+ didGetFileSystemDisabled: function()
+ {
+ WebInspector.panels.resources.setFileSystemDisabled();
+ }
}
-InspectorBackend.registerDomainDispatcher("FileSystem", WebInspector.FileSystem);
+InspectorBackend.registerDomainDispatcher("FileSystem", new WebInspector.FileSystemDispatcher());
WebInspector.FileSystemView = function(treeElement, fileSystemOrigin)
{
diff --git a/Source/WebCore/inspector/front-end/HAREntry.js b/Source/WebCore/inspector/front-end/HAREntry.js
index 6dfbd1b..4d690b3 100644
--- a/Source/WebCore/inspector/front-end/HAREntry.js
+++ b/Source/WebCore/inspector/front-end/HAREntry.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -204,7 +204,7 @@ WebInspector.HARLog.prototype = {
version: webKitVersion ? webKitVersion[1] : "n/a"
},
pages: this._buildPages(),
- entries: Object.keys(WebInspector.networkResources).map(this._convertResource.bind(this))
+ entries: WebInspector.networkResources.map(this._convertResource.bind(this))
}
},
@@ -228,11 +228,11 @@ WebInspector.HARLog.prototype = {
}
},
- _convertResource: function(id)
+ _convertResource: function(resource)
{
- var entry = (new WebInspector.HAREntry(WebInspector.networkResources[id])).build();
+ var entry = (new WebInspector.HAREntry(resource)).build();
if (this.includeResourceIds)
- entry._resourceId = id;
+ entry._resourceId = resource.identifier;
return entry;
},
diff --git a/Source/WebCore/inspector/front-end/ImageView.js b/Source/WebCore/inspector/front-end/ImageView.js
index 54a16bb..917a9da 100644
--- a/Source/WebCore/inspector/front-end/ImageView.js
+++ b/Source/WebCore/inspector/front-end/ImageView.js
@@ -70,12 +70,7 @@ WebInspector.ImageView.prototype = {
var infoListElement = document.createElement("dl");
infoListElement.className = "infoList";
- function onResourceContent(element, content)
- {
- imagePreviewElement.setAttribute("src", this.resource.contentURL);
- }
- this.resource.requestContent(onResourceContent.bind(this));
-
+ this.resource.populateImageSource(imagePreviewElement);
function onImageLoad()
{
@@ -87,7 +82,7 @@ WebInspector.ImageView.prototype = {
var imageProperties = [
{ name: WebInspector.UIString("Dimensions"), value: WebInspector.UIString("%d × %d", imagePreviewElement.naturalWidth, imagePreviewElement.naturalHeight) },
- { name: WebInspector.UIString("File size"), value: Number.bytesToString(resourceSize, WebInspector.UIString) },
+ { name: WebInspector.UIString("File size"), value: Number.bytesToString(resourceSize) },
{ name: WebInspector.UIString("MIME type"), value: this.resource.mimeType }
];
@@ -100,6 +95,13 @@ WebInspector.ImageView.prototype = {
dd.textContent = imageProperties[i].value;
infoListElement.appendChild(dd);
}
+ var dt = document.createElement("dt");
+ dt.textContent = WebInspector.UIString("URL");
+ infoListElement.appendChild(dt);
+ var dd = document.createElement("dd");
+ dd.appendChild(WebInspector.linkifyURLAsNode(this.resource.url));
+ infoListElement.appendChild(dd);
+
this._container.appendChild(infoListElement);
}
imagePreviewElement.addEventListener("load", onImageLoad.bind(this), false);
diff --git a/Source/WebCore/inspector/front-end/NetworkManager.js b/Source/WebCore/inspector/front-end/NetworkManager.js
index b1ec97c..a657377 100644
--- a/Source/WebCore/inspector/front-end/NetworkManager.js
+++ b/Source/WebCore/inspector/front-end/NetworkManager.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -30,8 +30,9 @@
WebInspector.NetworkManager = function(resourceTreeModel)
{
- this._resourcesById = {};
+ this._inflightResources = {};
this._resourceTreeModel = resourceTreeModel;
+ this._lastIdentifierForCachedResource = 0;
InspectorBackend.registerDomainDispatcher("Network", this);
}
@@ -86,20 +87,21 @@ WebInspector.NetworkManager.updateResourceWithCachedResource = function(resource
}
WebInspector.NetworkManager.prototype = {
- identifierForInitialRequest: function(identifier, url, loader, callStack)
+ reset: function()
{
- var resource = this._createResource(identifier, url, loader, callStack);
-
- // It is important to bind resource url early (before scripts compile).
- this._resourceTreeModel.bindResourceURL(resource);
+ WebInspector.panels.network.clear();
+ WebInspector.panels.resources.clear();
+ this._resourceTreeModel.reloadCachedResources();
+ },
- WebInspector.panels.network.refreshResource(resource);
- WebInspector.panels.audits.resourceStarted(resource);
+ identifierForInitialRequest: function(identifier, url, loader, callStack)
+ {
+ this._startResource(this._resourceTreeModel.createResource(identifier, url, loader, callStack));
},
willSendRequest: function(identifier, time, request, redirectResponse)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -107,24 +109,22 @@ WebInspector.NetworkManager.prototype = {
// See http/tests/misc/will-send-request-returns-null-on-redirect.html
var isRedirect = !redirectResponse.isNull && request.url.length;
if (isRedirect) {
- resource.endTime = time;
this.didReceiveResponse(identifier, time, "Other", redirectResponse);
- resource = this._appendRedirect(resource.identifier, request.url);
+ resource = this._appendRedirect(resource.identifier, time, request.url);
}
WebInspector.NetworkManager.updateResourceWithRequest(resource, request);
resource.startTime = time;
- if (isRedirect) {
- WebInspector.panels.network.refreshResource(resource);
- WebInspector.panels.audits.resourceStarted(resource);
- } else
+ if (isRedirect)
+ this._startResource(resource);
+ else
WebInspector.panels.network.refreshResource(resource);
},
markResourceAsCached: function(identifier)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -134,7 +134,7 @@ WebInspector.NetworkManager.prototype = {
didReceiveResponse: function(identifier, time, resourceType, response)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -149,7 +149,7 @@ WebInspector.NetworkManager.prototype = {
didReceiveContentLength: function(identifier, time, lengthReceived)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -161,54 +161,44 @@ WebInspector.NetworkManager.prototype = {
didFinishLoading: function(identifier, finishTime)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
- resource.endTime = finishTime;
- resource.finished = true;
-
- WebInspector.panels.network.refreshResource(resource);
- WebInspector.panels.audits.resourceFinished(resource);
- WebInspector.extensionServer.notifyResourceFinished(resource);
- delete this._resourcesById[identifier];
+ this._finishResource(resource, finishTime);
},
didFailLoading: function(identifier, time, localizedDescription)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
resource.failed = true;
resource.localizedFailDescription = localizedDescription;
- resource.finished = true;
- resource.endTime = time;
-
- WebInspector.panels.network.refreshResource(resource);
- WebInspector.panels.audits.resourceFinished(resource);
- WebInspector.extensionServer.notifyResourceFinished(resource);
- delete this._resourcesById[identifier];
+ this._finishResource(resource, time);
},
didLoadResourceFromMemoryCache: function(time, cachedResource)
{
- var resource = this._createResource(null, cachedResource.url, cachedResource.loader);
+ var resource = this._resourceTreeModel.createResource("cached:" + ++this._lastIdentifierForCachedResource, cachedResource.url, cachedResource.loader);
WebInspector.NetworkManager.updateResourceWithCachedResource(resource, cachedResource);
resource.cached = true;
resource.requestMethod = "GET";
- resource.startTime = resource.responseReceivedTime = resource.endTime = time;
- resource.finished = true;
-
- WebInspector.panels.network.refreshResource(resource);
- WebInspector.panels.audits.resourceStarted(resource);
- WebInspector.panels.audits.resourceFinished(resource);
+ this._startResource(resource);
+ resource.startTime = resource.responseReceivedTime = time;
+ this._finishResource(resource, time);
this._resourceTreeModel.addResourceToFrame(resource.loader.frameId, resource);
},
+ frameDetachedFromParent: function(frameId)
+ {
+ this._resourceTreeModel.frameDetachedFromParent(frameId);
+ },
+
setInitialContent: function(identifier, sourceString, type)
{
- var resource = WebInspector.panels.network.resources[identifier];
+ var resource = WebInspector.networkResourceById(identifier);
if (!resource)
return;
@@ -226,20 +216,21 @@ WebInspector.NetworkManager.prototype = {
if (mainResource) {
WebInspector.mainResource = mainResource;
mainResource.isMainResource = true;
+ WebInspector.panels.network.mainResourceChanged();
}
}
},
didCreateWebSocket: function(identifier, requestURL)
{
- var resource = this._createResource(identifier, requestURL);
+ var resource = this._resourceTreeModel.createResource(identifier, requestURL);
resource.type = WebInspector.Resource.Type.WebSocket;
- WebInspector.panels.network.refreshResource(resource);
+ this._startResource(resource);
},
willSendWebSocketHandshakeRequest: function(identifier, time, request)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -253,7 +244,7 @@ WebInspector.NetworkManager.prototype = {
didReceiveWebSocketHandshakeResponse: function(identifier, time, response)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
@@ -268,31 +259,44 @@ WebInspector.NetworkManager.prototype = {
didCloseWebSocket: function(identifier, time)
{
- var resource = this._resourcesById[identifier];
+ var resource = this._inflightResources[identifier];
if (!resource)
return;
- resource.endTime = time;
-
- WebInspector.panels.network.refreshResource(resource);
+ this._finishResource(resource, time);
},
- _createResource: function(identifier, url, loader, callStack)
+ _appendRedirect: function(identifier, time, redirectURL)
{
- var resource = WebInspector.ResourceTreeModel.createResource(identifier, url, loader, callStack);
- this._resourcesById[identifier] = resource;
- return resource;
+ var originalResource = this._inflightResources[identifier];
+ var previousRedirects = originalResource.redirects || [];
+ originalResource.identifier = "redirected:" + identifier + "." + previousRedirects.length;
+ delete originalResource.redirects;
+ this._finishResource(originalResource, time);
+ // We bound resource early, but it happened to be a redirect and won't make it through to
+ // the resource tree -- so unbind it.
+ // FIXME: we should bind upon adding to the tree only (encapsulated into ResourceTreeModel),
+ // Script debugger should do explicit late binding on its own.
+ this._resourceTreeModel.unbindResourceURL(originalResource);
+
+ var newResource = this._resourceTreeModel.createResource(identifier, redirectURL, originalResource.loader, originalResource.stackTrace);
+ newResource.redirects = previousRedirects.concat(originalResource);
+ return newResource;
},
- _appendRedirect: function(identifier, redirectURL)
+ _startResource: function(resource, skipRefresh)
{
- var originalResource = this._resourcesById[identifier];
- originalResource.finished = true;
- originalResource.identifier = null;
+ this._inflightResources[resource.identifier] = resource;
+ WebInspector.panels.network.appendResource(resource, skipRefresh);
+ WebInspector.panels.audits.resourceStarted(resource);
+ },
- var newResource = this._createResource(identifier, redirectURL, originalResource.loader, originalResource.stackTrace);
- newResource.redirects = originalResource.redirects || [];
- delete originalResource.redirects;
- newResource.redirects.push(originalResource);
- return newResource;
+ _finishResource: function(resource, finishTime)
+ {
+ resource.endTime = finishTime;
+ resource.finished = true;
+ WebInspector.panels.network.refreshResource(resource);
+ WebInspector.panels.audits.resourceFinished(resource);
+ WebInspector.extensionServer.notifyResourceFinished(resource);
+ delete this._inflightResources[resource.identifier];
}
}
diff --git a/Source/WebCore/inspector/front-end/NetworkPanel.js b/Source/WebCore/inspector/front-end/NetworkPanel.js
index 7b6df8b..28cbd36 100644
--- a/Source/WebCore/inspector/front-end/NetworkPanel.js
+++ b/Source/WebCore/inspector/front-end/NetworkPanel.js
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
* Copyright (C) 2008, 2009 Anthony Ricaud <rik@webkit.org>
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -38,7 +38,6 @@ WebInspector.NetworkPanel = function()
this._resources = [];
this._resourcesById = {};
this._resourcesByURL = {};
- this._lastIdentifier = 0;
this._staleResources = [];
this._resourceGridNodes = {};
this._mainResourceLoadTime = -1;
@@ -733,12 +732,6 @@ WebInspector.NetworkPanel.prototype = {
this._preserveLogToggle.toggled = !this._preserveLogToggle.toggled;
},
- reset: function()
- {
- if (!this._preserveLogToggle.toggled)
- this._reset();
- },
-
_reset: function()
{
this._popoverHelper.hidePopup();
@@ -771,32 +764,34 @@ WebInspector.NetworkPanel.prototype = {
get resources()
{
- return this._resourcesById;
+ return this._resources;
},
- refreshResource: function(resource)
+ resourceById: function(id)
{
- if (!resource.identifier)
- resource.identifier = "network:" + this._lastIdentifier++;
+ return this._resourcesById[id];
+ },
- if (!this._resourcesById[resource.identifier]) {
- this._resources.push(resource);
- this._resourcesById[resource.identifier] = resource;
- this._resourcesByURL[resource.url] = resource;
+ appendResource: function(resource)
+ {
+ this._resources.push(resource);
+ this._resourcesById[resource.identifier] = resource;
+ this._resourcesByURL[resource.url] = resource;
- // Pull all the redirects of the main resource upon commit load.
- if (resource.redirects) {
- for (var i = 0; i < resource.redirects.length; ++i)
- this.refreshResource(resource.redirects[i]);
- }
+ // Pull all the redirects of the main resource upon commit load.
+ if (resource.redirects) {
+ for (var i = 0; i < resource.redirects.length; ++i)
+ this.refreshResource(resource.redirects[i]);
}
+ this.refreshResource(resource);
+ },
+
+ refreshResource: function(resource)
+ {
this._staleResources.push(resource);
this._scheduleRefresh();
- if (!resource)
- return;
-
var oldView = WebInspector.ResourceView.existingResourceViewForResource(resource);
if (!oldView)
return;
@@ -809,6 +804,24 @@ WebInspector.NetworkPanel.prototype = {
this.visibleView = newView;
},
+ clear: function()
+ {
+ if (this._preserveLogToggle.toggled)
+ return;
+ this._reset();
+ },
+
+ mainResourceChanged: function()
+ {
+ if (this._preserveLogToggle.toggled)
+ return;
+
+ this._reset();
+ // Now resurrect the main resource along with all redirects that lead to it.
+ var resourcesToAppend = (WebInspector.mainResource.redirects || []).concat(WebInspector.mainResource);
+ resourcesToAppend.forEach(this.appendResource, this);
+ },
+
canShowSourceLine: function(url, line)
{
return !!this._resourcesByURL[url];
@@ -978,7 +991,7 @@ WebInspector.NetworkPanel.prototype = {
_contextMenu: function(event)
{
// createBlobURL is enabled conditionally, do not expose resource export if it's not available.
- if (typeof window.createObjectURL !== "function" || !Preferences.resourceExportEnabled)
+ if (typeof window.webkitURL.createObjectURL !== "function" || !Preferences.resourceExportEnabled)
return;
var contextMenu = new WebInspector.ContextMenu();
@@ -1230,7 +1243,7 @@ WebInspector.NetworkTimeCalculator.prototype = {
formatValue: function(value)
{
- return Number.secondsToString(value, WebInspector.UIString);
+ return Number.secondsToString(value);
},
_lowerBound: function(resource)
@@ -1254,7 +1267,7 @@ WebInspector.NetworkTransferTimeCalculator = function()
WebInspector.NetworkTransferTimeCalculator.prototype = {
formatValue: function(value)
{
- return Number.secondsToString(value, WebInspector.UIString);
+ return Number.secondsToString(value);
},
_lowerBound: function(resource)
@@ -1278,7 +1291,7 @@ WebInspector.NetworkTransferDurationCalculator = function()
WebInspector.NetworkTransferDurationCalculator.prototype = {
formatValue: function(value)
{
- return Number.secondsToString(value, WebInspector.UIString);
+ return Number.secondsToString(value);
},
_upperBound: function(resource)
@@ -1408,15 +1421,7 @@ WebInspector.NetworkDataGridNode.prototype = {
if (this._resource.category === WebInspector.resourceCategories.images) {
var previewImage = document.createElement("img");
previewImage.className = "image-network-icon-preview";
-
- function onResourceContent()
- {
- previewImage.src = this._resource.contentURL;
- }
- if (Preferences.useDataURLForResourceImageIcons)
- this._resource.requestContent(onResourceContent.bind(this));
- else
- previewImage.src = this._resource.url;
+ this._resource.populateImageSource(previewImage);
var iconElement = document.createElement("div");
iconElement.className = "icon";
diff --git a/Source/WebCore/inspector/front-end/ProfileDataGridTree.js b/Source/WebCore/inspector/front-end/ProfileDataGridTree.js
index adf34f1..7988674 100644
--- a/Source/WebCore/inspector/front-end/ProfileDataGridTree.js
+++ b/Source/WebCore/inspector/front-end/ProfileDataGridTree.js
@@ -50,7 +50,7 @@ WebInspector.ProfileDataGridNode.prototype = {
{
function formatMilliseconds(time)
{
- return Number.secondsToString(time / 1000, WebInspector.UIString, !Preferences.samplingCPUProfiler);
+ return Number.secondsToString(time / 1000, !Preferences.samplingCPUProfiler);
}
var data = {};
diff --git a/Source/WebCore/inspector/front-end/ProfilesPanel.js b/Source/WebCore/inspector/front-end/ProfilesPanel.js
index bff5be7..2e0ab28 100644
--- a/Source/WebCore/inspector/front-end/ProfilesPanel.js
+++ b/Source/WebCore/inspector/front-end/ProfilesPanel.js
@@ -124,7 +124,7 @@ WebInspector.ProfilesPanel = function()
this._profiles = [];
this._profilerEnabled = Preferences.profilerAlwaysEnabled;
this._reset();
- InspectorBackend.registerDomainDispatcher("Profiler", this);
+ InspectorBackend.registerDomainDispatcher("Profiler", new WebInspector.ProfilerDispatcher(this));
}
WebInspector.ProfilesPanel.prototype = {
@@ -162,7 +162,7 @@ WebInspector.ProfilesPanel.prototype = {
this._populateProfiles();
},
- profilerWasEnabled: function()
+ _profilerWasEnabled: function()
{
if (this._profilerEnabled)
return;
@@ -174,7 +174,7 @@ WebInspector.ProfilesPanel.prototype = {
this._populateProfiles();
},
- profilerWasDisabled: function()
+ _profilerWasDisabled: function()
{
if (!this._profilerEnabled)
return;
@@ -183,11 +183,6 @@ WebInspector.ProfilesPanel.prototype = {
this._reset();
},
- resetProfiles: function()
- {
- this._reset();
- },
-
_reset: function()
{
for (var i = 0; i < this._profiles.length; ++i)
@@ -262,7 +257,7 @@ WebInspector.ProfilesPanel.prototype = {
return escape(text) + '/' + escape(profileTypeId);
},
- addProfileHeader: function(profile)
+ _addProfileHeader: function(profile)
{
var typeId = profile.typeId;
var profileType = this.getProfileType(typeId);
@@ -327,7 +322,7 @@ WebInspector.ProfilesPanel.prototype = {
}
},
- removeProfileHeader: function(profile)
+ _removeProfileHeader: function(profile)
{
var typeId = profile.typeId;
var profileType = this.getProfileType(typeId);
@@ -432,7 +427,7 @@ WebInspector.ProfilesPanel.prototype = {
}
},
- addHeapSnapshotChunk: function(uid, chunk)
+ _addHeapSnapshotChunk: function(uid, chunk)
{
var profile = this._profilesIdMap[this._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];
if (!profile || profile._loaded || !profile._is_loading)
@@ -441,7 +436,7 @@ WebInspector.ProfilesPanel.prototype = {
profile._json += chunk;
},
- finishHeapSnapshot: function(uid)
+ _finishHeapSnapshot: function(uid)
{
var profile = this._profilesIdMap[this._makeKey(uid, WebInspector.HeapSnapshotProfileType.TypeId)];
if (!profile || profile._loaded || !profile._is_loading)
@@ -600,7 +595,7 @@ WebInspector.ProfilesPanel.prototype = {
var profileHeadersLength = profileHeaders.length;
for (var i = 0; i < profileHeadersLength; ++i)
if (!this.hasProfile(profileHeaders[i]))
- WebInspector.panels.profiles.addProfileHeader(profileHeaders[i]);
+ this._addProfileHeader(profileHeaders[i]);
}
InspectorBackend.getProfileHeaders(populateCallback.bind(this));
@@ -616,22 +611,22 @@ WebInspector.ProfilesPanel.prototype = {
this.resize();
},
- setRecordingProfile: function(isProfiling)
+ _setRecordingProfile: function(isProfiling)
{
this.getProfileType(WebInspector.CPUProfileType.TypeId).setRecordingProfile(isProfiling);
if (this.hasTemporaryProfile(WebInspector.CPUProfileType.TypeId) !== isProfiling) {
if (!this._temporaryRecordingProfile) {
this._temporaryRecordingProfile = {
typeId: WebInspector.CPUProfileType.TypeId,
- title: WebInspector.UIString("Recording"),
+ title: WebInspector.UIString("Recording…"),
uid: -1,
isTemporary: true
};
}
if (isProfiling)
- this.addProfileHeader(this._temporaryRecordingProfile);
+ this._addProfileHeader(this._temporaryRecordingProfile);
else
- this.removeProfileHeader(this._temporaryRecordingProfile);
+ this._removeProfileHeader(this._temporaryRecordingProfile);
}
this.updateProfileTypeButtons();
}
@@ -639,6 +634,49 @@ WebInspector.ProfilesPanel.prototype = {
WebInspector.ProfilesPanel.prototype.__proto__ = WebInspector.Panel.prototype;
+
+WebInspector.ProfilerDispatcher = function(profiler)
+{
+ this._profiler = profiler;
+}
+
+WebInspector.ProfilerDispatcher.prototype = {
+ profilerWasEnabled: function()
+ {
+ this._profiler._profilerWasEnabled();
+ },
+
+ profilerWasDisabled: function()
+ {
+ this._profiler._profilerWasDisabled();
+ },
+
+ resetProfiles: function()
+ {
+ this._profiler._reset();
+ },
+
+ addProfileHeader: function(profile)
+ {
+ this._profiler._addProfileHeader(profile);
+ },
+
+ addHeapSnapshotChunk: function(uid, chunk)
+ {
+ this._profiler._addHeapSnapshotChunk(uid, chunk);
+ },
+
+ finishHeapSnapshot: function(uid)
+ {
+ this._profiler._finishHeapSnapshot(uid);
+ },
+
+ setRecordingProfile: function(isProfiling)
+ {
+ this._profiler._setRecordingProfile(isProfiling);
+ }
+}
+
WebInspector.ProfileSidebarTreeElement = function(profile, titleFormat, className)
{
this.profile = profile;
@@ -660,7 +698,7 @@ WebInspector.ProfileSidebarTreeElement.prototype = {
ondelete: function()
{
- this.treeOutline.panel.removeProfileHeader(this.profile);
+ this.treeOutline.panel._removeProfileHeader(this.profile);
return true;
},
@@ -720,4 +758,3 @@ WebInspector.ProfileGroupSidebarTreeElement.prototype = {
}
WebInspector.ProfileGroupSidebarTreeElement.prototype.__proto__ = WebInspector.SidebarTreeElement.prototype;
-
diff --git a/Source/WebCore/inspector/front-end/Resource.js b/Source/WebCore/inspector/front-end/Resource.js
index 063ca43..7340645 100644
--- a/Source/WebCore/inspector/front-end/Resource.js
+++ b/Source/WebCore/inspector/front-end/Resource.js
@@ -55,7 +55,27 @@ WebInspector.Resource.Type = {
toUIString: function(type)
{
- return WebInspector.UIString(WebInspector.Resource.Type.toString(type));
+ switch (type) {
+ case this.Document:
+ return WebInspector.UIString("Document");
+ case this.Stylesheet:
+ return WebInspector.UIString("Stylesheet");
+ case this.Image:
+ return WebInspector.UIString("Image");
+ case this.Font:
+ return WebInspector.UIString("Font");
+ case this.Script:
+ return WebInspector.UIString("Script");
+ case this.XHR:
+ return WebInspector.UIString("XHR");
+ case this.Media:
+ return WebInspector.UIString("Media");
+ case this.WebSocket:
+ return WebInspector.UIString("WebSocket");
+ case this.Other:
+ default:
+ return WebInspector.UIString("Other");
+ }
},
// Returns locale-independent string identifier of resource type (primarily for use in extension API).
@@ -658,7 +678,20 @@ WebInspector.Resource.prototype = {
this._innerRequestContent();
},
- get contentURL()
+ populateImageSource: function(image)
+ {
+ function onResourceContent()
+ {
+ image.src = this._contentURL();
+ }
+
+ if (Preferences.useDataURLForResourceImageIcons)
+ this.requestContent(onResourceContent.bind(this));
+ else
+ image.src = this.url;
+ },
+
+ _contentURL: function()
{
const maxDataUrlSize = 1024 * 1024;
// If resource content is not available or won't fit a data URL, fall back to using original URL.
diff --git a/Source/WebCore/inspector/front-end/ResourceCookiesView.js b/Source/WebCore/inspector/front-end/ResourceCookiesView.js
index e419070..b60b1b6 100644
--- a/Source/WebCore/inspector/front-end/ResourceCookiesView.js
+++ b/Source/WebCore/inspector/front-end/ResourceCookiesView.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -56,10 +56,12 @@ WebInspector.ResourceCookiesView.prototype = {
if (this._emptyMsgElement)
this._emptyMsgElement.parentElement.removeChild(this._emptyMsgElement);
- this._cookiesTable = new WebInspector.CookiesTable(null, true, true);
- this._cookiesTable.addCookiesFolder(WebInspector.UIString("Request Cookies"), this._resource.requestCookies);
- this._cookiesTable.addCookiesFolder(WebInspector.UIString("Response Cookies"), this._resource.responseCookies);
- this.element.appendChild(this._cookiesTable.element);
+ if (!this._cookiesTable) {
+ this._cookiesTable = new WebInspector.CookiesTable(null, true, true);
+ this._cookiesTable.addCookiesFolder(WebInspector.UIString("Request Cookies"), this._resource.requestCookies);
+ this._cookiesTable.addCookiesFolder(WebInspector.UIString("Response Cookies"), this._resource.responseCookies);
+ this.element.appendChild(this._cookiesTable.element);
+ }
WebInspector.View.prototype.show.call(this, parentElement);
this._cookiesTable.updateWidths();
diff --git a/Source/WebCore/inspector/front-end/ResourceTreeModel.js b/Source/WebCore/inspector/front-end/ResourceTreeModel.js
index 7c7b86d..b114b94 100644
--- a/Source/WebCore/inspector/front-end/ResourceTreeModel.js
+++ b/Source/WebCore/inspector/front-end/ResourceTreeModel.js
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2011 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
@@ -31,25 +31,18 @@
WebInspector.ResourceTreeModel = function()
{
- this._resourcesByURL = {};
- this._resourcesByFrameId = {};
- this._subframes = {};
- InspectorBackend.registerDomainDispatcher("Resources", this);
- InspectorBackend.cachedResources(this._processCachedResources.bind(this));
-}
-
-WebInspector.ResourceTreeModel.createResource = function(identifier, url, loader, stackTrace)
-{
- var resource = new WebInspector.Resource(identifier, url);
- resource.loader = loader;
- if (loader)
- resource.documentURL = loader.url;
- resource.stackTrace = stackTrace;
-
- return resource;
+ this.reloadCachedResources();
}
WebInspector.ResourceTreeModel.prototype = {
+ reloadCachedResources: function()
+ {
+ this._resourcesByURL = {};
+ this._resourcesByFrameId = {};
+ this._subframes = {};
+ InspectorBackend.cachedResources(this._processCachedResources.bind(this));
+ },
+
addOrUpdateFrame: function(frame)
{
var tmpResource = new WebInspector.Resource(null, frame.url);
@@ -175,7 +168,7 @@ WebInspector.ResourceTreeModel.prototype = {
preservedResourcesForFrame.push(resource);
continue;
}
- this._unbindResourceURL(resource);
+ this.unbindResourceURL(resource);
}
delete this._resourcesByFrameId[frameId];
@@ -201,7 +194,7 @@ WebInspector.ResourceTreeModel.prototype = {
return false;
},
- _unbindResourceURL: function(resource)
+ unbindResourceURL: function(resource)
{
var resourceForURL = this._resourcesByURL[resource.url];
if (!resourceForURL)
@@ -226,13 +219,12 @@ WebInspector.ResourceTreeModel.prototype = {
_addFramesRecursively: function(framePayload)
{
- var frameResource = WebInspector.ResourceTreeModel.createResource(null, framePayload.resource.url, framePayload.resource.loader);
+ var frameResource = this.createResource(null, framePayload.resource.url, framePayload.resource.loader);
WebInspector.NetworkManager.updateResourceWithRequest(frameResource, framePayload.resource.request);
WebInspector.NetworkManager.updateResourceWithResponse(frameResource, framePayload.resource.response);
frameResource.type = WebInspector.Resource.Type["Document"];
frameResource.finished = true;
- this.bindResourceURL(frameResource);
this.addOrUpdateFrame(framePayload);
this.addResourceToFrame(framePayload.id, frameResource);
@@ -244,12 +236,24 @@ WebInspector.ResourceTreeModel.prototype = {
for (var i = 0; i < framePayload.subresources.length; ++i) {
var cachedResource = framePayload.subresources[i];
- var resource = WebInspector.ResourceTreeModel.createResource(null, cachedResource.url, cachedResource.loader);
+ var resource = this.createResource(null, cachedResource.url, cachedResource.loader);
WebInspector.NetworkManager.updateResourceWithCachedResource(resource, cachedResource);
resource.finished = true;
- this.bindResourceURL(resource);
this.addResourceToFrame(framePayload.id, resource);
}
return frameResource;
+ },
+
+ createResource: function(identifier, url, loader, stackTrace)
+ {
+ var resource = new WebInspector.Resource(identifier, url);
+ resource.loader = loader;
+ if (loader) {
+ resource.documentURL = loader.url;
+ this.bindResourceURL(resource);
+ }
+ resource.stackTrace = stackTrace;
+
+ return resource;
}
}
diff --git a/Source/WebCore/inspector/front-end/ResourcesPanel.js b/Source/WebCore/inspector/front-end/ResourcesPanel.js
index ecb826f..d96989b 100644
--- a/Source/WebCore/inspector/front-end/ResourcesPanel.js
+++ b/Source/WebCore/inspector/front-end/ResourcesPanel.js
@@ -165,6 +165,12 @@ WebInspector.ResourcesPanel.prototype = {
this.sidebarTree.selectedTreeElement.deselect();
},
+ clear: function()
+ {
+ this.resourcesListTreeElement.removeChildren();
+ this.reset();
+ },
+
addOrUpdateFrame: function(parentFrameId, frameId, title, subtitle)
{
var frameTreeElement = this._treeElementForFrameId[frameId];
@@ -1005,7 +1011,7 @@ WebInspector.FrameResourceTreeElement.prototype = {
if (this._resource.category === WebInspector.resourceCategories.images) {
var previewImage = document.createElement("img");
previewImage.className = "image-resource-icon-preview";
- previewImage.src = this._resource.url;
+ this._resource.populateImageSource(previewImage);
var iconElement = document.createElement("div");
iconElement.className = "icon";
@@ -1227,7 +1233,7 @@ WebInspector.ApplicationCacheTreeElement.prototype.__proto__ = WebInspector.Base
WebInspector.ResourceRevisionTreeElement = function(storagePanel, revision)
{
- var title = revision.timestamp ? revision.timestamp.toLocaleTimeString() : "(original)";
+ var title = revision.timestamp ? revision.timestamp.toLocaleTimeString() : WebInspector.UIString("(original)");
WebInspector.BaseStorageTreeElement.call(this, storagePanel, null, title, "resource-sidebar-tree-item resources-category-" + revision.category.name);
if (revision.timestamp)
this.tooltip = revision.timestamp.toLocaleString();
diff --git a/Source/WebCore/inspector/front-end/Script.js b/Source/WebCore/inspector/front-end/Script.js
index 184fe97..89b2121 100644
--- a/Source/WebCore/inspector/front-end/Script.js
+++ b/Source/WebCore/inspector/front-end/Script.js
@@ -23,12 +23,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-WebInspector.Script = function(sourceID, sourceURL, source, startingLine, errorLine, errorMessage, worldType)
+WebInspector.Script = function(sourceID, sourceURL, source, lineOffset, columnOffset, errorLine, errorMessage, worldType)
{
this.sourceID = sourceID;
this.sourceURL = sourceURL;
this._source = source;
- this.startingLine = startingLine;
+ this.lineOffset = lineOffset;
+ this.columnOffset = columnOffset;
this.errorLine = errorLine;
this.errorMessage = errorMessage;
this.worldType = worldType;
@@ -57,24 +58,40 @@ WebInspector.Script.WorldType = {
EXTENSIONS_WORLD: 1
}
-WebInspector.Script.Events = {
- SourceChanged: "source-changed"
-}
-
WebInspector.Script.prototype = {
+ get startingLine()
+ {
+ return this.lineOffset + 1;
+ },
+
get linesCount()
{
if (!this.source)
return 0;
- if (this._linesCount)
- return this._linesCount;
- this._linesCount = 0;
- var lastIndex = this.source.indexOf("\n");
- while (lastIndex !== -1) {
- lastIndex = this.source.indexOf("\n", lastIndex + 1)
- this._linesCount++;
+ if (!this._lineEndings)
+ this._lineEndings = this._source.findAll("\n");
+ return this._lineEndings.length + 1;
+ },
+
+ sourceLine: function(lineNumber, callback)
+ {
+ function extractSourceLine()
+ {
+ lineNumber -= this.startingLine;
+ callback(this._source.substring(this._lineEndings[lineNumber - 1], this._lineEndings[lineNumber]));
+ }
+
+ if (this._lineEndings) {
+ extractSourceLine.call(this);
+ return;
}
- return this._linesCount;
+
+ function didRequestSource()
+ {
+ this._lineEndings = this._source.findAll("\n");
+ extractSourceLine.call(this);
+ }
+ this.requestSource(didRequestSource.bind(this));
},
get source()
@@ -85,8 +102,20 @@ WebInspector.Script.prototype = {
set source(source)
{
this._source = source;
- this.dispatchEventToListeners(WebInspector.Script.Events.SourceChanged);
+ },
+
+ requestSource: function(callback)
+ {
+ if (this._source) {
+ callback(this._source);
+ return;
+ }
+
+ function didGetScriptSource(source)
+ {
+ this._source = source;
+ callback(this._source);
+ }
+ InspectorBackend.getScriptSource(this.sourceID, didGetScriptSource.bind(this));
}
}
-
-WebInspector.Script.prototype.__proto__ = WebInspector.Object.prototype;
diff --git a/Source/WebCore/inspector/front-end/ScriptView.js b/Source/WebCore/inspector/front-end/ScriptView.js
index 39dae55..d6c1c59 100644
--- a/Source/WebCore/inspector/front-end/ScriptView.js
+++ b/Source/WebCore/inspector/front-end/ScriptView.js
@@ -29,70 +29,15 @@ WebInspector.ScriptView = function(script)
this.element.addStyleClass("script-view");
- this.script = script;
- this.script.addEventListener(WebInspector.Script.Events.SourceChanged, this._scriptSourceChanged, this);
-
- this._frameNeedsSetup = true;
- this._sourceFrameSetup = false;
- this.sourceFrame = new WebInspector.SourceFrame(this.element, [script], WebInspector.panels.scripts.canEditScripts());
+ var contentProvider = new WebInspector.SourceFrameContentProviderForScript(script);
+ this.sourceFrame = new WebInspector.SourceFrame(this.element, contentProvider, "", WebInspector.panels.scripts.canEditScripts());
}
WebInspector.ScriptView.prototype = {
- show: function(parentElement)
- {
- WebInspector.View.prototype.show.call(this, parentElement);
- this.setupSourceFrameIfNeeded();
- this.sourceFrame.visible = true;
- this.resize();
- },
-
- setupSourceFrameIfNeeded: function()
- {
- if (!this._frameNeedsSetup)
- return;
- delete this._frameNeedsSetup;
-
- this.attach();
-
- if (this.script.source)
- this._sourceFrameSetupFinished();
- else
- InspectorBackend.getScriptSource(this.script.sourceID, this._didGetScriptSource.bind(this));
- },
-
- _didGetScriptSource: function(source)
- {
- this.script.source = source || WebInspector.UIString("<source is not available>");
- this._sourceFrameSetupFinished();
- },
-
- _sourceFrameSetupFinished: function()
- {
- this.sourceFrame.setContent("text/javascript", this._prependWhitespace(this.script.source));
- this._sourceFrameSetup = true;
- },
-
- _prependWhitespace: function(content) {
- var prefix = "";
- for (var i = 0; i < this.script.startingLine - 1; ++i)
- prefix += "\n";
- return prefix + content;
- },
-
- attach: function()
- {
- if (!this.element.parentNode)
- document.getElementById("script-resource-views").appendChild(this.element);
- },
-
- _scriptSourceChanged: function(event)
- {
- this.sourceFrame.updateContent(this._prependWhitespace(this.script.source));
- },
-
// The following methods are pulled from SourceView, since they are
// generic and work with ScriptView just fine.
+ show: WebInspector.SourceView.prototype.show,
hide: WebInspector.SourceView.prototype.hide,
revealLine: WebInspector.SourceView.prototype.revealLine,
highlightLine: WebInspector.SourceView.prototype.highlightLine,
@@ -111,3 +56,41 @@ WebInspector.ScriptView.prototype = {
}
WebInspector.ScriptView.prototype.__proto__ = WebInspector.View.prototype;
+
+
+WebInspector.SourceFrameContentProviderForScript = function(script)
+{
+ WebInspector.SourceFrameContentProvider.call(this);
+ this._script = script;
+}
+
+WebInspector.SourceFrameContentProviderForScript.prototype = {
+ requestContent: function(callback)
+ {
+ if (this._script.source) {
+ callback("text/javascript", this._script.source);
+ return;
+ }
+
+ function didRequestSource(content)
+ {
+ var source;
+ if (content) {
+ var prefix = "";
+ for (var i = 0; i < this._script.startingLine - 1; ++i)
+ prefix += "\n";
+ source = prefix + content;
+ } else
+ source = WebInspector.UIString("<source is not available>");
+ callback("text/javascript", source);
+ }
+ this._script.requestSource(didRequestSource.bind(this));
+ },
+
+ scripts: function()
+ {
+ return [this._script];
+ }
+}
+
+WebInspector.SourceFrameContentProviderForScript.prototype.__proto__ = WebInspector.SourceFrameContentProvider.prototype;
diff --git a/Source/WebCore/inspector/front-end/ScriptsPanel.js b/Source/WebCore/inspector/front-end/ScriptsPanel.js
index 138bbda..32212d4 100644
--- a/Source/WebCore/inspector/front-end/ScriptsPanel.js
+++ b/Source/WebCore/inspector/front-end/ScriptsPanel.js
@@ -218,11 +218,6 @@ WebInspector.ScriptsPanel.prototype = {
if (this.visibleView)
this.visibleView.show(this.viewsContainerElement);
-
- if (this._attachDebuggerWhenShown) {
- InspectorBackend.enableDebuggerFromFrontend(false);
- delete this._attachDebuggerWhenShown;
- }
},
hide: function()
@@ -256,9 +251,6 @@ WebInspector.ScriptsPanel.prototype = {
if (resource.finished) {
// Resource is finished, bind the script right away.
script.resource = resource;
- var view = WebInspector.ResourceView.existingResourceViewForResource(resource);
- if (view && view.sourceFrame)
- view.sourceFrame.addScript(script);
} else {
// Resource is not finished, bind the script later.
if (!resource._scriptsPendingResourceLoad) {
@@ -292,7 +284,7 @@ WebInspector.ScriptsPanel.prototype = {
return Preferences.canEditScriptSource;
},
- editScriptSource: function(editData, commitEditingCallback, cancelEditingCallback)
+ editScriptSource: function(editData, revertEditingCallback, cancelEditingCallback)
{
if (!this.canEditScripts())
return;
@@ -305,7 +297,16 @@ WebInspector.ScriptsPanel.prototype = {
function mycallback(success, newBodyOrErrorMessage, callFrames)
{
if (success) {
- commitEditingCallback(newBodyOrErrorMessage);
+ var script = WebInspector.debuggerModel.scriptForSourceID(editData.sourceID);
+ script.source = newBodyOrErrorMessage;
+ var oldView = script._scriptView
+ if (oldView) {
+ script._scriptView = new WebInspector.ScriptView(script);
+ this.viewRecreated(oldView, script._scriptView);
+ }
+ if (script.resource)
+ script.resource.setContent(newBodyOrErrorMessage, revertEditingCallback);
+
if (callFrames && callFrames.length)
this._debuggerPaused({ data: { callFrames: callFrames } });
} else {
@@ -389,15 +390,6 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
},
- attachDebuggerWhenShown: function()
- {
- if (this.element.parentElement) {
- InspectorBackend.enableDebuggerFromFrontend(false);
- } else {
- this._attachDebuggerWhenShown = true;
- }
- },
-
debuggerWasEnabled: function()
{
if (this._debuggerEnabled)
@@ -460,8 +452,8 @@ WebInspector.ScriptsPanel.prototype = {
viewRecreated: function(oldView, newView)
{
- if (this._visibleView === oldView)
- this._visibleView = newView;
+ if (this.visibleView === oldView)
+ this.visibleView = newView;
},
canShowSourceLine: function(url, line)
@@ -527,7 +519,6 @@ WebInspector.ScriptsPanel.prototype = {
if (!this.element.parentNode)
this.attach();
- view.setupSourceFrameIfNeeded();
return view.sourceFrame;
},
@@ -545,10 +536,6 @@ WebInspector.ScriptsPanel.prototype = {
if (!view)
return null;
- if (!view.setupSourceFrameIfNeeded)
- return null;
-
- view.setupSourceFrameIfNeeded();
return view.sourceFrame;
},
@@ -862,7 +849,7 @@ WebInspector.ScriptsPanel.prototype = {
if (this._debuggerEnabled)
InspectorBackend.disableDebugger(true);
else
- InspectorBackend.enableDebuggerFromFrontend(!!optionalAlways);
+ InspectorBackend.enableDebugger(!!optionalAlways);
},
_togglePauseOnExceptions: function()
@@ -892,7 +879,7 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
- InspectorBackend.stepOverStatement();
+ InspectorBackend.stepOver();
},
_stepIntoClicked: function()
@@ -902,7 +889,7 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
- InspectorBackend.stepIntoStatement();
+ InspectorBackend.stepInto();
},
_stepOutClicked: function()
@@ -912,7 +899,7 @@ WebInspector.ScriptsPanel.prototype = {
this._clearInterface();
- InspectorBackend.stepOutOfFunction();
+ InspectorBackend.stepOut();
},
toggleBreakpointsClicked: function()
diff --git a/Source/WebCore/inspector/front-end/SourceFrame.js b/Source/WebCore/inspector/front-end/SourceFrame.js
index fa8441d..af10f1e 100644
--- a/Source/WebCore/inspector/front-end/SourceFrame.js
+++ b/Source/WebCore/inspector/front-end/SourceFrame.js
@@ -28,12 +28,11 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-WebInspector.SourceFrame = function(parentElement, scripts, canEditScripts)
+WebInspector.SourceFrame = function(parentElement, contentProvider, url, canEditScripts)
{
this._parentElement = parentElement;
- this._scripts = {};
- for (var i = 0; i < scripts.length; ++i)
- this._scripts[scripts[i].sourceID] = scripts[i];
+ this._contentProvider = contentProvider;
+ this._url = url;
this._canEditScripts = canEditScripts;
this._textModel = new WebInspector.TextEditorModel();
@@ -43,7 +42,6 @@ WebInspector.SourceFrame = function(parentElement, scripts, canEditScripts)
this._rowMessages = {};
this._messageBubbles = {};
- this._loaded = false;
this._popoverObjectGroup = "popover";
}
@@ -51,14 +49,18 @@ WebInspector.SourceFrame.prototype = {
set visible(visible)
{
- this._visible = visible;
- this._createViewerIfNeeded();
+ if (!this._contentRequested) {
+ this._contentRequested = true;
+ this._contentProvider.requestContent(this._createTextViewer.bind(this));
+ }
if (visible) {
if (this._textViewer && this._scrollTop)
this._textViewer.element.scrollTop = this._scrollTop;
if (this._textViewer && this._scrollLeft)
this._textViewer.element.scrollLeft = this._scrollLeft;
+ if (this._textViewer)
+ this._textViewer.resize();
} else {
this._hidePopup();
if (this._textViewer) {
@@ -114,11 +116,6 @@ WebInspector.SourceFrame.prototype = {
this._addMessageToSource(msg);
},
- addScript: function(script)
- {
- this._scripts[script.sourceID] = script;
- },
-
clearMessages: function()
{
for (var line in this._messageBubbles) {
@@ -139,20 +136,6 @@ WebInspector.SourceFrame.prototype = {
this._textViewer.revalidateDecorationsAndPaint();
},
- setContent: function(mimeType, content, url)
- {
- this._loaded = true;
- this._textModel.setText(null, content);
- this._mimeType = mimeType;
- this._url = url;
- this._createViewerIfNeeded();
- },
-
- updateContent: function(content)
- {
- this._textModel.setText(null, content);
- },
-
get textModel()
{
return this._textModel;
@@ -185,10 +168,10 @@ WebInspector.SourceFrame.prototype = {
delete this._lineToHighlight;
},
- _createViewerIfNeeded: function()
+ _createTextViewer: function(mimeType, content)
{
- if (!this._visible || !this._loaded || this._textViewer)
- return;
+ this._content = content;
+ this._textModel.setText(null, content);
this._textViewer = new WebInspector.TextViewer(this._textModel, WebInspector.platform, this._url);
var element = this._textViewer.element;
@@ -200,7 +183,7 @@ WebInspector.SourceFrame.prototype = {
this._textViewer.beginUpdates();
- this._textViewer.mimeType = this._mimeType;
+ this._textViewer.mimeType = mimeType;
this._addExistingMessagesToSource();
this._updateExecutionLine();
this._updateDiffDecorations();
@@ -222,6 +205,11 @@ WebInspector.SourceFrame.prototype = {
delete this._lineToHighlight;
}
+ if (this._delayedFindSearchMatches) {
+ this._delayedFindSearchMatches();
+ delete this._delayedFindSearchMatches;
+ }
+
var breakpoints = this._breakpoints();
for (var i = 0; i < breakpoints.length; ++i)
this._addBreakpoint(breakpoints[i]);
@@ -233,22 +221,35 @@ WebInspector.SourceFrame.prototype = {
this._textViewer.editCallback = this._editLine.bind(this);
},
- findSearchMatches: function(query)
+ findSearchMatches: function(query, finishedCallback)
{
- var ranges = [];
+ function doFindSearchMatches()
+ {
+ var ranges = [];
+
+ // First do case-insensitive search.
+ var regexObject = createSearchRegex(query);
+ this._collectRegexMatches(regexObject, ranges);
+
+ // Then try regex search if user knows the / / hint.
+ try {
+ if (/^\/.*\/$/.test(query))
+ this._collectRegexMatches(new RegExp(query.substring(1, query.length - 1)), ranges);
+ } catch (e) {
+ // Silent catch.
+ }
+ finishedCallback(ranges);
+ }
- // First do case-insensitive search.
- var regexObject = createSearchRegex(query);
- this._collectRegexMatches(regexObject, ranges);
+ if (this._textViewer)
+ doFindSearchMatches.call(this);
+ else
+ this._delayedFindSearchMatches = doFindSearchMatches.bind(this);
+ },
- // Then try regex search if user knows the / / hint.
- try {
- if (/^\/.*\/$/.test(query))
- this._collectRegexMatches(new RegExp(query.substring(1, query.length - 1)), ranges);
- } catch (e) {
- // Silent catch.
- }
- return ranges;
+ cancelFindSearchMatches: function()
+ {
+ delete this._delayedFindSearchMatches;
},
_collectRegexMatches: function(regexObject, ranges)
@@ -405,7 +406,7 @@ WebInspector.SourceFrame.prototype = {
{
var breakpoint = event.data;
- if (breakpoint.sourceID in this._scripts)
+ if (breakpoint.sourceID in this._sourceIDSet())
this._addBreakpoint(breakpoint);
},
@@ -418,7 +419,6 @@ WebInspector.SourceFrame.prototype = {
breakpoint.addEventListener("condition-changed", this._breakpointChanged, this);
breakpoint.addEventListener("removed", this._breakpointRemoved, this);
- breakpoint.sourceText = this._textModel.line(breakpoint.line - 1);
this._setBreakpointDecoration(breakpoint.line, breakpoint.enabled, !!breakpoint.condition);
},
@@ -789,11 +789,12 @@ WebInspector.SourceFrame.prototype = {
lineNumber += 1;
var lines = [];
- for (var i = 0; i < this._textModel.linesCount; ++i) {
+ var oldLines = this._content.split('\n');
+ for (var i = 0; i < oldLines.length; ++i) {
if (i === lineNumber - 1)
lines.push(newContent);
else
- lines.push(this._textModel.line(i));
+ lines.push(oldLines[i]);
}
var editData = {};
@@ -817,16 +818,7 @@ WebInspector.SourceFrame.prototype = {
_doEditLine: function(editData, cancelEditingCallback)
{
var revertEditingCallback = this._revertEditLine.bind(this, editData);
- var commitEditingCallback = this._commitEditLine.bind(this, editData, revertEditingCallback);
- WebInspector.panels.scripts.editScriptSource(editData, commitEditingCallback, cancelEditingCallback);
- },
-
- _commitEditLine: function(editData, revertEditLineCallback, newContent)
- {
- var script = this._scripts[editData.sourceID];
- script.source = newContent;
- if (script.resource)
- script.resource.setContent(newContent, revertEditLineCallback);
+ WebInspector.panels.scripts.editScriptSource(editData, revertEditingCallback, cancelEditingCallback);
},
_setBreakpoint: function(lineNumber, enabled, condition)
@@ -841,8 +833,8 @@ WebInspector.SourceFrame.prototype = {
_breakpoints: function()
{
- var scripts = this._scripts;
- return WebInspector.debuggerModel.queryBreakpoints(function(b) { return b.sourceID in scripts; });
+ var sourceIDSet = this._sourceIDSet();
+ return WebInspector.debuggerModel.queryBreakpoints(function(b) { return b.sourceID in sourceIDSet; });
},
_findBreakpoint: function(lineNumber)
@@ -855,15 +847,42 @@ WebInspector.SourceFrame.prototype = {
{
var sourceIDForLine = null;
var closestStartingLine = 0;
- for (var sourceID in this._scripts) {
- var script = this._scripts[sourceID];
- if (script.startingLine <= lineNumber && script.startingLine >= closestStartingLine) {
- closestStartingLine = script.startingLine;
- sourceIDForLine = sourceID;
+ var scripts = this._contentProvider.scripts();
+ for (var i = 0; i < scripts.length; ++i) {
+ var startingLine = scripts[i].startingLine;
+ if (startingLine <= lineNumber && startingLine >= closestStartingLine) {
+ closestStartingLine = startingLine;
+ sourceIDForLine = scripts[i].sourceID;
}
}
return sourceIDForLine;
+ },
+
+ _sourceIDSet: function()
+ {
+ var scripts = this._contentProvider.scripts();
+ var sourceIDSet = {};
+ for (var i = 0; i < scripts.length; ++i)
+ sourceIDSet[scripts[i].sourceID] = true;
+ return sourceIDSet;
}
}
WebInspector.SourceFrame.prototype.__proto__ = WebInspector.Object.prototype;
+
+
+WebInspector.SourceFrameContentProvider = function()
+{
+}
+
+WebInspector.SourceFrameContentProvider.prototype = {
+ requestContent: function(callback)
+ {
+ // Should be implemented by subclasses.
+ },
+
+ scripts: function()
+ {
+ // Should be implemented by subclasses.
+ }
+}
diff --git a/Source/WebCore/inspector/front-end/SourceView.js b/Source/WebCore/inspector/front-end/SourceView.js
index 7a97db2..e78ff94 100644
--- a/Source/WebCore/inspector/front-end/SourceView.js
+++ b/Source/WebCore/inspector/front-end/SourceView.js
@@ -32,43 +32,29 @@ WebInspector.SourceView = function(resource)
this.element.addStyleClass("source");
- var scripts = WebInspector.debuggerModel.scriptsForURL(resource.url);
+ var contentProvider = new WebInspector.SourceFrameContentProviderForResource(resource);
var canEditScripts = WebInspector.panels.scripts.canEditScripts() && resource.type === WebInspector.Resource.Type.Script;
- this.sourceFrame = new WebInspector.SourceFrame(this.element, scripts, canEditScripts);
- resource.addEventListener("finished", this._resourceLoadingFinished, this);
- this._frameNeedsSetup = true;
-}
-
-// This is a map from resource.type to mime types
-// found in WebInspector.SourceTokenizer.Registry.
-WebInspector.SourceView.DefaultMIMETypeForResourceType = {
- 0: "text/html",
- 1: "text/css",
- 4: "text/javascript"
+ this.sourceFrame = new WebInspector.SourceFrame(this.element, contentProvider, resource.url, canEditScripts);
}
WebInspector.SourceView.prototype = {
show: function(parentElement)
{
- WebInspector.ResourceView.prototype.show.call(this, parentElement);
- this.setupSourceFrameIfNeeded();
+ WebInspector.View.prototype.show.call(this, parentElement);
this.sourceFrame.visible = true;
- this.resize();
},
hide: function()
{
this.sourceFrame.visible = false;
- if (!this._frameNeedsSetup)
- this.sourceFrame.clearLineHighlight();
+ this.sourceFrame.clearLineHighlight();
WebInspector.View.prototype.hide.call(this);
this._currentSearchResultIndex = -1;
},
resize: function()
{
- if (this.sourceFrame)
- this.sourceFrame.resize();
+ this.sourceFrame.resize();
},
get scrollTop()
@@ -81,42 +67,11 @@ WebInspector.SourceView.prototype = {
this.sourceFrame.scrollTop = scrollTop;
},
-
- setupSourceFrameIfNeeded: function()
- {
- if (!this._frameNeedsSetup)
- return;
-
- delete this._frameNeedsSetup;
- this.resource.requestContent(this._contentLoaded.bind(this));
- },
-
hasContent: function()
{
return true;
},
- _contentLoaded: function(content)
- {
- var mimeType = this._canonicalMimeType(this.resource);
- this.sourceFrame.setContent(mimeType, content, this.resource.url);
- this._sourceFrameSetupFinished();
- },
-
- _canonicalMimeType: function(resource)
- {
- return WebInspector.SourceView.DefaultMIMETypeForResourceType[resource.type] || resource.mimeType;
- },
-
- _resourceLoadingFinished: function(event)
- {
- this._frameNeedsSetup = true;
- this._sourceFrameSetup = false;
- if (this.visible)
- this.setupSourceFrameIfNeeded();
- this.resource.removeEventListener("finished", this._resourceLoadingFinished, this);
- },
-
// The rest of the methods in this prototype need to be generic enough to work with a ScriptView.
// The ScriptView prototype pulls these methods into it's prototype to avoid duplicate code.
@@ -125,7 +80,7 @@ WebInspector.SourceView.prototype = {
this._currentSearchResultIndex = -1;
this._searchResults = [];
this.sourceFrame.clearMarkedRange();
- delete this._delayedFindSearchMatches;
+ this.sourceFrame.cancelFindSearchMatches();
},
performSearch: function(query, finishedCallback)
@@ -133,23 +88,13 @@ WebInspector.SourceView.prototype = {
// Call searchCanceled since it will reset everything we need before doing a new search.
this.searchCanceled();
- this._searchFinishedCallback = finishedCallback;
-
- function findSearchMatches(query, finishedCallback)
+ function didFindSearchMatches(searchResults)
{
- this._searchResults = this.sourceFrame.findSearchMatches(query);
+ this._searchResults = searchResults;
if (this._searchResults)
finishedCallback(this, this._searchResults.length);
}
-
- if (!this._sourceFrameSetup) {
- // The search is performed in _sourceFrameSetupFinished by calling _delayedFindSearchMatches.
- this._delayedFindSearchMatches = findSearchMatches.bind(this, query, finishedCallback);
- this.setupSourceFrameIfNeeded();
- return;
- }
-
- findSearchMatches.call(this, query, finishedCallback);
+ this.sourceFrame.findSearchMatches(query, didFindSearchMatches.bind(this));
},
jumpToFirstSearchResult: function()
@@ -198,13 +143,11 @@ WebInspector.SourceView.prototype = {
revealLine: function(lineNumber)
{
- this.setupSourceFrameIfNeeded();
this.sourceFrame.revealLine(lineNumber);
},
highlightLine: function(lineNumber)
{
- this.setupSourceFrameIfNeeded();
this.sourceFrame.highlightLine(lineNumber);
},
@@ -225,17 +168,41 @@ WebInspector.SourceView.prototype = {
return;
this.sourceFrame.markAndRevealRange(foundRange);
- },
+ }
+}
+
+WebInspector.SourceView.prototype.__proto__ = WebInspector.ResourceView.prototype;
- _sourceFrameSetupFinished: function()
+
+WebInspector.SourceFrameContentProviderForResource = function(resource)
+{
+ WebInspector.SourceFrameContentProvider.call(this);
+ this._resource = resource;
+}
+
+//This is a map from resource.type to mime types
+//found in WebInspector.SourceTokenizer.Registry.
+WebInspector.SourceFrameContentProviderForResource.DefaultMIMETypeForResourceType = {
+ 0: "text/html",
+ 1: "text/css",
+ 4: "text/javascript"
+}
+
+WebInspector.SourceFrameContentProviderForResource.prototype = {
+ requestContent: function(callback)
{
- this._sourceFrameSetup = true;
- this.resize();
- if (this._delayedFindSearchMatches) {
- this._delayedFindSearchMatches();
- delete this._delayedFindSearchMatches;
+ function contentLoaded(content)
+ {
+ var mimeType = WebInspector.SourceFrameContentProviderForResource.DefaultMIMETypeForResourceType[this._resource.type] || this._resource.mimeType;
+ callback(mimeType, content);
}
+ this._resource.requestContent(contentLoaded.bind(this));
+ },
+
+ scripts: function()
+ {
+ return WebInspector.debuggerModel.scriptsForURL(this._resource.url);
}
}
-WebInspector.SourceView.prototype.__proto__ = WebInspector.ResourceView.prototype;
+WebInspector.SourceFrameContentProviderForResource.prototype.__proto__ = WebInspector.SourceFrameContentProvider.prototype;
diff --git a/Source/WebCore/inspector/front-end/TimelineOverviewPane.js b/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
index 55e24c5..0dac916 100644
--- a/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
+++ b/Source/WebCore/inspector/front-end/TimelineOverviewPane.js
@@ -398,7 +398,7 @@ WebInspector.TimelineOverviewCalculator.prototype = {
formatValue: function(value)
{
- return Number.secondsToString(value, WebInspector.UIString);
+ return Number.secondsToString(value);
}
}
diff --git a/Source/WebCore/inspector/front-end/TimelinePanel.js b/Source/WebCore/inspector/front-end/TimelinePanel.js
index a661b75..1d8b9c9 100644
--- a/Source/WebCore/inspector/front-end/TimelinePanel.js
+++ b/Source/WebCore/inspector/front-end/TimelinePanel.js
@@ -83,7 +83,7 @@ WebInspector.TimelinePanel = function()
this._calculator = new WebInspector.TimelineCalculator();
this._calculator._showShortEvents = false;
- var shortRecordThresholdTitle = Number.secondsToString(WebInspector.TimelinePanel.shortRecordThreshold, WebInspector.UIString);
+ var shortRecordThresholdTitle = Number.secondsToString(WebInspector.TimelinePanel.shortRecordThreshold);
this._showShortRecordsTitleText = WebInspector.UIString("Show the records that are shorter than %s", shortRecordThresholdTitle);
this._hideShortRecordsTitleText = WebInspector.UIString("Hide the records that are shorter than %s", shortRecordThresholdTitle);
this._createStatusbarButtons();
@@ -99,7 +99,7 @@ WebInspector.TimelinePanel = function()
this._markTimelineRecords = [];
this._expandOffset = 15;
- InspectorBackend.registerDomainDispatcher("Timeline", this);
+ InspectorBackend.registerDomainDispatcher("Timeline", new WebInspector.TimelineDispatcher(this));
}
// Define row height, should be in sync with styles for timeline graphs.
@@ -285,20 +285,21 @@ WebInspector.TimelinePanel.prototype = {
this._scheduleRefresh(true);
},
- timelineProfilerWasStarted: function()
+ _timelineProfilerWasStarted: function()
{
this.toggleTimelineButton.toggled = true;
},
- timelineProfilerWasStopped: function()
+ _timelineProfilerWasStopped: function()
{
this.toggleTimelineButton.toggled = false;
},
- addRecordToTimeline: function(record)
+ _addRecordToTimeline: function(record)
{
- if (record.type == WebInspector.TimelineAgent.RecordType.ResourceSendRequest && record.data.isMainResource) {
- if (this._mainResourceIdentifier != record.data.identifier) {
+ if (record.type == WebInspector.TimelineAgent.RecordType.ResourceSendRequest) {
+ var isMainResource = (record.data.identifier === WebInspector.mainResource.identifier);
+ if (isMainResource && this._mainResourceIdentifier !== record.data.identifier) {
// We are loading new main resource -> clear the panel. Check above is necessary since
// there may be several resource loads with main resource marker upon redirects, redirects are reported with
// the original identifier.
@@ -642,6 +643,28 @@ WebInspector.TimelinePanel.prototype = {
WebInspector.TimelinePanel.prototype.__proto__ = WebInspector.Panel.prototype;
+WebInspector.TimelineDispatcher = function(timelinePanel)
+{
+ this._timelinePanel = timelinePanel;
+}
+
+WebInspector.TimelineDispatcher.prototype = {
+ timelineProfilerWasStarted: function()
+ {
+ this._timelinePanel._timelineProfilerWasStarted();
+ },
+
+ timelineProfilerWasStopped: function()
+ {
+ this._timelinePanel._timelineProfilerWasStopped();
+ },
+
+ addRecordToTimeline: function(record)
+ {
+ this._timelinePanel._addRecordToTimeline(record);
+ }
+}
+
WebInspector.TimelineCategory = function(name, title, color)
{
this.name = name;
@@ -709,7 +732,7 @@ WebInspector.TimelineCalculator.prototype = {
formatValue: function(value)
{
- return Number.secondsToString(value + this.minimumBoundary - this._absoluteMinimumBoundary, WebInspector.UIString);
+ return Number.secondsToString(value + this.minimumBoundary - this._absoluteMinimumBoundary);
}
}
@@ -907,7 +930,7 @@ WebInspector.TimelinePanel.FormattedRecord.prototype = {
label.className = "timeline-aggregated-category timeline-" + index;
cell.appendChild(label);
var text = document.createElement("span");
- text.textContent = Number.secondsToString(this._aggregatedStats[index] + 0.0001, WebInspector.UIString);
+ text.textContent = Number.secondsToString(this._aggregatedStats[index] + 0.0001);
cell.appendChild(text);
}
return cell;
@@ -918,10 +941,10 @@ WebInspector.TimelinePanel.FormattedRecord.prototype = {
var contentHelper = new WebInspector.TimelinePanel.PopupContentHelper(this.title);
if (this._children && this._children.length) {
- contentHelper._appendTextRow(WebInspector.UIString("Self Time"), Number.secondsToString(this._selfTime + 0.0001, WebInspector.UIString));
+ contentHelper._appendTextRow(WebInspector.UIString("Self Time"), Number.secondsToString(this._selfTime + 0.0001));
contentHelper._appendElementRow(WebInspector.UIString("Aggregated Time"), this._generateAggregatedInfo());
}
- var text = WebInspector.UIString("%s (at %s)", Number.secondsToString(this._lastChildEndTime - this.startTime, WebInspector.UIString),
+ var text = WebInspector.UIString("%s (at %s)", Number.secondsToString(this._lastChildEndTime - this.startTime),
calculator.formatValue(this.startTime - calculator.minimumBoundary));
contentHelper._appendTextRow(WebInspector.UIString("Duration"), text);
@@ -929,14 +952,14 @@ WebInspector.TimelinePanel.FormattedRecord.prototype = {
switch (this.type) {
case recordTypes.GCEvent:
- contentHelper._appendTextRow(WebInspector.UIString("Collected"), Number.bytesToString(this.data.usedHeapSizeDelta, WebInspector.UIString));
+ contentHelper._appendTextRow(WebInspector.UIString("Collected"), Number.bytesToString(this.data.usedHeapSizeDelta));
break;
case recordTypes.TimerInstall:
case recordTypes.TimerFire:
case recordTypes.TimerRemove:
contentHelper._appendTextRow(WebInspector.UIString("Timer ID"), this.data.timerId);
if (typeof this.timeout === "number") {
- contentHelper._appendTextRow(WebInspector.UIString("Timeout"), Number.secondsToString(this.timeout / 1000, WebInspector.UIString));
+ contentHelper._appendTextRow(WebInspector.UIString("Timeout"), Number.secondsToString(this.timeout / 1000));
contentHelper._appendTextRow(WebInspector.UIString("Repeats"), !this.singleShot);
}
break;
@@ -977,7 +1000,7 @@ WebInspector.TimelinePanel.FormattedRecord.prototype = {
contentHelper._appendLinkRow(WebInspector.UIString("Function Call"), this.data.scriptName, this.data.scriptLine);
if (this.usedHeapSize)
- contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"), WebInspector.UIString("%s of %s", Number.bytesToString(this.usedHeapSize, WebInspector.UIString), Number.bytesToString(this.totalHeapSize, WebInspector.UIString)));
+ contentHelper._appendTextRow(WebInspector.UIString("Used Heap Size"), WebInspector.UIString("%s of %s", Number.bytesToString(this.usedHeapSize), Number.bytesToString(this.totalHeapSize)));
if (this.callSiteStackTrace && this.callSiteStackTrace.length)
contentHelper._appendStackTrace(WebInspector.UIString("Call Site stack"), this.callSiteStackTrace);
@@ -992,7 +1015,7 @@ WebInspector.TimelinePanel.FormattedRecord.prototype = {
{
switch (record.type) {
case WebInspector.TimelineAgent.RecordType.GCEvent:
- return WebInspector.UIString("%s collected", Number.bytesToString(record.data.usedHeapSizeDelta, WebInspector.UIString));
+ return WebInspector.UIString("%s collected", Number.bytesToString(record.data.usedHeapSizeDelta));
case WebInspector.TimelineAgent.RecordType.TimerFire:
return record.data.scriptName ? WebInspector.linkifyResourceAsNode(record.data.scriptName, "scripts", record.data.scriptLine, "", "") : record.data.timerId;
case WebInspector.TimelineAgent.RecordType.FunctionCall:
diff --git a/Source/WebCore/inspector/front-end/WebKit.qrc b/Source/WebCore/inspector/front-end/WebKit.qrc
index c1008ad..80a6533 100644
--- a/Source/WebCore/inspector/front-end/WebKit.qrc
+++ b/Source/WebCore/inspector/front-end/WebKit.qrc
@@ -51,7 +51,6 @@
<file>HelpScreen.js</file>
<file>ImageView.js</file>
<file>InjectedFakeWorker.js</file>
- <file>InjectedScript.js</file>
<file>InjectedScriptAccess.js</file>
<file>inspector.js</file>
<file>InspectorFrontendHostStub.js</file>
diff --git a/Source/WebCore/inspector/front-end/inspector.html b/Source/WebCore/inspector/front-end/inspector.html
index e1590f2..44f096f 100644
--- a/Source/WebCore/inspector/front-end/inspector.html
+++ b/Source/WebCore/inspector/front-end/inspector.html
@@ -142,7 +142,6 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<script type="text/javascript" src="HeapSnapshotView.js"></script>
<script type="text/javascript" src="DebuggerModel.js"></script>
<script type="text/javascript" src="DOMAgent.js"></script>
- <script type="text/javascript" src="InjectedScript.js"></script>
<script type="text/javascript" src="InjectedScriptAccess.js"></script>
<script type="text/javascript" src="TimelineAgent.js"></script>
<script type="text/javascript" src="TimelinePanel.js"></script>
diff --git a/Source/WebCore/inspector/front-end/inspector.js b/Source/WebCore/inspector/front-end/inspector.js
index 33a75d7..d8a93b1 100644
--- a/Source/WebCore/inspector/front-end/inspector.js
+++ b/Source/WebCore/inspector/front-end/inspector.js
@@ -443,6 +443,11 @@ var WebInspector = {
return this.panels.network.resources;
},
+ networkResourceById: function(id)
+ {
+ return this.panels.network.resourceById(id);
+ },
+
forAllResources: function(callback)
{
WebInspector.resourceTreeModel.forAllResources(callback);
@@ -492,7 +497,7 @@ WebInspector.loaded = function()
WebInspector.doLoadedDone = function()
{
- InspectorBackend.setInjectedScriptSource("(" + injectedScriptConstructor + ");");
+ InspectorFrontendHost.loaded();
var platform = WebInspector.platform;
document.body.addStyleClass("platform-" + platform);
@@ -502,7 +507,6 @@ WebInspector.doLoadedDone = function()
var port = WebInspector.port;
document.body.addStyleClass("port-" + port);
- InspectorFrontendHost.loaded();
WebInspector.settings = new WebInspector.Settings();
this._registerShortcuts();
@@ -618,7 +622,6 @@ WebInspector.doLoadedDone = function()
{
WebInspector.cssNameCompletions = new WebInspector.CSSCompletions(names);
}
-
// As a DOMAgent method, this needs to happen after the frontend has loaded and the agent is available.
InspectorBackend.getSupportedCSSProperties(propertyNamesCallback);
}
@@ -1175,11 +1178,6 @@ WebInspector.showPanel = function(panel)
this.currentPanel = this.panels[panel];
}
-WebInspector.consoleMessagesCleared = function()
-{
- WebInspector.console.clearMessages();
-}
-
WebInspector.domContentEventFired = function(time)
{
this.panels.audits.mainResourceDOMContentTime = time;
@@ -1237,33 +1235,6 @@ WebInspector.inspectedURLChanged = function(url)
this.extensionServer.notifyInspectedURLChanged();
}
-WebInspector.updateConsoleMessageExpiredCount = function(count)
-{
- var message = String.sprintf(WebInspector.UIString("%d console messages are not shown."), count);
- WebInspector.console.addMessage(WebInspector.ConsoleMessage.createTextMessage(message, WebInspector.ConsoleMessage.MessageLevel.Warning));
-}
-
-WebInspector.addConsoleMessage = function(payload)
-{
- var consoleMessage = new WebInspector.ConsoleMessage(
- payload.source,
- payload.type,
- payload.level,
- payload.line,
- payload.url,
- payload.repeatCount,
- payload.message,
- payload.parameters,
- payload.stackTrace,
- payload.requestId);
- this.console.addMessage(consoleMessage);
-}
-
-WebInspector.updateConsoleMessageRepeatCount = function(count)
-{
- this.console.updateMessageRepeatCount(count);
-}
-
WebInspector.log = function(message, messageLevel)
{
// remember 'this' for setInterval() callback
@@ -1681,6 +1652,12 @@ WebInspector.doPerformSearch = function(query, forceSearch, isBackwardSearch, re
this.currentPanel.performSearch(query);
}
+WebInspector.frontendReused = function()
+{
+ this.networkManager.reset();
+ this.reset();
+}
+
WebInspector.addNodesToSearchResult = function(nodeIds)
{
WebInspector.panels.elements.addNodesToSearchResult(nodeIds);
diff --git a/Source/WebCore/inspector/front-end/utilities.js b/Source/WebCore/inspector/front-end/utilities.js
index 688e080..4320ba8 100644
--- a/Source/WebCore/inspector/front-end/utilities.js
+++ b/Source/WebCore/inspector/front-end/utilities.js
@@ -388,6 +388,17 @@ String.prototype.hasSubstring = function(string, caseInsensitive)
return this.match(new RegExp(string.escapeForRegExp(), "i"));
}
+String.prototype.findAll = function(string)
+{
+ var matches = [];
+ var i = this.indexOf(string);
+ while (i !== -1) {
+ matches.push(i);
+ i = this.indexOf(string, i + string.length);
+ }
+ return matches;
+}
+
String.prototype.asParsedURL = function()
{
// RegExp groups:
@@ -643,61 +654,56 @@ function parentNode(node)
return node.parentNode;
}
-Number.millisToString = function(ms, formatterFunction, higherResolution)
+Number.millisToString = function(ms, higherResolution)
{
- return Number.secondsToString(ms / 1000, formatterFunction, higherResolution);
+ return Number.secondsToString(ms / 1000, higherResolution);
}
-Number.secondsToString = function(seconds, formatterFunction, higherResolution)
+Number.secondsToString = function(seconds, higherResolution)
{
- if (!formatterFunction)
- formatterFunction = String.sprintf;
-
if (seconds === 0)
return "0";
var ms = seconds * 1000;
if (higherResolution && ms < 1000)
- return formatterFunction("%.3fms", ms);
+ return WebInspector.UIString("%.3fms", ms);
else if (ms < 1000)
- return formatterFunction("%.0fms", ms);
+ return WebInspector.UIString("%.0fms", ms);
if (seconds < 60)
- return formatterFunction("%.2fs", seconds);
+ return WebInspector.UIString("%.2fs", seconds);
var minutes = seconds / 60;
if (minutes < 60)
- return formatterFunction("%.1fmin", minutes);
+ return WebInspector.UIString("%.1fmin", minutes);
var hours = minutes / 60;
if (hours < 24)
- return formatterFunction("%.1fhrs", hours);
+ return WebInspector.UIString("%.1fhrs", hours);
var days = hours / 24;
- return formatterFunction("%.1f days", days);
+ return WebInspector.UIString("%.1f days", days);
}
-Number.bytesToString = function(bytes, formatterFunction, higherResolution)
+Number.bytesToString = function(bytes, higherResolution)
{
- if (!formatterFunction)
- formatterFunction = String.sprintf;
if (typeof higherResolution === "undefined")
higherResolution = true;
if (bytes < 1024)
- return formatterFunction("%.0fB", bytes);
+ return WebInspector.UIString("%.0fB", bytes);
var kilobytes = bytes / 1024;
if (higherResolution && kilobytes < 1024)
- return formatterFunction("%.2fKB", kilobytes);
+ return WebInspector.UIString("%.2fKB", kilobytes);
else if (kilobytes < 1024)
- return formatterFunction("%.0fKB", kilobytes);
+ return WebInspector.UIString("%.0fKB", kilobytes);
var megabytes = kilobytes / 1024;
if (higherResolution)
- return formatterFunction("%.2fMB", megabytes);
+ return WebInspector.UIString("%.2fMB", megabytes);
else
- return formatterFunction("%.0fMB", megabytes);
+ return WebInspector.UIString("%.0fMB", megabytes);
}
Number.constrain = function(num, min, max)
@@ -715,7 +721,7 @@ HTMLTextAreaElement.prototype.moveCursorToEnd = function()
this.setSelectionRange(length, length);
}
-Array.prototype.remove = function(value, onlyFirst)
+Object.defineProperty(Array.prototype, "remove", { value: function(value, onlyFirst)
{
if (onlyFirst) {
var index = this.indexOf(value);
@@ -729,15 +735,15 @@ Array.prototype.remove = function(value, onlyFirst)
if (this[i] === value)
this.splice(i, 1);
}
-}
+}});
-Array.prototype.keySet = function()
+Object.defineProperty(Array.prototype, "keySet", { value: function()
{
var keys = {};
for (var i = 0; i < this.length; ++i)
keys[this[i]] = true;
return keys;
-}
+}});
Array.diff = function(left, right)
{
@@ -1050,6 +1056,6 @@ function offerFileForDownload(contents)
var builder = new BlobBuilder();
builder.append(contents);
var blob = builder.getBlob("application/octet-stream");
- var url = window.createObjectURL(blob);
+ var url = window.webkitURL.createObjectURL(blob);
window.open(url);
}
diff --git a/Source/WebCore/inspector/xxd.pl b/Source/WebCore/inspector/xxd.pl
new file mode 100644
index 0000000..42cf4a2
--- /dev/null
+++ b/Source/WebCore/inspector/xxd.pl
@@ -0,0 +1,45 @@
+#! /usr/bin/perl
+
+# 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.
+#
+
+$varname = shift;
+$fname = shift;
+$output = shift;
+
+open($input, '<', $fname) or die "Can't open file for read: $fname $!";
+$/ = undef;
+$text = <$input>;
+close($input);
+
+$text = join(', ', map('0x' . unpack("H*", $_), split(undef, $text)));
+
+open($output, '>', $output) or die "Can't open file for write: $output $!";
+print $output "unsigned char $varname\[\] = {\n$text\n};\n";
+close($output);
diff --git a/Source/WebCore/loader/CrossOriginAccessControl.h b/Source/WebCore/loader/CrossOriginAccessControl.h
index c44963b..50c231e 100644
--- a/Source/WebCore/loader/CrossOriginAccessControl.h
+++ b/Source/WebCore/loader/CrossOriginAccessControl.h
@@ -24,6 +24,9 @@
*
*/
+#ifndef CrossOriginAccessControl_h
+#define CrossOriginAccessControl_h
+
#include <wtf/Forward.h>
namespace WebCore {
@@ -40,3 +43,5 @@ namespace WebCore {
bool passesAccessControlCheck(const ResourceResponse&, bool includeCredentials, SecurityOrigin*, String& errorDescription);
} // namespace WebCore
+
+#endif // CrossOriginAccessControl_h
diff --git a/Source/WebCore/loader/DocumentLoader.h b/Source/WebCore/loader/DocumentLoader.h
index 2328160..241102d 100644
--- a/Source/WebCore/loader/DocumentLoader.h
+++ b/Source/WebCore/loader/DocumentLoader.h
@@ -36,6 +36,9 @@
#include "ResourceResponse.h"
#include "SubstituteData.h"
#include "Timer.h"
+#include <wtf/HashSet.h>
+#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
namespace WebCore {
diff --git a/Source/WebCore/loader/EmptyClients.h b/Source/WebCore/loader/EmptyClients.h
index a9541b3..e04d22d 100644
--- a/Source/WebCore/loader/EmptyClients.h
+++ b/Source/WebCore/loader/EmptyClients.h
@@ -461,6 +461,8 @@ public:
virtual NSString* userVisibleString(NSURL*) { return 0; }
virtual DocumentFragment* documentFragmentFromAttributedString(NSAttributedString*, Vector<RefPtr<ArchiveResource> >&) { return 0; };
virtual void setInsertionPasteboard(NSPasteboard*) { };
+ virtual NSURL* canonicalizeURL(NSURL*) { return 0; }
+ virtual NSURL* canonicalizeURLString(NSString*) { return 0; }
#ifdef BUILDING_ON_TIGER
virtual NSArray* pasteboardTypesForSelection(Frame*) { return 0; }
#endif
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index d11399c..9c6257b 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -72,6 +72,7 @@
#include "IconDatabase.h"
#include "IconLoader.h"
#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Logging.h"
#include "MIMETypeRegistry.h"
#include "MainResourceLoader.h"
@@ -974,9 +975,16 @@ void FrameLoader::loadArchive(PassRefPtr<Archive> prpArchive)
ObjectContentType FrameLoader::defaultObjectContentType(const KURL& url, const String& mimeTypeIn)
{
String mimeType = mimeTypeIn;
+ String extension = url.path().substring(url.path().reverseFind('.') + 1);
+
// We don't use MIMETypeRegistry::getMIMETypeForPath() because it returns "application/octet-stream" upon failure
if (mimeType.isEmpty())
- mimeType = MIMETypeRegistry::getMIMETypeForExtension(url.path().substring(url.path().reverseFind('.') + 1));
+ mimeType = MIMETypeRegistry::getMIMETypeForExtension(extension);
+
+#if !PLATFORM(MAC) && !PLATFORM(CHROMIUM) && !PLATFORM(EFL) // Mac has no PluginDatabase, nor does Chromium or EFL
+ if (mimeType.isEmpty())
+ mimeType = PluginDatabase::installedPlugins()->MIMETypeForExtension(extension);
+#endif
if (mimeType.isEmpty())
return ObjectContentFrame; // Go ahead and hope that we can display the content.
@@ -2358,8 +2366,9 @@ void FrameLoader::checkLoadCompleteForThisFrame()
// Check all children first.
RefPtr<HistoryItem> item;
if (Page* page = m_frame->page())
- if (isBackForwardLoadType(loadType()) && m_frame == page->mainFrame())
- item = history()->currentItem();
+ if (isBackForwardLoadType(loadType()))
+ // Reset the back forward list to the last committed history item at the top level.
+ item = page->mainFrame()->loader()->history()->currentItem();
bool shouldReset = true;
if (!(pdl->isLoadingInAPISense() && !pdl->isStopping())) {
@@ -2602,10 +2611,7 @@ void FrameLoader::detachFromParent()
// handlers might start a new subresource load in this frame.
stopAllLoaders();
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->frameDetachedFromParent(m_frame);
-#endif
+ InspectorInstrumentation::frameDetachedFromParent(m_frame);
detachViewsAndDocumentLoader();
@@ -3071,9 +3077,7 @@ void FrameLoader::loadedResourceFromMemoryCache(const CachedResource* resource)
return;
if (!page->areMemoryCacheClientCallsEnabled()) {
-#if ENABLE(INSPECTOR)
- page->inspectorController()->didLoadResourceFromMemoryCache(m_documentLoader.get(), resource);
-#endif
+ InspectorInstrumentation::didLoadResourceFromMemoryCache(page, m_documentLoader.get(), resource);
m_documentLoader->recordMemoryCacheLoadForFutureClientNotification(resource->url());
m_documentLoader->didTellClientAboutLoad(resource->url());
return;
@@ -3081,9 +3085,7 @@ void FrameLoader::loadedResourceFromMemoryCache(const CachedResource* resource)
ResourceRequest request(resource->url());
if (m_client->dispatchDidLoadResourceFromMemoryCache(m_documentLoader.get(), request, resource->response(), resource->encodedSize())) {
-#if ENABLE(INSPECTOR)
- page->inspectorController()->didLoadResourceFromMemoryCache(m_documentLoader.get(), resource);
-#endif
+ InspectorInstrumentation::didLoadResourceFromMemoryCache(page, m_documentLoader.get(), resource);
m_documentLoader->didTellClientAboutLoad(resource->url());
return;
}
@@ -3091,9 +3093,7 @@ void FrameLoader::loadedResourceFromMemoryCache(const CachedResource* resource)
unsigned long identifier;
ResourceError error;
requestFromDelegate(request, identifier, error);
-#if ENABLE(INSPECTOR)
- page->inspectorController()->markResourceAsCached(identifier);
-#endif
+ InspectorInstrumentation::markResourceAsCached(page, identifier);
notifier()->sendRemainingDelegateMessages(m_documentLoader.get(), identifier, resource->response(), resource->encodedSize(), error);
}
@@ -3399,15 +3399,7 @@ void FrameLoader::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld* world)
m_client->dispatchDidClearWindowObjectInWorld(world);
-#if ENABLE(INSPECTOR)
- if (world != mainThreadNormalWorld())
- return;
-
- if (Page* page = m_frame->page()) {
- if (InspectorController* inspector = page->inspectorController())
- inspector->inspectedWindowScriptObjectCleared(m_frame);
- }
-#endif
+ InspectorInstrumentation::didClearWindowObjectInWorld(m_frame, world);
}
void FrameLoader::updateSandboxFlags()
@@ -3454,10 +3446,7 @@ void FrameLoader::dispatchDidCommitLoad()
m_client->dispatchDidCommitLoad();
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didCommitLoad(m_documentLoader.get());
-#endif
+ InspectorInstrumentation::didCommitLoad(m_frame, m_documentLoader.get());
}
void FrameLoader::tellClientAboutPastMemoryCacheLoads()
@@ -3473,7 +3462,7 @@ void FrameLoader::tellClientAboutPastMemoryCacheLoads()
size_t size = pastLoads.size();
for (size_t i = 0; i < size; ++i) {
- CachedResource* resource = cache()->resourceForURL(KURL(ParsedURLString, pastLoads[i]));
+ CachedResource* resource = memoryCache()->resourceForURL(KURL(ParsedURLString, pastLoads[i]));
// FIXME: These loads, loaded from cache, but now gone from the cache by the time
// Page::setMemoryCacheClientCallsEnabled(true) is called, will not be seen by the client.
@@ -3504,8 +3493,6 @@ Frame* createWindow(Frame* openerFrame, Frame* lookupFrame, const FrameLoadReque
if (!request.frameName().isEmpty() && request.frameName() != "_blank") {
Frame* frame = lookupFrame->tree()->find(request.frameName());
if (frame && openerFrame->loader()->shouldAllowNavigation(frame)) {
- if (!request.resourceRequest().url().isEmpty())
- frame->loader()->loadFrameRequest(request, false, false, 0, 0, SendReferrer);
if (Page* page = frame->page())
page->chrome()->focus();
created = false;
diff --git a/Source/WebCore/loader/FrameLoader.h b/Source/WebCore/loader/FrameLoader.h
index 95755d6..0cc1fa7 100644
--- a/Source/WebCore/loader/FrameLoader.h
+++ b/Source/WebCore/loader/FrameLoader.h
@@ -36,15 +36,13 @@
#include "FrameLoaderStateMachine.h"
#include "FrameLoaderTypes.h"
#include "HistoryController.h"
-#include "NavigationScheduler.h"
-#include "PolicyCallback.h"
#include "PolicyChecker.h"
#include "ResourceLoadNotifier.h"
-#include "ResourceRequest.h"
#include "SubframeLoader.h"
#include "ThreadableLoader.h"
#include "Timer.h"
#include <wtf/Forward.h>
+#include <wtf/HashSet.h>
namespace WebCore {
@@ -75,6 +73,7 @@ class Page;
class ProtectionSpace;
class ResourceError;
class ResourceLoader;
+class ResourceRequest;
class ResourceResponse;
class ScriptSourceCode;
class ScriptValue;
diff --git a/Source/WebCore/loader/HistoryController.cpp b/Source/WebCore/loader/HistoryController.cpp
index ff733a9..dda4e56 100644
--- a/Source/WebCore/loader/HistoryController.cpp
+++ b/Source/WebCore/loader/HistoryController.cpp
@@ -80,6 +80,8 @@ void HistoryController::saveScrollPositionAndViewStateToItem(HistoryItem* item)
return;
item->setScrollPoint(m_frame->view()->scrollPosition());
+ item->setPageScaleFactor(m_frame->pageScaleFactor());
+
// FIXME: It would be great to work out a way to put this code in WebCore instead of calling through to the client.
m_frame->loader()->client()->saveViewStateToItem(item);
}
@@ -114,9 +116,12 @@ void HistoryController::restoreScrollPositionAndViewState()
// through to the client. It's currently used only for the PDF view on Mac.
m_frame->loader()->client()->restoreViewState();
- if (FrameView* view = m_frame->view())
- if (!view->wasScrolledByUser())
+ if (FrameView* view = m_frame->view()) {
+ if (!view->wasScrolledByUser()) {
view->setScrollPosition(m_currentItem->scrollPoint());
+ m_frame->scalePage(m_currentItem->pageScaleFactor(), m_currentItem->scrollPoint());
+ }
+ }
}
void HistoryController::updateBackForwardListForFragmentScroll()
@@ -235,6 +240,13 @@ void HistoryController::goToItem(HistoryItem* targetItem, FrameLoadType type)
page->backForward()->setCurrentItem(targetItem);
Settings* settings = m_frame->settings();
page->setGlobalHistoryItem((!settings || settings->privateBrowsingEnabled()) ? 0 : targetItem);
+
+ // First set the provisional item of any frames that are not actually navigating.
+ // This must be done before trying to navigate the desired frame, because some
+ // navigations can commit immediately (such as about:blank). We must be sure that
+ // all frames have provisional items set before the commit.
+ recursiveSetProvisionalItem(targetItem, currentItem, type);
+ // Now that all other frames have provisional items, do the actual navigation.
recursiveGoToItem(targetItem, currentItem, type);
}
@@ -399,9 +411,50 @@ void HistoryController::updateForCommit()
ASSERT(m_provisionalItem);
m_currentItem = m_provisionalItem;
m_provisionalItem = 0;
+
+ // Tell all other frames in the tree to commit their provisional items and
+ // restore their scroll position. We'll avoid this frame (which has already
+ // committed) and its children (which will be replaced).
+ Page* page = m_frame->page();
+ ASSERT(page);
+ page->mainFrame()->loader()->history()->recursiveUpdateForCommit();
}
}
+void HistoryController::recursiveUpdateForCommit()
+{
+ // The frame that navigated will now have a null provisional item.
+ // Ignore it and its children.
+ if (!m_provisionalItem)
+ return;
+
+ // For each frame that already had the content the item requested (based on
+ // (a matching URL and frame tree snapshot), just restore the scroll position.
+ // Save form state (works from currentItem, since m_frameLoadComplete is true)
+ ASSERT(m_frameLoadComplete);
+ saveDocumentState();
+ saveScrollPositionAndViewStateToItem(m_currentItem.get());
+
+ if (FrameView* view = m_frame->view())
+ view->setWasScrolledByUser(false);
+
+ // Now commit the provisional item
+ m_frameLoadComplete = false;
+ m_previousItem = m_currentItem;
+ m_currentItem = m_provisionalItem;
+ m_provisionalItem = 0;
+
+ // Restore form state (works from currentItem)
+ restoreDocumentState();
+
+ // Restore the scroll position (we choose to do this rather than going back to the anchor point)
+ restoreScrollPositionAndViewState();
+
+ // Iterate over the rest of the tree
+ for (Frame* child = m_frame->tree()->firstChild(); child; child = child->tree()->nextSibling())
+ child->loader()->history()->recursiveUpdateForCommit();
+}
+
void HistoryController::updateForSameDocumentNavigation()
{
if (m_frame->loader()->url().isEmpty())
@@ -551,44 +604,42 @@ PassRefPtr<HistoryItem> HistoryController::createItemTree(Frame* targetFrame, bo
// The general idea here is to traverse the frame tree and the item tree in parallel,
// tracking whether each frame already has the content the item requests. If there is
-// a match (by URL), we just restore scroll position and recurse. Otherwise we must
-// reload that frame, and all its kids.
-void HistoryController::recursiveGoToItem(HistoryItem* item, HistoryItem* fromItem, FrameLoadType type)
+// a match, we set the provisional item and recurse. Otherwise we will reload that
+// frame and all its kids in recursiveGoToItem.
+void HistoryController::recursiveSetProvisionalItem(HistoryItem* item, HistoryItem* fromItem, FrameLoadType type)
{
ASSERT(item);
ASSERT(fromItem);
- // If the item we're going to is a clone of the item we're at, then do
- // not load it again, and continue history traversal to its children.
- // The current frame tree and the frame tree snapshot in the item have
- // to match.
- // Note: If item and fromItem are the same, then we need to create a new
- // document.
- if (item != fromItem
- && item->itemSequenceNumber() == fromItem->itemSequenceNumber()
- && currentFramesMatchItem(item)
- && fromItem->hasSameFrames(item))
- {
- // This content is good, so leave it alone and look for children that need reloading
- // Save form state (works from currentItem, since m_frameLoadComplete is true)
- ASSERT(m_frameLoadComplete);
- saveDocumentState();
- saveScrollPositionAndViewStateToItem(m_currentItem.get());
+ if (itemsAreClones(item, fromItem)) {
+ // Set provisional item, which will be committed in recursiveUpdateForCommit.
+ m_provisionalItem = item;
- if (FrameView* view = m_frame->view())
- view->setWasScrolledByUser(false);
+ const HistoryItemVector& childItems = item->children();
- m_previousItem = m_currentItem;
- m_currentItem = item;
-
- // Restore form state (works from currentItem)
- restoreDocumentState();
-
- // Restore the scroll position (we choose to do this rather than going back to the anchor point)
- restoreScrollPositionAndViewState();
-
+ int size = childItems.size();
+ for (int i = 0; i < size; ++i) {
+ String childFrameName = childItems[i]->target();
+ HistoryItem* fromChildItem = fromItem->childItemWithTarget(childFrameName);
+ ASSERT(fromChildItem);
+ Frame* childFrame = m_frame->tree()->child(childFrameName);
+ ASSERT(childFrame);
+ childFrame->loader()->history()->recursiveSetProvisionalItem(childItems[i].get(), fromChildItem, type);
+ }
+ }
+}
+
+// We now traverse the frame tree and item tree a second time, loading frames that
+// do have the content the item requests.
+void HistoryController::recursiveGoToItem(HistoryItem* item, HistoryItem* fromItem, FrameLoadType type)
+{
+ ASSERT(item);
+ ASSERT(fromItem);
+
+ if (itemsAreClones(item, fromItem)) {
+ // Just iterate over the rest, looking for frames to navigate.
const HistoryItemVector& childItems = item->children();
-
+
int size = childItems.size();
for (int i = 0; i < size; ++i) {
String childFrameName = childItems[i]->target();
@@ -603,6 +654,21 @@ void HistoryController::recursiveGoToItem(HistoryItem* item, HistoryItem* fromIt
}
}
+bool HistoryController::itemsAreClones(HistoryItem* item1, HistoryItem* item2) const
+{
+ // If the item we're going to is a clone of the item we're at, then we do
+ // not need to load it again. The current frame tree and the frame tree
+ // snapshot in the item have to match.
+ // Note: Some clients treat a navigation to the current history item as
+ // a reload. Thus, if item1 and item2 are the same, we need to create a
+ // new document and should not consider them clones.
+ // (See http://webkit.org/b/35532 for details.)
+ return item1 != item2
+ && item1->itemSequenceNumber() == item2->itemSequenceNumber()
+ && currentFramesMatchItem(item1)
+ && item2->hasSameFrames(item1);
+}
+
// Helper method that determines whether the current frame tree matches given history item's.
bool HistoryController::currentFramesMatchItem(HistoryItem* item) const
{
diff --git a/Source/WebCore/loader/HistoryController.h b/Source/WebCore/loader/HistoryController.h
index 1bf5072..9923179 100644
--- a/Source/WebCore/loader/HistoryController.h
+++ b/Source/WebCore/loader/HistoryController.h
@@ -87,7 +87,10 @@ private:
PassRefPtr<HistoryItem> createItem(bool useOriginal);
PassRefPtr<HistoryItem> createItemTree(Frame* targetFrame, bool clipAtTarget);
+ void recursiveSetProvisionalItem(HistoryItem*, HistoryItem*, FrameLoadType);
void recursiveGoToItem(HistoryItem*, HistoryItem*, FrameLoadType);
+ void recursiveUpdateForCommit();
+ bool itemsAreClones(HistoryItem*, HistoryItem*) const;
bool currentFramesMatchItem(HistoryItem*) const;
void updateBackForwardListClippedAtTarget(bool doClip);
diff --git a/Source/WebCore/loader/NetscapePlugInStreamLoader.h b/Source/WebCore/loader/NetscapePlugInStreamLoader.h
index 4d7d03b..8db555e 100644
--- a/Source/WebCore/loader/NetscapePlugInStreamLoader.h
+++ b/Source/WebCore/loader/NetscapePlugInStreamLoader.h
@@ -26,6 +26,9 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef NetscapePlugInStreamLoader_h
+#define NetscapePlugInStreamLoader_h
+
#include "ResourceLoader.h"
#include <wtf/Forward.h>
@@ -68,3 +71,5 @@ namespace WebCore {
};
}
+
+#endif // NetscapePlugInStreamLoader_h
diff --git a/Source/WebCore/loader/ResourceLoadNotifier.cpp b/Source/WebCore/loader/ResourceLoadNotifier.cpp
index d002ef3..c928557 100644
--- a/Source/WebCore/loader/ResourceLoadNotifier.cpp
+++ b/Source/WebCore/loader/ResourceLoadNotifier.cpp
@@ -35,7 +35,7 @@
#include "Frame.h"
#include "FrameLoader.h"
#include "FrameLoaderClient.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Page.h"
#include "ProgressTracker.h"
#include "ResourceLoader.h"
@@ -97,20 +97,14 @@ void ResourceLoadNotifier::didFailToLoad(ResourceLoader* loader, const ResourceE
if (!error.isNull())
m_frame->loader()->client()->dispatchDidFailLoading(loader->documentLoader(), loader->identifier(), error);
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didFailLoading(loader->identifier(), error);
-#endif
+ InspectorInstrumentation::didFailLoading(m_frame, loader->identifier(), error);
}
void ResourceLoadNotifier::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
{
m_frame->loader()->client()->assignIdentifierToInitialRequest(identifier, loader, request);
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->identifierForInitialRequest(identifier, loader, request);
-#endif
+ InspectorInstrumentation::identifierForInitialRequest(m_frame, identifier, loader, request);
}
void ResourceLoadNotifier::dispatchWillSendRequest(DocumentLoader* loader, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse)
@@ -124,40 +118,32 @@ void ResourceLoadNotifier::dispatchWillSendRequest(DocumentLoader* loader, unsig
if (!request.isNull() && oldRequestURL != request.url().string().impl())
m_frame->loader()->documentLoader()->didTellClientAboutLoad(request.url());
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->willSendRequest(identifier, request, redirectResponse);
-#endif
+ InspectorInstrumentation::willSendRequest(m_frame, identifier, request, redirectResponse);
+
+ // Report WebTiming for all frames.
+ if (loader && !request.isNull() && request.url() == loader->requestURL())
+ request.setReportLoadTiming(true);
}
void ResourceLoadNotifier::dispatchDidReceiveResponse(DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r)
{
+ InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(m_frame, identifier, r);
m_frame->loader()->client()->dispatchDidReceiveResponse(loader, identifier, r);
-
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didReceiveResponse(identifier, loader, r);
-#endif
+ InspectorInstrumentation::didReceiveResourceResponse(cookie, identifier, loader, r);
}
void ResourceLoadNotifier::dispatchDidReceiveContentLength(DocumentLoader* loader, unsigned long identifier, int length)
{
m_frame->loader()->client()->dispatchDidReceiveContentLength(loader, identifier, length);
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didReceiveContentLength(identifier, length);
-#endif
+ InspectorInstrumentation::didReceiveContentLength(m_frame, identifier, length);
}
void ResourceLoadNotifier::dispatchDidFinishLoading(DocumentLoader* loader, unsigned long identifier, double finishTime)
{
m_frame->loader()->client()->dispatchDidFinishLoading(loader, identifier);
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didFinishLoading(identifier, finishTime);
-#endif
+ InspectorInstrumentation::didFinishLoading(m_frame, identifier, finishTime);
}
void ResourceLoadNotifier::dispatchTransferLoadingResourceFromPage(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request, Page* oldPage)
diff --git a/Source/WebCore/loader/ResourceLoader.cpp b/Source/WebCore/loader/ResourceLoader.cpp
index bc56000..85216fb 100644
--- a/Source/WebCore/loader/ResourceLoader.cpp
+++ b/Source/WebCore/loader/ResourceLoader.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2010, 2011 Apple Inc. All rights reserved.
* (C) 2007 Graham Dennis (graham.dennis@gmail.com)
*
* Redistribution and use in source and binary forms, with or without
@@ -129,14 +129,13 @@ bool ResourceLoader::init(const ResourceRequest& r)
clientRequest.setFirstPartyForCookies(document->firstPartyForCookies());
}
- m_request = clientRequest;
-
- willSendRequest(m_request, ResourceResponse());
- if (m_request.isNull()) {
+ willSendRequest(clientRequest, ResourceResponse());
+ if (clientRequest.isNull()) {
didFail(frameLoader()->cancelledError(m_request));
return false;
}
+ m_request = clientRequest;
return true;
}
@@ -431,9 +430,7 @@ void ResourceLoader::didReceiveResponse(ResourceHandle*, const ResourceResponse&
if (documentLoader()->applicationCacheHost()->maybeLoadFallbackForResponse(this, response))
return;
#endif
- InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(m_frame.get(), identifier(), response);
didReceiveResponse(response);
- InspectorInstrumentation::didReceiveResourceResponse(cookie);
}
void ResourceLoader::didReceiveData(ResourceHandle*, const char* data, int length, int lengthReceived)
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp b/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp
index 6454b90..514ef19 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp
+++ b/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp
@@ -40,6 +40,7 @@
#include "Frame.h"
#include "FrameLoader.h"
#include "FrameLoaderClient.h"
+#include "InspectorInstrumentation.h"
#include "MainResourceLoader.h"
#include "ManifestParser.h"
#include "Page.h"
@@ -48,11 +49,7 @@
#include <wtf/HashMap.h>
#if ENABLE(INSPECTOR)
-#include "InspectorApplicationCacheAgent.h"
-#include "InspectorController.h"
#include "ProgressTracker.h"
-#else
-#include <wtf/UnusedParam.h>
#endif
namespace WebCore {
@@ -395,30 +392,13 @@ void ApplicationCacheGroup::stopLoadingInFrame(Frame* frame)
stopLoading();
}
-#if ENABLE(INSPECTOR)
-static void inspectorUpdateApplicationCacheStatus(Frame* frame)
-{
- if (!frame)
- return;
-
- if (Page *page = frame->page()) {
- if (InspectorApplicationCacheAgent* applicationCacheAgent = page->inspectorController()->applicationCacheAgent()) {
- ApplicationCacheHost::Status status = frame->loader()->documentLoader()->applicationCacheHost()->status();
- applicationCacheAgent->updateApplicationCacheStatus(status);
- }
- }
-}
-#endif
-
void ApplicationCacheGroup::setNewestCache(PassRefPtr<ApplicationCache> newestCache)
{
m_newestCache = newestCache;
m_caches.add(m_newestCache.get());
m_newestCache->setGroup(this);
-#if ENABLE(INSPECTOR)
- inspectorUpdateApplicationCacheStatus(m_frame);
-#endif
+ InspectorInstrumentation::updateApplicationCacheStatus(m_frame);
}
void ApplicationCacheGroup::makeObsolete()
@@ -429,9 +409,7 @@ void ApplicationCacheGroup::makeObsolete()
m_isObsolete = true;
cacheStorage().cacheGroupMadeObsolete(this);
ASSERT(!m_storageID);
-#if ENABLE(INSPECTOR)
- inspectorUpdateApplicationCacheStatus(m_frame);
-#endif
+ InspectorInstrumentation::updateApplicationCacheStatus(m_frame);
}
void ApplicationCacheGroup::update(Frame* frame, ApplicationCacheUpdateOption updateOption)
@@ -496,35 +474,19 @@ PassRefPtr<ResourceHandle> ApplicationCacheGroup::createResourceHandle(const KUR
// Because willSendRequest only gets called during redirects, we initialize
// the identifier and the first willSendRequest here.
m_currentResourceIdentifier = m_frame->page()->progress()->createUniqueIdentifier();
- if (Page* page = m_frame->page()) {
- InspectorController* inspectorController = page->inspectorController();
- inspectorController->identifierForInitialRequest(m_currentResourceIdentifier, m_frame->loader()->documentLoader(), handle->firstRequest());
- ResourceResponse redirectResponse = ResourceResponse();
- inspectorController->willSendRequest(m_currentResourceIdentifier, request, redirectResponse);
- }
+ InspectorInstrumentation::identifierForInitialRequest(m_frame, m_currentResourceIdentifier, m_frame->loader()->documentLoader(), handle->firstRequest());
+ ResourceResponse redirectResponse = ResourceResponse();
+ InspectorInstrumentation::willSendRequest(m_frame, m_currentResourceIdentifier, request, redirectResponse);
#endif
return handle;
}
-#if ENABLE(INSPECTOR)
-void ApplicationCacheGroup::willSendRequest(ResourceHandle*, ResourceRequest& request, const ResourceResponse& redirectResponse)
-{
- // This only gets called by ResourceHandleMac if there is a redirect.
- if (Page* page = m_frame->page())
- page->inspectorController()->willSendRequest(m_currentResourceIdentifier, request, redirectResponse);
-}
-#endif
-
void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, const ResourceResponse& response)
{
#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page()) {
- if (handle == m_manifestHandle) {
- if (InspectorApplicationCacheAgent* applicationCacheAgent = page->inspectorController()->applicationCacheAgent())
- applicationCacheAgent->didReceiveManifestResponse(m_currentResourceIdentifier, response);
- } else
- page->inspectorController()->didReceiveResponse(m_currentResourceIdentifier, m_frame->loader()->documentLoader(), response);
- }
+ DocumentLoader* loader = (handle == m_manifestHandle) ? 0 : m_frame->loader()->documentLoader();
+ InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(m_frame, m_currentResourceIdentifier, response);
+ InspectorInstrumentation::didReceiveResourceResponse(cookie, m_currentResourceIdentifier, loader, response);
#endif
if (handle == m_manifestHandle) {
@@ -594,10 +556,7 @@ void ApplicationCacheGroup::didReceiveResponse(ResourceHandle* handle, const Res
void ApplicationCacheGroup::didReceiveData(ResourceHandle* handle, const char* data, int length, int lengthReceived)
{
#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didReceiveContentLength(m_currentResourceIdentifier, lengthReceived);
-#else
- UNUSED_PARAM(lengthReceived);
+ InspectorInstrumentation::didReceiveContentLength(m_frame, m_currentResourceIdentifier, lengthReceived);
#endif
if (handle == m_manifestHandle) {
@@ -616,8 +575,7 @@ void ApplicationCacheGroup::didReceiveData(ResourceHandle* handle, const char* d
void ApplicationCacheGroup::didFinishLoading(ResourceHandle* handle, double finishTime)
{
#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didFinishLoading(m_currentResourceIdentifier, finishTime);
+ InspectorInstrumentation::didFinishLoading(m_frame, m_currentResourceIdentifier, finishTime);
#endif
if (handle == m_manifestHandle) {
@@ -658,10 +616,7 @@ void ApplicationCacheGroup::didFinishLoading(ResourceHandle* handle, double fini
void ApplicationCacheGroup::didFail(ResourceHandle* handle, const ResourceError& error)
{
#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page())
- page->inspectorController()->didFailLoading(m_currentResourceIdentifier, error);
-#else
- UNUSED_PARAM(error);
+ InspectorInstrumentation::didFailLoading(m_frame, m_currentResourceIdentifier, error);
#endif
if (handle == m_manifestHandle) {
@@ -1161,9 +1116,7 @@ void ApplicationCacheGroup::postListenerTask(ApplicationCacheHost::EventID event
void ApplicationCacheGroup::setUpdateStatus(UpdateStatus status)
{
m_updateStatus = status;
-#if ENABLE(INSPECTOR)
- inspectorUpdateApplicationCacheStatus(m_frame);
-#endif
+ InspectorInstrumentation::updateApplicationCacheStatus(m_frame);
}
void ApplicationCacheGroup::clearStorageID()
diff --git a/Source/WebCore/loader/appcache/ApplicationCacheGroup.h b/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
index 29d0749..2d8b83e 100644
--- a/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
+++ b/Source/WebCore/loader/appcache/ApplicationCacheGroup.h
@@ -110,9 +110,6 @@ private:
// the existing client callback cannot be used, so assume that any client that enables application cache also wants it to use credential storage.
virtual bool shouldUseCredentialStorage(ResourceHandle*) { return true; }
-#if ENABLE(INSPECTOR)
- virtual void willSendRequest(ResourceHandle*, ResourceRequest&, const ResourceResponse&);
-#endif
virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&);
virtual void didReceiveData(ResourceHandle*, const char*, int length, int lengthReceived);
virtual void didFinishLoading(ResourceHandle*, double finishTime);
diff --git a/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp b/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
index ddd564e..d9575fe 100644
--- a/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
+++ b/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
@@ -529,7 +529,7 @@ PassRefPtr<LegacyWebArchive> LegacyWebArchive::create(const String& markupString
continue;
}
- CachedResource *cachedResource = cache()->resourceForURL(subresourceURL);
+ CachedResource* cachedResource = memoryCache()->resourceForURL(subresourceURL);
if (cachedResource) {
resource = ArchiveResource::create(cachedResource->data(), subresourceURL, cachedResource->response());
if (resource) {
diff --git a/Source/WebCore/loader/cache/CachedFont.cpp b/Source/WebCore/loader/cache/CachedFont.cpp
index d6967bf..fe3281e 100644
--- a/Source/WebCore/loader/cache/CachedFont.cpp
+++ b/Source/WebCore/loader/cache/CachedFont.cpp
@@ -137,18 +137,13 @@ bool CachedFont::ensureSVGFontData()
ASSERT(m_isSVGFont);
if (!m_externalSVGDocument && !errorOccurred() && !isLoading() && m_data) {
m_externalSVGDocument = SVGDocument::create(0, KURL());
- m_externalSVGDocument->open();
RefPtr<TextResourceDecoder> decoder = TextResourceDecoder::create("application/xml");
- m_externalSVGDocument->write(decoder->decode(m_data->data(), m_data->size()));
- m_externalSVGDocument->write(decoder->flush());
- if (decoder->sawError()) {
- m_externalSVGDocument.clear();
- return 0;
- }
-
- m_externalSVGDocument->finishParsing();
- m_externalSVGDocument->close();
+
+ m_externalSVGDocument->setContent(decoder->decode(m_data->data(), m_data->size()) + decoder->flush());
+
+ if (decoder->sawError())
+ m_externalSVGDocument = 0;
}
return m_externalSVGDocument;
diff --git a/Source/WebCore/loader/cache/CachedImage.cpp b/Source/WebCore/loader/cache/CachedImage.cpp
index c550eec..7d9ce3d 100644
--- a/Source/WebCore/loader/cache/CachedImage.cpp
+++ b/Source/WebCore/loader/cache/CachedImage.cpp
@@ -111,7 +111,7 @@ void CachedImage::allClientsRemoved()
{
if (m_image && !errorOccurred())
m_image->resetAnimation();
- if (double interval = cache()->deadDecodedDataDeletionInterval())
+ if (double interval = memoryCache()->deadDecodedDataDeletionInterval())
m_decodedDataDeletionTimer.startOneShot(interval);
}
@@ -284,7 +284,7 @@ void CachedImage::data(PassRefPtr<SharedBuffer> data, bool allDataReceived)
if (m_image->isNull() || (maxDecodedImageSize > 0 && estimatedDecodedImageSize > maxDecodedImageSize)) {
error(errorOccurred() ? status() : DecodeError);
if (inCache())
- cache()->remove(this);
+ memoryCache()->remove(this);
return;
}
diff --git a/Source/WebCore/loader/cache/CachedResource.cpp b/Source/WebCore/loader/cache/CachedResource.cpp
index a9d9b0a..06b3131 100644
--- a/Source/WebCore/loader/cache/CachedResource.cpp
+++ b/Source/WebCore/loader/cache/CachedResource.cpp
@@ -116,7 +116,7 @@ CachedResource::~CachedResource()
ASSERT(canDelete());
ASSERT(!inCache());
ASSERT(!m_deleted);
- ASSERT(url().isNull() || cache()->resourceForURL(KURL(ParsedURLString, url())) != this);
+ ASSERT(url().isNull() || memoryCache()->resourceForURL(KURL(ParsedURLString, url())) != this);
#ifndef NDEBUG
m_deleted = true;
cachedResourceLeakCounter.decrement();
@@ -259,7 +259,7 @@ void CachedResource::addClientToSet(CachedResourceClient* client)
m_preloadResult = PreloadReferenced;
}
if (!hasClients() && inCache())
- cache()->addToLiveResourcesSize(this);
+ memoryCache()->addToLiveResourcesSize(this);
m_clients.add(client);
}
@@ -271,8 +271,8 @@ void CachedResource::removeClient(CachedResourceClient* client)
if (canDelete() && !inCache())
delete this;
else if (!hasClients() && inCache()) {
- cache()->removeFromLiveResourcesSize(this);
- cache()->removeFromLiveDecodedResourcesList(this);
+ memoryCache()->removeFromLiveResourcesSize(this);
+ memoryCache()->removeFromLiveDecodedResourcesList(this);
allClientsRemoved();
if (response().cacheControlContainsNoStore()) {
// RFC2616 14.9.2:
@@ -280,9 +280,9 @@ void CachedResource::removeClient(CachedResourceClient* client)
// "... History buffers MAY store such responses as part of their normal operation."
// We allow non-secure content to be reused in history, but we do not allow secure content to be reused.
if (protocolIs(url(), "https"))
- cache()->remove(this);
+ memoryCache()->remove(this);
} else
- cache()->prune();
+ memoryCache()->prune();
}
// This object may be dead here.
}
@@ -304,13 +304,13 @@ void CachedResource::setDecodedSize(unsigned size)
// We have to remove explicitly before updating m_decodedSize, so that we find the correct previous
// queue.
if (inCache())
- cache()->removeFromLRUList(this);
+ memoryCache()->removeFromLRUList(this);
m_decodedSize = size;
if (inCache()) {
// Now insert into the new LRU list.
- cache()->insertInLRUList(this);
+ memoryCache()->insertInLRUList(this);
// Insert into or remove from the live decoded list if necessary.
// When inserting into the LiveDecodedResourcesList it is possible
@@ -320,12 +320,12 @@ void CachedResource::setDecodedSize(unsigned size)
// by access time. The weakening of the invariant does not pose
// a problem. For more details please see: https://bugs.webkit.org/show_bug.cgi?id=30209
if (m_decodedSize && !m_inLiveDecodedResourcesList && hasClients())
- cache()->insertInLiveDecodedResourcesList(this);
+ memoryCache()->insertInLiveDecodedResourcesList(this);
else if (!m_decodedSize && m_inLiveDecodedResourcesList)
- cache()->removeFromLiveDecodedResourcesList(this);
+ memoryCache()->removeFromLiveDecodedResourcesList(this);
// Update the cache's size totals.
- cache()->adjustSize(hasClients(), delta);
+ memoryCache()->adjustSize(hasClients(), delta);
}
}
@@ -343,16 +343,16 @@ void CachedResource::setEncodedSize(unsigned size)
// We have to remove explicitly before updating m_encodedSize, so that we find the correct previous
// queue.
if (inCache())
- cache()->removeFromLRUList(this);
+ memoryCache()->removeFromLRUList(this);
m_encodedSize = size;
if (inCache()) {
// Now insert into the new LRU list.
- cache()->insertInLRUList(this);
+ memoryCache()->insertInLRUList(this);
// Update the cache's size totals.
- cache()->adjustSize(hasClients(), delta);
+ memoryCache()->adjustSize(hasClients(), delta);
}
}
@@ -362,10 +362,10 @@ void CachedResource::didAccessDecodedData(double timeStamp)
if (inCache()) {
if (m_inLiveDecodedResourcesList) {
- cache()->removeFromLiveDecodedResourcesList(this);
- cache()->insertInLiveDecodedResourcesList(this);
+ memoryCache()->removeFromLiveDecodedResourcesList(this);
+ memoryCache()->insertInLiveDecodedResourcesList(this);
}
- cache()->prune();
+ memoryCache()->prune();
}
}
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.cpp b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
index 3fcace6..de02758 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.cpp
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.cpp
@@ -43,8 +43,10 @@
#include "Logging.h"
#include "MemoryCache.h"
#include "PingLoader.h"
+#include "ResourceLoadScheduler.h"
#include "SecurityOrigin.h"
#include "Settings.h"
+#include <wtf/text/CString.h>
#include <wtf/text/StringConcatenate.h>
#define PRELOAD_DEBUG 0
@@ -76,8 +78,7 @@ static CachedResource* createResource(CachedResource::Type type, const KURL& url
}
CachedResourceLoader::CachedResourceLoader(Document* document)
- : m_cache(cache())
- , m_document(document)
+ : m_document(document)
, m_requestCount(0)
#ifdef ANDROID_BLOCK_NETWORK_IMAGE
, m_blockNetworkImage(false)
@@ -86,7 +87,6 @@ CachedResourceLoader::CachedResourceLoader(Document* document)
, m_loadFinishing(false)
, m_allowStaleResources(false)
{
- m_cache->addCachedResourceLoader(this);
}
CachedResourceLoader::~CachedResourceLoader()
@@ -96,7 +96,6 @@ CachedResourceLoader::~CachedResourceLoader()
DocumentResourceMap::iterator end = m_documentResources.end();
for (DocumentResourceMap::iterator it = m_documentResources.begin(); it != end; ++it)
it->second->setOwningCachedResourceLoader(0);
- m_cache->removeCachedResourceLoader(this);
// Make sure no requests still point to this CachedResourceLoader
ASSERT(m_requestCount == 0);
@@ -160,14 +159,14 @@ CachedCSSStyleSheet* CachedResourceLoader::requestUserCSSStyleSheet(const String
{
KURL url = MemoryCache::removeFragmentIdentifierIfNeeded(KURL(KURL(), requestURL));
- if (CachedResource* existing = cache()->resourceForURL(url)) {
+ if (CachedResource* existing = memoryCache()->resourceForURL(url)) {
if (existing->type() == CachedResource::CSSStyleSheet)
return static_cast<CachedCSSStyleSheet*>(existing);
- cache()->remove(existing);
+ memoryCache()->remove(existing);
}
CachedCSSStyleSheet* userSheet = new CachedCSSStyleSheet(url, charset);
- bool inCache = cache()->add(userSheet);
+ bool inCache = memoryCache()->add(userSheet);
if (!inCache)
userSheet->setInCache(true);
@@ -290,7 +289,7 @@ CachedResource* CachedResourceLoader::requestResource(CachedResource::Type type,
return 0;
}
- if (cache()->disabled()) {
+ if (memoryCache()->disabled()) {
DocumentResourceMap::iterator it = m_documentResources.find(url.string());
if (it != m_documentResources.end()) {
it->second->setOwningCachedResourceLoader(0);
@@ -299,21 +298,21 @@ CachedResource* CachedResourceLoader::requestResource(CachedResource::Type type,
}
// See if we can use an existing resource from the cache.
- CachedResource* resource = cache()->resourceForURL(url);
+ CachedResource* resource = memoryCache()->resourceForURL(url);
switch (determineRevalidationPolicy(type, forPreload, resource)) {
case Load:
resource = loadResource(type, url, charset, priority);
break;
case Reload:
- cache()->remove(resource);
+ memoryCache()->remove(resource);
resource = loadResource(type, url, charset, priority);
break;
case Revalidate:
resource = revalidateResource(resource, priority);
break;
case Use:
- cache()->resourceAccessed(resource);
+ memoryCache()->resourceAccessed(resource);
notifyLoadedFromMemoryCache(resource);
break;
}
@@ -331,7 +330,7 @@ CachedResource* CachedResourceLoader::revalidateResource(CachedResource* resourc
{
ASSERT(resource);
ASSERT(resource->inCache());
- ASSERT(!cache()->disabled());
+ ASSERT(!memoryCache()->disabled());
ASSERT(resource->canUseCacheValidator());
ASSERT(!resource->resourceToRevalidate());
@@ -341,8 +340,8 @@ CachedResource* CachedResourceLoader::revalidateResource(CachedResource* resourc
LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource, resource);
newResource->setResourceToRevalidate(resource);
- cache()->remove(resource);
- cache()->add(newResource);
+ memoryCache()->remove(resource);
+ memoryCache()->add(newResource);
newResource->setLoadPriority(priority);
newResource->load(this);
@@ -353,13 +352,13 @@ CachedResource* CachedResourceLoader::revalidateResource(CachedResource* resourc
CachedResource* CachedResourceLoader::loadResource(CachedResource::Type type, const KURL& url, const String& charset, ResourceLoadPriority priority)
{
- ASSERT(!cache()->resourceForURL(url));
+ ASSERT(!memoryCache()->resourceForURL(url));
LOG(ResourceLoading, "Loading CachedResource for '%s'.", url.string().latin1().data());
CachedResource* resource = createResource(type, url, charset);
- bool inCache = cache()->add(resource);
+ bool inCache = memoryCache()->add(resource);
// Pretend the resource is in the cache, to prevent it from being deleted during the load() call.
// FIXME: CachedResource should just use normal refcounting instead.
@@ -377,7 +376,7 @@ CachedResource* CachedResourceLoader::loadResource(CachedResource::Type type, co
// We don't support immediate loads, but we do support immediate failure.
if (resource->errorOccurred()) {
if (inCache)
- cache()->remove(resource);
+ memoryCache()->remove(resource);
else
delete resource;
return 0;
@@ -410,6 +409,16 @@ CachedResourceLoader::RevalidationPolicy CachedResourceLoader::determineRevalida
if (existingResource->isPreloaded())
return Use;
+ // CachePolicyHistoryBuffer uses the cache no matter what.
+ if (cachePolicy() == CachePolicyHistoryBuffer)
+ return Use;
+
+ // Don't reuse resources with Cache-control: no-store.
+ if (existingResource->response().cacheControlContainsNoStore()) {
+ LOG(ResourceLoading, "CachedResourceLoader::determineRevalidationPolicy reloading due to Cache-control: no-store.");
+ return Reload;
+ }
+
// Avoid loading the same resource multiple times for a single document, even if the cache policies would tell us to.
if (m_validatedURLs.contains(existingResource->url()))
return Use;
@@ -420,10 +429,6 @@ CachedResourceLoader::RevalidationPolicy CachedResourceLoader::determineRevalida
return Reload;
}
- // CachePolicyHistoryBuffer uses the cache no matter what.
- if (cachePolicy() == CachePolicyHistoryBuffer)
- return Use;
-
// We'll try to reload the resource if it failed last time.
if (existingResource->errorOccurred()) {
LOG(ResourceLoading, "CachedResourceLoader::determineRevalidationPolicye reloading due to resource being in the error state");
@@ -562,6 +567,7 @@ void CachedResourceLoader::loadDone(CachedResourceRequest* request)
if (frame())
frame()->loader()->loadDone();
checkForPendingPreloads();
+ resourceLoadScheduler()->servePendingRequests();
}
void CachedResourceLoader::cancelRequests()
@@ -671,7 +677,7 @@ void CachedResourceLoader::clearPreloads()
if (res->canDelete() && !res->inCache())
delete res;
else if (res->preloadResult() == CachedResource::PreloadNotReferenced)
- cache()->remove(res);
+ memoryCache()->remove(res);
}
m_preloads.clear();
}
@@ -715,7 +721,7 @@ void CachedResourceLoader::printPreloadStats()
}
if (res->errorOccurred())
- cache()->remove(res);
+ memoryCache()->remove(res);
res->decreasePreloadCount();
}
diff --git a/Source/WebCore/loader/cache/CachedResourceLoader.h b/Source/WebCore/loader/cache/CachedResourceLoader.h
index 1d53976..bc351ce 100644
--- a/Source/WebCore/loader/cache/CachedResourceLoader.h
+++ b/Source/WebCore/loader/cache/CachedResourceLoader.h
@@ -50,7 +50,6 @@ class KURL;
// The CachedResourceLoader manages the loading of scripts/images/stylesheets for a single document.
class CachedResourceLoader : public Noncopyable {
-friend class MemoryCache;
friend class ImageLoader;
public:
@@ -124,7 +123,6 @@ private:
void notifyLoadedFromMemoryCache(CachedResource*);
bool canRequest(CachedResource::Type, const KURL&);
- MemoryCache* m_cache;
HashSet<String> m_validatedURLs;
mutable DocumentResourceMap m_documentResources;
Document* m_document;
diff --git a/Source/WebCore/loader/cache/CachedResourceRequest.cpp b/Source/WebCore/loader/cache/CachedResourceRequest.cpp
index 827bb8e..d5e1adf 100644
--- a/Source/WebCore/loader/cache/CachedResourceRequest.cpp
+++ b/Source/WebCore/loader/cache/CachedResourceRequest.cpp
@@ -122,7 +122,7 @@ PassRefPtr<CachedResourceRequest> CachedResourceRequest::load(CachedResourceLoad
cachedResourceLoader->decrementRequestCount(resource);
cachedResourceLoader->loadFinishing();
if (resource->resourceToRevalidate())
- cache()->revalidationFailed(resource);
+ memoryCache()->revalidationFailed(resource);
resource->error(CachedResource::LoadError);
cachedResourceLoader->loadDone(0);
return 0;
@@ -186,7 +186,7 @@ void CachedResourceRequest::didFail(bool cancelled)
m_loader->clearClient();
if (m_resource->resourceToRevalidate())
- cache()->revalidationFailed(m_resource);
+ memoryCache()->revalidationFailed(m_resource);
if (!cancelled) {
m_cachedResourceLoader->loadFinishing();
@@ -194,7 +194,7 @@ void CachedResourceRequest::didFail(bool cancelled)
}
if (cancelled || !m_resource->isPreloaded())
- cache()->remove(m_resource);
+ memoryCache()->remove(m_resource);
m_cachedResourceLoader->loadDone(this);
}
@@ -211,7 +211,7 @@ void CachedResourceRequest::didReceiveResponse(SubresourceLoader* loader, const
m_finishing = true;
// Existing resource is ok, just use it updating the expiration time.
- cache()->revalidationSucceeded(m_resource, response);
+ memoryCache()->revalidationSucceeded(m_resource, response);
if (m_cachedResourceLoader->frame())
m_cachedResourceLoader->frame()->loader()->checkCompleted();
@@ -220,7 +220,7 @@ void CachedResourceRequest::didReceiveResponse(SubresourceLoader* loader, const
return;
}
// Did not get 304 response, continue as a regular resource load.
- cache()->revalidationFailed(m_resource);
+ memoryCache()->revalidationFailed(m_resource);
}
m_resource->setResponse(response);
diff --git a/Source/WebCore/loader/cache/MemoryCache.cpp b/Source/WebCore/loader/cache/MemoryCache.cpp
index 930033a..c0927f8 100644
--- a/Source/WebCore/loader/cache/MemoryCache.cpp
+++ b/Source/WebCore/loader/cache/MemoryCache.cpp
@@ -50,7 +50,7 @@ static const double cMinDelayBeforeLiveDecodedPrune = 1; // Seconds.
static const float cTargetPrunePercentage = .95f; // Percentage of capacity toward which we prune, to avoid immediately pruning again.
static const double cDefaultDecodedDataDeletionInterval = 0;
-MemoryCache* cache()
+MemoryCache* memoryCache()
{
static MemoryCache* staticCache = new MemoryCache;
return staticCache;
@@ -346,16 +346,6 @@ void MemoryCache::evict(CachedResource* resource)
delete resource;
}
-void MemoryCache::addCachedResourceLoader(CachedResourceLoader* cachedResourceLoader)
-{
- m_cachedResourceLoaders.add(cachedResourceLoader);
-}
-
-void MemoryCache::removeCachedResourceLoader(CachedResourceLoader* cachedResourceLoader)
-{
- m_cachedResourceLoaders.remove(cachedResourceLoader);
-}
-
static inline unsigned fastLog2(unsigned i)
{
unsigned log2 = 0;
diff --git a/Source/WebCore/loader/cache/MemoryCache.h b/Source/WebCore/loader/cache/MemoryCache.h
index dc47733..7a567ea 100644
--- a/Source/WebCore/loader/cache/MemoryCache.h
+++ b/Source/WebCore/loader/cache/MemoryCache.h
@@ -72,7 +72,7 @@ class KURL;
class MemoryCache : public Noncopyable {
public:
- friend MemoryCache* cache();
+ friend MemoryCache* memoryCache();
typedef HashMap<String, CachedResource*> CachedResourceMap;
@@ -186,9 +186,6 @@ private:
bool makeResourcePurgeable(CachedResource*);
void evict(CachedResource*);
- // Member variables.
- HashSet<CachedResourceLoader*> m_cachedResourceLoaders;
-
bool m_disabled; // Whether or not the cache is enabled.
bool m_pruneEnabled;
bool m_inPruneDeadResources;
@@ -224,7 +221,7 @@ inline bool MemoryCache::shouldMakeResourcePurgeableOnEviction()
}
// Function to obtain the global cache.
-MemoryCache* cache();
+MemoryCache* memoryCache();
}
diff --git a/Source/WebCore/manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html b/Source/WebCore/manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html
new file mode 100644
index 0000000..e43e074
--- /dev/null
+++ b/Source/WebCore/manual-tests/plug-in-mutates-NSView-hierarchy-during-resize.html
@@ -0,0 +1,37 @@
+<style>
+ div { padding: 10px; margin: 8px; }
+ embed { width: 50px; height: 50px; }
+ iframe { width: 50px; height: 50px; }
+</style>
+<script>
+ var callCount = 0;
+
+ function hideFirst()
+ {
+ if (++callCount != 2)
+ return;
+
+ var target = document.getElementById("target");
+ if (!target)
+ return;
+
+ target.parentNode.removeChild(target);
+ document.body.offsetTop;
+ }
+</script>
+<p>
+ Test that plug-ins cannot cause the NSView hierarchy to change beneath <tt>-[NSView _invalidateGStatesForTree]</tt>.
+</p>
+<p>
+ To test, resize the browser window. Reload and repeat a few times. Each time you resize, the orange rectangle and
+ its contents should vanish, and the browser should not crash.
+</p>
+<div id="target" style="border: solid orange;">
+ <embed type="application/x-webkit-test-netscape"></embed>
+ <iframe src=""></iframe>
+ <iframe src=""></iframe>
+ <iframe src=""></iframe>
+</div>
+<div style="border: solid blue;">
+ <embed type="application/x-webkit-test-netscape" onsetwindow="hideFirst()"></embed>
+</div>
diff --git a/Source/WebCore/page/Chrome.cpp b/Source/WebCore/page/Chrome.cpp
index a801065..0405408 100644
--- a/Source/WebCore/page/Chrome.cpp
+++ b/Source/WebCore/page/Chrome.cpp
@@ -33,7 +33,7 @@
#include "HTMLInputElement.h"
#include "HTMLNames.h"
#include "HitTestResult.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Page.h"
#include "PageGroupLoadDeferrer.h"
#include "RenderObject.h"
@@ -344,10 +344,7 @@ void Chrome::mouseDidMoveOverElement(const HitTestResult& result, unsigned modif
}
m_client->mouseDidMoveOverElement(result, modifierFlags);
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = m_page->inspectorController())
- inspector->mouseDidMoveOverElement(result, modifierFlags);
-#endif
+ InspectorInstrumentation::mouseDidMoveOverElement(m_page, result, modifierFlags);
}
void Chrome::setToolTip(const HitTestResult& result)
diff --git a/Source/WebCore/page/ChromeClient.h b/Source/WebCore/page/ChromeClient.h
index 0276a14..51c8959 100644
--- a/Source/WebCore/page/ChromeClient.h
+++ b/Source/WebCore/page/ChromeClient.h
@@ -100,6 +100,8 @@ namespace WebCore {
// Frame wants to create the new Page. Also, the newly created window
// should not be shown to the user until the ChromeClient of the newly
// created Page has its show method called.
+ // The FrameLoadRequest parameter is only for ChromeClient to check if the
+ // request could be fulfilled. The ChromeClient should not load the request.
virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&) = 0;
virtual void show() = 0;
diff --git a/Source/WebCore/page/Console.cpp b/Source/WebCore/page/Console.cpp
index 219647d..d4aed41 100644
--- a/Source/WebCore/page/Console.cpp
+++ b/Source/WebCore/page/Console.cpp
@@ -31,11 +31,11 @@
#include "Chrome.h"
#include "ChromeClient.h"
-#include "ConsoleMessage.h"
#include "Frame.h"
#include "FrameLoader.h"
#include "FrameTree.h"
#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "MemoryInfo.h"
#include "Page.h"
#include "PageGroup.h"
@@ -146,12 +146,10 @@ void Console::addMessage(MessageSource source, MessageType type, MessageLevel le
if (source == JSMessageSource)
page->chrome()->client()->addMessageToConsole(source, type, level, message, lineNumber, sourceURL);
-#if ENABLE(INSPECTOR)
if (callStack)
- page->inspectorController()->addMessageToConsole(source, type, level, message, 0, callStack);
+ InspectorInstrumentation::addMessageToConsole(page, source, type, level, message, 0, callStack.get());
else
- page->inspectorController()->addMessageToConsole(source, type, level, message, lineNumber, sourceURL);
-#endif
+ InspectorInstrumentation::addMessageToConsole(page, source, type, level, message, lineNumber, sourceURL);
if (!Console::shouldPrintExceptions())
return;
@@ -189,9 +187,7 @@ void Console::addMessage(MessageType type, MessageLevel level, PassRefPtr<Script
if (arguments->getFirstArgumentAsString(message))
page->chrome()->client()->addMessageToConsole(JSMessageSource, type, level, message, lastCaller.lineNumber(), lastCaller.sourceURL());
-#if ENABLE(INSPECTOR)
- page->inspectorController()->addMessageToConsole(JSMessageSource, type, level, message, arguments, callStack);
-#endif
+ InspectorInstrumentation::addMessageToConsole(page, JSMessageSource, type, level, message, arguments.get(), callStack.get());
}
void Console::debug(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
@@ -250,65 +246,13 @@ void Console::assertCondition(bool condition, PassRefPtr<ScriptArguments> argume
void Console::count(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- const ScriptCallFrame& lastCaller = callStack->at(0);
- // Follow Firebug's behavior of counting with null and undefined title in
- // the same bucket as no argument
- String title;
- arguments->getFirstArgumentAsString(title);
-
- page->inspectorController()->count(title, lastCaller.lineNumber(), lastCaller.sourceURL());
-#else
- UNUSED_PARAM(callStack);
-#endif
+ InspectorInstrumentation::consoleCount(page(), arguments.get(), callStack.get());
}
void Console::markTimeline(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack>)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- String message;
- arguments->getFirstArgumentAsString(message);
-
- page->inspectorController()->markTimeline(message);
-#else
- UNUSED_PARAM(arguments);
-#endif
-}
-
-#if ENABLE(WML)
-String Console::lastWMLErrorMessage() const
-{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return String();
-
- const Vector<OwnPtr<ConsoleMessage> >& consoleMessages = page->inspectorController()->consoleMessages();
- if (consoleMessages.isEmpty())
- return String();
-
- Vector<OwnPtr<ConsoleMessage> >::const_iterator it = consoleMessages.begin();
- const Vector<OwnPtr<ConsoleMessage> >::const_iterator end = consoleMessages.end();
-
- for (; it != end; ++it) {
- ConsoleMessage* message = it->get();
- if (message->source() != WMLMessageSource)
- continue;
-
- return message->message();
- }
-#endif
- return String();
+ InspectorInstrumentation::consoleMarkTimeline(page(), arguments.get());
}
-#endif
#if ENABLE(JAVASCRIPT_DEBUGGER)
@@ -335,10 +279,8 @@ void Console::profile(const String& title, ScriptState* state, PassRefPtr<Script
ScriptProfiler::start(state, resolvedTitle);
-#if ENABLE(INSPECTOR)
const ScriptCallFrame& lastCaller = callStack->at(0);
- controller->addStartProfilingMessageToConsole(resolvedTitle, lastCaller.lineNumber(), lastCaller.sourceURL());
-#endif
+ InspectorInstrumentation::addStartProfilingMessageToConsole(page, resolvedTitle, lastCaller.lineNumber(), lastCaller.sourceURL());
}
void Console::profileEnd(const String& title, ScriptState* state, PassRefPtr<ScriptCallStack> callStack)
@@ -369,85 +311,27 @@ void Console::profileEnd(const String& title, ScriptState* state, PassRefPtr<Scr
void Console::time(const String& title)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- // Follow Firebug's behavior of requiring a title that is not null or
- // undefined for timing functions
- if (title.isNull())
- return;
-
- page->inspectorController()->startTiming(title);
-#else
- UNUSED_PARAM(title);
-#endif
+ InspectorInstrumentation::startConsoleTiming(page(), title);
}
void Console::timeEnd(const String& title, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack> callStack)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- // Follow Firebug's behavior of requiring a title that is not null or
- // undefined for timing functions
- if (title.isNull())
- return;
-
- double elapsed;
- if (!page->inspectorController()->stopTiming(title, elapsed))
- return;
-
- String message = title + String::format(": %.0fms", elapsed);
-
- const ScriptCallFrame& lastCaller = callStack->at(0);
- page->inspectorController()->addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, message, lastCaller.lineNumber(), lastCaller.sourceURL());
-#else
- UNUSED_PARAM(title);
- UNUSED_PARAM(callStack);
-#endif
+ InspectorInstrumentation::stopConsoleTiming(page(), title, callStack.get());
}
void Console::group(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- page->inspectorController()->startGroup(arguments, callStack);
-#else
- UNUSED_PARAM(arguments);
- UNUSED_PARAM(callStack);
-#endif
+ InspectorInstrumentation::addMessageToConsole(page(), JSMessageSource, StartGroupMessageType, LogMessageLevel, String(), arguments.get(), callStack.get());
}
void Console::groupCollapsed(PassRefPtr<ScriptArguments> arguments, PassRefPtr<ScriptCallStack> callStack)
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- page->inspectorController()->startGroup(arguments, callStack, true);
-#else
- UNUSED_PARAM(arguments);
- UNUSED_PARAM(callStack);
-#endif
+ InspectorInstrumentation::addMessageToConsole(page(), JSMessageSource, StartGroupCollapsedMessageType, LogMessageLevel, String(), arguments.get(), callStack.get());
}
void Console::groupEnd()
{
-#if ENABLE(INSPECTOR)
- Page* page = this->page();
- if (!page)
- return;
-
- page->inspectorController()->endGroup(JSMessageSource, 0, String());
-#endif
+ InspectorInstrumentation::addMessageToConsole(page(), JSMessageSource, EndGroupMessageType, LogMessageLevel, String(), 0, String());
}
bool Console::shouldCaptureFullStackTrace() const
diff --git a/Source/WebCore/page/Console.h b/Source/WebCore/page/Console.h
index dd692a2..ceefb38 100644
--- a/Source/WebCore/page/Console.h
+++ b/Source/WebCore/page/Console.h
@@ -101,9 +101,6 @@ public:
void assertCondition(bool condition, PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
void count(PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
void markTimeline(PassRefPtr<ScriptArguments>, PassRefPtr<ScriptCallStack>);
-#if ENABLE(WML)
- String lastWMLErrorMessage() const;
-#endif
#if ENABLE(JAVASCRIPT_DEBUGGER)
const ProfilesArray& profiles() const { return m_profiles; }
void profile(const String&, ScriptState*, PassRefPtr<ScriptCallStack>);
diff --git a/Source/WebCore/page/Console.idl b/Source/WebCore/page/Console.idl
index 503bb91..189280d 100644
--- a/Source/WebCore/page/Console.idl
+++ b/Source/WebCore/page/Console.idl
@@ -42,10 +42,6 @@ module window {
[CustomArgumentHandling] void count();
[CustomArgumentHandling] void markTimeline();
-#if defined(ENABLE_WML) && ENABLE_WML
- [DontEnum] DOMString lastWMLErrorMessage();
-#endif
-
#if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
readonly attribute [CustomGetter] Array profiles;
[Custom] void profile(in DOMString title);
diff --git a/Source/WebCore/page/ContextMenuController.cpp b/Source/WebCore/page/ContextMenuController.cpp
index ac89db2..0909f70 100644
--- a/Source/WebCore/page/ContextMenuController.cpp
+++ b/Source/WebCore/page/ContextMenuController.cpp
@@ -158,9 +158,10 @@ static void openNewWindow(const KURL& urlToLoad, Frame* frame)
{
if (Page* oldPage = frame->page()) {
FrameLoadRequest request(frame->document()->securityOrigin(), ResourceRequest(urlToLoad, frame->loader()->outgoingReferrer()));
- WindowFeatures features;
- if (Page* newPage = oldPage->chrome()->createWindow(frame, request, features, NavigationAction()))
+ if (Page* newPage = oldPage->chrome()->createWindow(frame, request, WindowFeatures(), NavigationAction())) {
+ newPage->mainFrame()->loader()->loadFrameRequest(request, false, false, 0, 0, SendReferrer);
newPage->chrome()->show();
+ }
}
}
diff --git a/Source/WebCore/page/DOMWindow.cpp b/Source/WebCore/page/DOMWindow.cpp
index be6c179..99c8fcd 100644
--- a/Source/WebCore/page/DOMWindow.cpp
+++ b/Source/WebCore/page/DOMWindow.cpp
@@ -43,6 +43,7 @@
#include "DOMStringList.h"
#include "DOMTimer.h"
#include "DOMTokenList.h"
+#include "DOMURL.h"
#include "Database.h"
#include "DatabaseCallback.h"
#include "DeviceMotionController.h"
@@ -64,7 +65,6 @@
#include "History.h"
#include "IDBFactory.h"
#include "IDBFactoryBackendInterface.h"
-#include "InspectorController.h"
#include "InspectorInstrumentation.h"
#include "KURL.h"
#include "Location.h"
@@ -627,9 +627,7 @@ Storage* DOMWindow::sessionStorage(ExceptionCode& ec) const
return 0;
RefPtr<StorageArea> storageArea = page->sessionStorage()->storageArea(document->securityOrigin());
-#if ENABLE(INSPECTOR)
- page->inspectorController()->didUseDOMStorage(storageArea.get(), false, m_frame);
-#endif
+ InspectorInstrumentation::didUseDOMStorage(page, storageArea.get(), false, m_frame);
m_sessionStorage = Storage::create(m_frame, storageArea.release());
return m_sessionStorage.get();
@@ -657,9 +655,7 @@ Storage* DOMWindow::localStorage(ExceptionCode& ec) const
return 0;
RefPtr<StorageArea> storageArea = page->group().localStorage()->storageArea(document->securityOrigin());
-#if ENABLE(INSPECTOR)
- page->inspectorController()->didUseDOMStorage(storageArea.get(), true, m_frame);
-#endif
+ InspectorInstrumentation::didUseDOMStorage(page, storageArea.get(), true, m_frame);
m_localStorage = Storage::create(m_frame, storageArea.release());
return m_localStorage.get();
@@ -1355,7 +1351,7 @@ void DOMWindow::scrollTo(int x, int y) const
m_frame->document()->updateLayoutIgnorePendingStylesheets();
- FrameView* view = m_frame->view();
+ RefPtr<FrameView> view = m_frame->view();
if (!view)
return;
@@ -1542,13 +1538,7 @@ void DOMWindow::dispatchLoadEvent()
ownerElement->dispatchGenericEvent(ownerEvent.release());
}
-#if ENABLE(INSPECTOR)
- if (!frame() || !frame()->page())
- return;
-
- if (InspectorController* controller = frame()->page()->inspectorController())
- controller->mainResourceFiredLoadEvent(frame()->loader()->documentLoader(), url());
-#endif
+ InspectorInstrumentation::mainResourceFiredLoadEvent(frame(), url());
}
bool DOMWindow::dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget> prpTarget)
@@ -1622,6 +1612,7 @@ EventTargetData* DOMWindow::ensureEventTargetData()
return &m_eventTargetData;
}
+<<<<<<< HEAD
#if ENABLE(BLOB)
String DOMWindow::createObjectURL(Blob* blob)
{
@@ -1647,6 +1638,8 @@ void DOMWindow::clearDOMStorage()
}
#endif
+=======
+>>>>>>> WebKit.org @ r75993
void DOMWindow::setLocation(const String& urlString, DOMWindow* activeWindow, DOMWindow* firstWindow, SetLocationLocking locking)
{
Frame* activeFrame = activeWindow->frame();
@@ -1725,17 +1718,11 @@ Frame* DOMWindow::createWindow(const String& urlString, const AtomicString& fram
{
Frame* activeFrame = activeWindow->frame();
- // FIXME: It's much better for client API if a new window starts with a URL, here where we
- // know what URL we are going to open. Unfortunately, this code passes the empty string
- // for the URL, but there's a reason for that. Before loading we have to set up the opener,
- // openedByDOM, and dialogArguments values. Also, to decide whether to use the URL we currently
- // do an isInsecureScriptAccess call using the window we create, which can't be done before
- // creating it. We'd have to resolve all those issues to pass the URL instead of an empty string.
-
// For whatever reason, Firefox uses the first frame to determine the outgoingReferrer. We replicate that behavior here.
String referrer = firstFrame->loader()->outgoingReferrer();
- ResourceRequest request(KURL(), referrer);
+ KURL completedURL = urlString.isEmpty() ? KURL(ParsedURLString, "") : firstFrame->document()->completeURL(urlString);
+ ResourceRequest request(completedURL, referrer);
FrameLoader::addHTTPOriginIfNeeded(request, firstFrame->loader()->outgoingOrigin());
FrameLoadRequest frameRequest(activeWindow->securityOrigin(), request, frameName);
@@ -1755,8 +1742,6 @@ Frame* DOMWindow::createWindow(const String& urlString, const AtomicString& fram
if (function)
function(newFrame->domWindow(), functionContext);
- KURL completedURL = urlString.isEmpty() ? KURL(ParsedURLString, "") : firstFrame->document()->completeURL(urlString);
-
if (created)
newFrame->loader()->changeLocation(activeWindow->securityOrigin(), completedURL, referrer, false, false);
else if (!urlString.isEmpty()) {
@@ -1854,4 +1839,13 @@ void DOMWindow::showModalDialog(const String& urlString, const String& dialogFea
dialogFrame->page()->chrome()->runModal();
}
+#if ENABLE(BLOB)
+DOMURL* DOMWindow::webkitURL() const
+{
+ if (!m_domURL)
+ m_domURL = DOMURL::create(this->scriptExecutionContext());
+ return m_domURL.get();
+}
+#endif
+
} // namespace WebCore
diff --git a/Source/WebCore/page/DOMWindow.h b/Source/WebCore/page/DOMWindow.h
index 8f434d6..3614627 100644
--- a/Source/WebCore/page/DOMWindow.h
+++ b/Source/WebCore/page/DOMWindow.h
@@ -34,12 +34,12 @@
namespace WebCore {
class BarInfo;
- class Blob;
class CSSRuleList;
class CSSStyleDeclaration;
class Console;
class DOMApplicationCache;
class DOMSelection;
+ class DOMURL;
class Database;
class DatabaseCallback;
class Document;
@@ -343,8 +343,7 @@ namespace WebCore {
using RefCounted<DOMWindow>::deref;
#if ENABLE(BLOB)
- String createObjectURL(Blob*);
- void revokeObjectURL(const String&);
+ DOMURL* webkitURL() const;
#endif
#if ENABLE(DATABASE)
@@ -469,6 +468,10 @@ namespace WebCore {
#if ENABLE(WEB_TIMING)
mutable RefPtr<Performance> m_performance;
#endif
+
+#if ENABLE(BLOB)
+ mutable RefPtr<DOMURL> m_domURL;
+#endif
};
inline String DOMWindow::status() const
diff --git a/Source/WebCore/page/DOMWindow.idl b/Source/WebCore/page/DOMWindow.idl
index 5aab15e..77ffe41 100644
--- a/Source/WebCore/page/DOMWindow.idl
+++ b/Source/WebCore/page/DOMWindow.idl
@@ -779,10 +779,7 @@ module window {
attribute [Conditional=BLOB] BlobBuilderConstructor BlobBuilder;
-#if defined(ENABLE_BLOB) && ENABLE_BLOB
- [ConvertNullStringTo=Undefined] DOMString createObjectURL(in Blob blob);
- void revokeObjectURL(in DOMString blobURL);
-#endif
+ readonly attribute [Conditional=BLOB] DOMURL webkitURL;
#endif // defined(LANGUAGE_JAVASCRIPT)
diff --git a/Source/WebCore/page/DragController.cpp b/Source/WebCore/page/DragController.cpp
index d0e9a8c..7be708c 100644
--- a/Source/WebCore/page/DragController.cpp
+++ b/Source/WebCore/page/DragController.cpp
@@ -99,7 +99,7 @@ DragController::~DragController()
m_client->dragControllerDestroyed();
}
-static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragData, RefPtr<Range> context,
+static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragData, Frame* frame, RefPtr<Range> context,
bool allowPlainText, bool& chosePlainText)
{
ASSERT(dragData);
@@ -108,19 +108,19 @@ static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragD
Document* document = context->ownerDocument();
ASSERT(document);
if (document && dragData->containsCompatibleContent()) {
- if (PassRefPtr<DocumentFragment> fragment = dragData->asFragment(document))
+ if (PassRefPtr<DocumentFragment> fragment = dragData->asFragment(frame, context, allowPlainText, chosePlainText))
return fragment;
- if (dragData->containsURL(DragData::DoNotConvertFilenames)) {
+ if (dragData->containsURL(frame, DragData::DoNotConvertFilenames)) {
String title;
- String url = dragData->asURL(DragData::DoNotConvertFilenames, &title);
+ String url = dragData->asURL(frame, DragData::DoNotConvertFilenames, &title);
if (!url.isEmpty()) {
RefPtr<HTMLAnchorElement> anchor = HTMLAnchorElement::create(document);
anchor->setHref(url);
if (title.isEmpty()) {
// Try the plain text first because the url might be normalized or escaped.
if (dragData->containsPlainText())
- title = dragData->asPlainText();
+ title = dragData->asPlainText(frame);
if (title.isEmpty())
title = url;
}
@@ -135,15 +135,15 @@ static PassRefPtr<DocumentFragment> documentFragmentFromDragData(DragData* dragD
}
if (allowPlainText && dragData->containsPlainText()) {
chosePlainText = true;
- return createFragmentFromText(context.get(), dragData->asPlainText()).get();
+ return createFragmentFromText(context.get(), dragData->asPlainText(frame)).get();
}
return 0;
}
-bool DragController::dragIsMove(SelectionController* selection)
+bool DragController::dragIsMove(SelectionController* selection, DragData* dragData)
{
- return m_documentUnderMouse == m_dragInitiator && selection->isContentEditable() && !isCopyKeyDown();
+ return m_documentUnderMouse == m_dragInitiator && selection->isContentEditable() && !isCopyKeyDown(dragData);
}
// FIXME: This method is poorly named. We're just clearing the selection from the document this drag is exiting.
@@ -214,7 +214,7 @@ bool DragController::performDrag(DragData* dragData)
return false;
m_client->willPerformDragDestinationAction(DragDestinationActionLoad, dragData);
- m_page->mainFrame()->loader()->load(ResourceRequest(dragData->asURL()), false);
+ m_page->mainFrame()->loader()->load(ResourceRequest(dragData->asURL(m_page->mainFrame())), false);
return true;
}
@@ -335,7 +335,7 @@ bool DragController::tryDocumentDrag(DragData* dragData, DragDestinationAction a
}
Frame* innerFrame = element->document()->frame();
- operation = dragIsMove(innerFrame->selection()) ? DragOperationMove : DragOperationCopy;
+ operation = dragIsMove(innerFrame->selection(), dragData) ? DragOperationMove : DragOperationCopy;
return true;
}
// If we're not over an editable region, make sure we're clearing any prior drag cursor.
@@ -372,7 +372,7 @@ static bool setSelectionToDragCaret(Frame* frame, VisibleSelection& dragCaret, R
bool DragController::dispatchTextInputEventFor(Frame* innerFrame, DragData* dragData)
{
VisibleSelection dragCaret(m_page->dragCaretController()->selection());
- String text = dragCaret.isContentRichlyEditable() ? "" : dragData->asPlainText();
+ String text = dragCaret.isContentRichlyEditable() ? "" : dragData->asPlainText(innerFrame);
Node* target = innerFrame->editor()->findEventTargetFrom(dragCaret);
ExceptionCode ec = 0;
return target->dispatchEvent(TextEvent::createForDrop(innerFrame->domWindow(), text), ec);
@@ -449,16 +449,16 @@ bool DragController::concludeEditDrag(DragData* dragData)
return false;
CachedResourceLoader* cachedResourceLoader = range->ownerDocument()->cachedResourceLoader();
cachedResourceLoader->setAllowStaleResources(true);
- if (dragIsMove(innerFrame->selection()) || dragCaret.isContentRichlyEditable()) {
+ if (dragIsMove(innerFrame->selection(), dragData) || dragCaret.isContentRichlyEditable()) {
bool chosePlainText = false;
- RefPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, range, true, chosePlainText);
+ RefPtr<DocumentFragment> fragment = documentFragmentFromDragData(dragData, innerFrame, range, true, chosePlainText);
if (!fragment || !innerFrame->editor()->shouldInsertFragment(fragment, range, EditorInsertActionDropped)) {
cachedResourceLoader->setAllowStaleResources(false);
return false;
}
m_client->willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
- if (dragIsMove(innerFrame->selection())) {
+ if (dragIsMove(innerFrame->selection(), dragData)) {
// NSTextView behavior is to always smart delete on moving a selection,
// but only to smart insert if the selection granularity is word granularity.
bool smartDelete = innerFrame->editor()->smartInsertDeleteEnabled();
@@ -469,7 +469,7 @@ bool DragController::concludeEditDrag(DragData* dragData)
applyCommand(ReplaceSelectionCommand::create(m_documentUnderMouse.get(), fragment, true, dragData->canSmartReplace(), chosePlainText));
}
} else {
- String text = dragData->asPlainText();
+ String text = dragData->asPlainText(innerFrame);
if (text.isEmpty() || !innerFrame->editor()->shouldInsertText(text, range.get(), EditorInsertActionDropped)) {
cachedResourceLoader->setAllowStaleResources(false);
return false;
diff --git a/Source/WebCore/page/DragController.h b/Source/WebCore/page/DragController.h
index 0e90a52..10bb5f8 100644
--- a/Source/WebCore/page/DragController.h
+++ b/Source/WebCore/page/DragController.h
@@ -99,8 +99,8 @@ namespace WebCore {
bool tryDHTMLDrag(DragData*, DragOperation&);
DragOperation dragOperation(DragData*);
void cancelDrag();
- bool dragIsMove(SelectionController*);
- bool isCopyKeyDown();
+ bool dragIsMove(SelectionController*, DragData*);
+ bool isCopyKeyDown(DragData*);
void mouseMovedIntoDocument(Document*);
diff --git a/Source/WebCore/page/EditorClient.h b/Source/WebCore/page/EditorClient.h
index 1ec0c7e..71ba3dd 100644
--- a/Source/WebCore/page/EditorClient.h
+++ b/Source/WebCore/page/EditorClient.h
@@ -157,6 +157,8 @@ public:
virtual NSString* userVisibleString(NSURL*) = 0;
virtual DocumentFragment* documentFragmentFromAttributedString(NSAttributedString*, Vector< RefPtr<ArchiveResource> >&) = 0;
virtual void setInsertionPasteboard(NSPasteboard*) = 0;
+ virtual NSURL* canonicalizeURL(NSURL*) = 0;
+ virtual NSURL* canonicalizeURLString(NSString*) = 0;
#ifdef BUILDING_ON_TIGER
virtual NSArray* pasteboardTypesForSelection(Frame*) = 0;
#endif
diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp
index a04bcf0..942f032 100644
--- a/Source/WebCore/page/EventHandler.cpp
+++ b/Source/WebCore/page/EventHandler.cpp
@@ -32,10 +32,12 @@
#include "Chrome.h"
#include "ChromeClient.h"
#include "Cursor.h"
+#include "CursorList.h"
#include "Document.h"
#include "DragController.h"
#include "Editor.h"
#include "EventNames.h"
+#include "EventQueue.h"
#include "FloatPoint.h"
#include "FloatRect.h"
#include "FocusController.h"
@@ -50,7 +52,7 @@
#include "HitTestRequest.h"
#include "HitTestResult.h"
#include "Image.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "KeyboardEvent.h"
#include "MouseEvent.h"
#include "MouseEventWithHitTestResults.h"
@@ -1321,17 +1323,11 @@ bool EventHandler::handleMousePressEvent(const PlatformMouseEvent& mouseEvent)
m_mousePressNode = mev.targetNode();
-#if ENABLE(INSPECTOR)
- if (Page* page = m_frame->page()) {
- InspectorController* inspector = page->inspectorController();
- if (inspector && inspector->enabled() && inspector->searchingForNodeInPage()) {
- inspector->handleMousePress();
- invalidateClick();
- return true;
- }
+ if (InspectorInstrumentation::handleMousePress(m_frame->page())) {
+ invalidateClick();
+ return true;
}
-#endif
-
+
Frame* subframe = subframeForHitTestResult(mev);
if (subframe && passMousePressEventToSubframe(mev, subframe)) {
// Start capturing future events for this frame. We only do this if we didn't clear
@@ -2825,7 +2821,7 @@ void EventHandler::sendScrollEvent()
{
setFrameWasScrolledByUser();
if (m_frame->view() && m_frame->document())
- m_frame->document()->dispatchEvent(Event::create(eventNames().scrollEvent, true, false));
+ m_frame->document()->eventQueue()->enqueueScrollEvent(m_frame->document(), EventQueue::ScrollEventDocumentTarget);
}
void EventHandler::setFrameWasScrolledByUser()
diff --git a/Source/WebCore/page/Frame.cpp b/Source/WebCore/page/Frame.cpp
index 11a86c6..4c7c6b7 100644
--- a/Source/WebCore/page/Frame.cpp
+++ b/Source/WebCore/page/Frame.cpp
@@ -979,6 +979,18 @@ void Frame::setPageAndTextZoomFactors(float pageZoomFactor, float textZoomFactor
}
}
+#if USE(ACCELERATED_COMPOSITING)
+void Frame::updateContentsScale(float scale)
+{
+ for (Frame* child = tree()->firstChild(); child; child = child->tree()->nextSibling())
+ child->updateContentsScale(scale);
+
+ RenderView* root = contentRenderer();
+ if (root && root->compositor())
+ root->compositor()->updateContentsScale(scale);
+}
+#endif
+
void Frame::scalePage(float scale, const IntPoint& origin)
{
Document* document = this->document();
@@ -992,6 +1004,10 @@ void Frame::scalePage(float scale, const IntPoint& origin)
document->recalcStyle(Node::Force);
+#if USE(ACCELERATED_COMPOSITING)
+ updateContentsScale(scale);
+#endif
+
if (FrameView* view = this->view()) {
if (document->renderer() && document->renderer()->needsLayout() && view->didFirstLayout())
view->layout();
diff --git a/Source/WebCore/page/Frame.h b/Source/WebCore/page/Frame.h
index 4928742..a1e5c10 100644
--- a/Source/WebCore/page/Frame.h
+++ b/Source/WebCore/page/Frame.h
@@ -35,6 +35,7 @@
#include "EventHandler.h"
#include "FrameLoader.h"
#include "FrameTree.h"
+#include "NavigationScheduler.h"
#include "SelectionController.h"
#include "ScriptController.h"
#include "UserScriptTypes.h"
@@ -207,6 +208,10 @@ namespace WebCore {
void injectUserScriptsForWorld(DOMWrapperWorld*, const UserScriptVector&, UserScriptInjectionTime);
void lifeSupportTimerFired(Timer<Frame>*);
+#if USE(ACCELERATED_COMPOSITING)
+ void updateContentsScale(float);
+#endif
+
HashSet<FrameDestructionObserver*> m_destructionObservers;
Page* m_page;
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index 926d943..fdf01ec 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -566,6 +566,24 @@ void FrameView::updateCompositingLayers()
#endif
}
+void FrameView::syncCompositingStateForThisFrame()
+{
+ if (RenderView* view = m_frame->contentRenderer())
+ view->compositor()->flushPendingLayerChanges();
+
+#if ENABLE(FULLSCREEN_API)
+ // The fullScreenRenderer's graphicsLayer has been re-parented, and the above recursive syncCompositingState
+ // call will not cause the subtree under it to repaint. Explicitly call the syncCompositingState on
+ // the fullScreenRenderer's graphicsLayer here:
+ Document* document = m_frame->document();
+ if (isDocumentRunningFullScreenAnimation(document)) {
+ RenderLayerBacking* backing = document->fullScreenRenderer()->layer()->backing();
+ if (GraphicsLayer* fullScreenLayer = backing->graphicsLayer())
+ fullScreenLayer->syncCompositingState();
+ }
+#endif
+}
+
void FrameView::setNeedsOneShotDrawingSynchronization()
{
Page* page = frame() ? frame()->page() : 0;
@@ -655,21 +673,8 @@ bool FrameView::syncCompositingStateRecursive()
if (needsLayout())
return false;
- if (GraphicsLayer* rootLayer = contentRenderer->compositor()->rootPlatformLayer())
- rootLayer->syncCompositingState();
+ syncCompositingStateForThisFrame();
-#if ENABLE(FULLSCREEN_API)
- // The fullScreenRenderer's graphicsLayer has been re-parented, and the above recursive syncCompositingState
- // call will not cause the subtree under it to repaint. Explicitly call the syncCompositingState on
- // the fullScreenRenderer's graphicsLayer here:
- Document* document = m_frame->document();
- if (isDocumentRunningFullScreenAnimation(document)) {
- RenderLayerBacking* backing = document->fullScreenRenderer()->layer()->backing();
- if (GraphicsLayer* fullScreenLayer = backing->graphicsLayer())
- fullScreenLayer->syncCompositingState();
- }
-#endif
-
bool allSubframesSynced = true;
const HashSet<RefPtr<Widget> >* viewChildren = children();
HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end();
@@ -2231,20 +2236,8 @@ void FrameView::paintContents(GraphicsContext* p, const IntRect& rect)
return;
#if USE(ACCELERATED_COMPOSITING)
- if (!p->paintingDisabled()) {
- if (GraphicsLayer* rootLayer = contentRenderer->compositor()->rootPlatformLayer())
- rootLayer->syncCompositingState();
-#if ENABLE(FULLSCREEN_API)
- // The fullScreenRenderer's graphicsLayer has been re-parented, and the above recursive syncCompositingState
- // call will not cause the subtree under it to repaint. Explicitly call the syncCompositingState on
- // the fullScreenRenderer's graphicsLayer here:
- if (isDocumentRunningFullScreenAnimation(document)) {
- RenderLayerBacking* backing = document->fullScreenRenderer()->layer()->backing();
- if (GraphicsLayer* fullScreenLayer = backing->graphicsLayer())
- fullScreenLayer->syncCompositingState();
- }
-#endif
- }
+ if (!p->paintingDisabled())
+ syncCompositingStateForThisFrame();
#endif
PaintBehavior oldPaintBehavior = m_paintBehavior;
diff --git a/Source/WebCore/page/FrameView.h b/Source/WebCore/page/FrameView.h
index ed45d00..bdeab90 100644
--- a/Source/WebCore/page/FrameView.h
+++ b/Source/WebCore/page/FrameView.h
@@ -103,6 +103,7 @@ public:
#if USE(ACCELERATED_COMPOSITING)
void updateCompositingLayers();
+ void syncCompositingStateForThisFrame();
// Called when changes to the GraphicsLayer hierarchy have to be synchronized with
// content rendered via the normal painting path.
diff --git a/Source/WebCore/page/GeolocationController.cpp b/Source/WebCore/page/GeolocationController.cpp
index 28d522d..764b913 100644
--- a/Source/WebCore/page/GeolocationController.cpp
+++ b/Source/WebCore/page/GeolocationController.cpp
@@ -41,8 +41,12 @@ GeolocationController::GeolocationController(Page* page, GeolocationClient* clie
GeolocationController::~GeolocationController()
{
- if (m_client)
+ if (m_client) {
+ if (!m_observers.isEmpty())
+ m_client->stopUpdating();
+
m_client->geolocationDestroyed();
+ }
}
void GeolocationController::addObserver(Geolocation* observer, bool enableHighAccuracy)
diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp
index 5b87051..b864aa2 100644
--- a/Source/WebCore/page/Page.cpp
+++ b/Source/WebCore/page/Page.cpp
@@ -47,6 +47,7 @@
#include "HTMLElement.h"
#include "HistoryItem.h"
#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Logging.h"
#include "MediaCanStartListener.h"
#include "Navigator.h"
@@ -94,6 +95,7 @@
#include "GeolocationController.h"
#endif
+<<<<<<< HEAD
#if ENABLE(INSPECTOR) && ENABLE(OFFLINE_WEB_APPLICATIONS)
#include "InspectorApplicationCacheAgent.h"
#endif
@@ -102,6 +104,8 @@
#include "PackageNotifier.h"
#endif
+=======
+>>>>>>> WebKit.org @ r75993
namespace WebCore {
static HashSet<Page*>* allPages;
@@ -114,19 +118,12 @@ static void networkStateChanged()
{
Vector<RefPtr<Frame> > frames;
-#if ENABLE(INSPECTOR) && ENABLE(OFFLINE_WEB_APPLICATIONS)
- bool isNowOnline = networkStateNotifier().onLine();
-#endif
-
// Get all the frames of all the pages in all the page groups
HashSet<Page*>::iterator end = allPages->end();
for (HashSet<Page*>::iterator it = allPages->begin(); it != end; ++it) {
for (Frame* frame = (*it)->mainFrame(); frame; frame = frame->tree()->traverseNext())
frames.append(frame);
-#if ENABLE(INSPECTOR) && ENABLE(OFFLINE_WEB_APPLICATIONS)
- if (InspectorApplicationCacheAgent* applicationCacheAgent = (*it)->inspectorController()->applicationCacheAgent())
- applicationCacheAgent->updateNetworkState(isNowOnline);
-#endif
+ InspectorInstrumentation::networkStateChanged(*it);
}
AtomicString eventName = networkStateNotifier().onLine() ? eventNames().onlineEvent : eventNames().offlineEvent;
@@ -227,10 +224,8 @@ Page::~Page()
frame->pageDestroyed();
m_editorClient->pageDestroyed();
-
-#if ENABLE(INSPECTOR)
- m_inspectorController->inspectedPageDestroyed();
-#endif
+
+ InspectorInstrumentation::inspectedPageDestroyed(this);
backForward()->close();
diff --git a/Source/WebCore/page/PerformanceTiming.cpp b/Source/WebCore/page/PerformanceTiming.cpp
index fb8bfb7..76b410a 100644
--- a/Source/WebCore/page/PerformanceTiming.cpp
+++ b/Source/WebCore/page/PerformanceTiming.cpp
@@ -227,7 +227,7 @@ unsigned long long PerformanceTiming::connectEnd() const
return resourceLoadTimeRelativeToAbsolute(connectEnd);
}
-unsigned long long PerformanceTiming::sslHandshakeStart() const
+unsigned long long PerformanceTiming::secureConnectionStart() const
{
DocumentLoader* loader = documentLoader();
if (!loader)
diff --git a/Source/WebCore/page/PerformanceTiming.h b/Source/WebCore/page/PerformanceTiming.h
index 9c35672..0c37383 100644
--- a/Source/WebCore/page/PerformanceTiming.h
+++ b/Source/WebCore/page/PerformanceTiming.h
@@ -61,7 +61,7 @@ public:
unsigned long long domainLookupEnd() const;
unsigned long long connectStart() const;
unsigned long long connectEnd() const;
- unsigned long long sslHandshakeStart() const;
+ unsigned long long secureConnectionStart() const;
unsigned long long requestStart() const;
unsigned long long responseStart() const;
unsigned long long responseEnd() const;
diff --git a/Source/WebCore/page/PerformanceTiming.idl b/Source/WebCore/page/PerformanceTiming.idl
index a0f08e2..dacf93b 100644
--- a/Source/WebCore/page/PerformanceTiming.idl
+++ b/Source/WebCore/page/PerformanceTiming.idl
@@ -42,7 +42,7 @@ module window {
readonly attribute unsigned long long domainLookupEnd;
readonly attribute unsigned long long connectStart;
readonly attribute unsigned long long connectEnd;
- readonly attribute unsigned long long sslHandshakeStart;
+ readonly attribute unsigned long long secureConnectionStart;
readonly attribute unsigned long long requestStart;
readonly attribute unsigned long long responseStart;
readonly attribute unsigned long long responseEnd;
diff --git a/Source/WebCore/page/PrintContext.cpp b/Source/WebCore/page/PrintContext.cpp
index f051ead..e82420d 100644
--- a/Source/WebCore/page/PrintContext.cpp
+++ b/Source/WebCore/page/PrintContext.cpp
@@ -28,10 +28,21 @@
#include "RenderView.h"
#include <wtf/text/StringConcatenate.h>
-using namespace WebCore;
-
namespace WebCore {
+// By imaging to a width a little wider than the available pixels,
+// thin pages will be scaled down a little, matching the way they
+// print in IE and Camino. This lets them use fewer sheets than they
+// would otherwise, which is presumably why other browsers do this.
+// Wide pages will be scaled down more than this.
+const float printingMinimumShrinkFactor = 1.25f;
+
+// This number determines how small we are willing to reduce the page content
+// in order to accommodate the widest line. If the page would have to be
+// reduced smaller to make the widest line fit, we just clip instead (this
+// behavior matches MacIE and Mozilla, at least)
+const float printingMaximumShrinkFactor = 2;
+
PrintContext::PrintContext(Frame* frame)
: m_frame(frame)
, m_isPrinting(false)
@@ -42,20 +53,19 @@ PrintContext::~PrintContext()
{
if (m_isPrinting)
end();
- m_pageRects.clear();
}
-int PrintContext::pageCount() const
+size_t PrintContext::pageCount() const
{
return m_pageRects.size();
}
-const IntRect& PrintContext::pageRect(int pageNumber) const
+const IntRect& PrintContext::pageRect(size_t pageNumber) const
{
return m_pageRects[pageNumber];
}
-void PrintContext::computePageRects(const FloatRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, float& outPageHeight)
+void PrintContext::computePageRects(const FloatRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, float& outPageHeight, bool allowHorizontalTiling)
{
m_pageRects.clear();
outPageHeight = 0;
@@ -73,7 +83,7 @@ void PrintContext::computePageRects(const FloatRect& printRect, float headerHeig
float ratio = printRect.height() / printRect.width();
float pageWidth = view->docWidth();
- float pageHeight = pageWidth * ratio;
+ float pageHeight = floorf(pageWidth * ratio);
outPageHeight = pageHeight; // this is the height of the page adjusted by margins
pageHeight -= headerHeight + footerHeight;
@@ -82,16 +92,16 @@ void PrintContext::computePageRects(const FloatRect& printRect, float headerHeig
return;
}
- computePageRectsWithPageSizeInternal(FloatSize(pageWidth / userScaleFactor, pageHeight / userScaleFactor), false);
+ computePageRectsWithPageSizeInternal(FloatSize(pageWidth / userScaleFactor, pageHeight / userScaleFactor), allowHorizontalTiling);
}
-void PrintContext::computePageRectsWithPageSize(const FloatSize& pageSizeInPixels, bool allowHorizontalMultiPages)
+void PrintContext::computePageRectsWithPageSize(const FloatSize& pageSizeInPixels, bool allowHorizontalTiling)
{
m_pageRects.clear();
- computePageRectsWithPageSizeInternal(pageSizeInPixels, allowHorizontalMultiPages);
+ computePageRectsWithPageSizeInternal(pageSizeInPixels, allowHorizontalTiling);
}
-void PrintContext::computePageRectsWithPageSizeInternal(const FloatSize& pageSizeInPixels, bool allowHorizontalMultiPages)
+void PrintContext::computePageRectsWithPageSizeInternal(const FloatSize& pageSizeInPixels, bool allowHorizontalTiling)
{
if (!m_frame->document() || !m_frame->view() || !m_frame->document()->renderer())
return;
@@ -105,7 +115,7 @@ void PrintContext::computePageRectsWithPageSizeInternal(const FloatSize& pageSiz
unsigned pageCount = ceilf((float)docRect.height() / pageHeight);
for (unsigned i = 0; i < pageCount; ++i) {
- if (allowHorizontalMultiPages) {
+ if (allowHorizontalTiling) {
for (int currentX = docRect.x(); currentX < docRect.right(); currentX += pageWidth)
m_pageRects.append(IntRect(currentX, docRect.y() + i * pageHeight, pageWidth, pageHeight));
} else
@@ -115,28 +125,28 @@ void PrintContext::computePageRectsWithPageSizeInternal(const FloatSize& pageSiz
void PrintContext::begin(float width, float height)
{
- ASSERT(!m_isPrinting);
+ // This function can be called multiple times to adjust printing parameters without going back to screen mode.
m_isPrinting = true;
- // By imaging to a width a little wider than the available pixels,
- // thin pages will be scaled down a little, matching the way they
- // print in IE and Camino. This lets them use fewer sheets than they
- // would otherwise, which is presumably why other browsers do this.
- // Wide pages will be scaled down more than this.
- const float PrintingMinimumShrinkFactor = 1.25f;
-
- // This number determines how small we are willing to reduce the page content
- // in order to accommodate the widest line. If the page would have to be
- // reduced smaller to make the widest line fit, we just clip instead (this
- // behavior matches MacIE and Mozilla, at least)
- const float PrintingMaximumShrinkFactor = 2.0f;
-
- float minLayoutWidth = width * PrintingMinimumShrinkFactor;
- float minLayoutHeight = height * PrintingMinimumShrinkFactor;
-
- // FIXME: This will modify the rendering of the on-screen frame.
- // Could lead to flicker during printing.
- m_frame->setPrinting(true, FloatSize(minLayoutWidth, minLayoutHeight), PrintingMaximumShrinkFactor / PrintingMinimumShrinkFactor, Frame::AdjustViewSize);
+ float minLayoutWidth = width * printingMinimumShrinkFactor;
+ float minLayoutHeight = height * printingMinimumShrinkFactor;
+
+ // This changes layout, so callers need to make sure that they don't paint to screen while in printing mode.
+ m_frame->setPrinting(true, FloatSize(minLayoutWidth, minLayoutHeight), printingMaximumShrinkFactor / printingMinimumShrinkFactor, Frame::AdjustViewSize);
+}
+
+float PrintContext::computeAutomaticScaleFactor(float availablePaperWidth)
+{
+ if (!m_frame->view())
+ return 1;
+
+ float viewWidth = m_frame->view()->contentsWidth();
+ if (viewWidth < 1)
+ return 1;
+
+ float maxShrinkToFitScaleFactor = 1 / printingMaximumShrinkFactor;
+ float shrinkToFitScaleFactor = availablePaperWidth / viewWidth;
+ return max(maxShrinkToFitScaleFactor, shrinkToFitScaleFactor);
}
void PrintContext::spoolPage(GraphicsContext& ctx, int pageNumber, float width)
@@ -152,6 +162,16 @@ void PrintContext::spoolPage(GraphicsContext& ctx, int pageNumber, float width)
ctx.restore();
}
+void PrintContext::spoolRect(GraphicsContext& ctx, const IntRect& rect)
+{
+ ctx.save();
+ ctx.scale(FloatSize(1, -1));
+ ctx.translate(0, -rect.height());
+ ctx.clip(rect);
+ m_frame->view()->paintContents(&ctx, rect);
+ ctx.restore();
+}
+
void PrintContext::end()
{
ASSERT(m_isPrinting);
@@ -189,7 +209,7 @@ int PrintContext::pageNumberForElement(Element* element, const FloatSize& pageSi
int top = box->offsetTop();
int left = box->offsetLeft();
- int pageNumber = 0;
+ size_t pageNumber = 0;
for (; pageNumber < printContext.pageCount(); pageNumber++) {
const IntRect& page = printContext.pageRect(pageNumber);
if (page.x() <= left && left < page.right() && page.y() <= top && top < page.bottom())
diff --git a/Source/WebCore/page/PrintContext.h b/Source/WebCore/page/PrintContext.h
index ceda892..ce2554a 100644
--- a/Source/WebCore/page/PrintContext.h
+++ b/Source/WebCore/page/PrintContext.h
@@ -38,23 +38,38 @@ public:
PrintContext(Frame*);
~PrintContext();
- int pageCount() const;
- const IntRect& pageRect(int pageNumber) const;
+ Frame* frame() const { return m_frame; }
+
+ // Break up a page into rects without relayout.
+ // FIXME: This means that CSS page breaks won't be on page boundary if the size is different than what was passed to begin(). That's probably not always desirable.
+ // FIXME: Header and footer height should be applied before layout, not after.
+ // FIXME: The printRect argument is only used to determine page aspect ratio, it would be better to pass a FloatSize with page dimensions instead.
+ void computePageRects(const FloatRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, float& outPageHeight, bool allowHorizontalTiling = false);
+
+ // Deprecated. Page size computation is already in this class, clients shouldn't be copying it.
+ void computePageRectsWithPageSize(const FloatSize& pageSizeInPixels, bool allowHorizontalTiling);
+
+ // These are only valid after page rects are computed.
+ size_t pageCount() const;
+ const IntRect& pageRect(size_t pageNumber) const;
const Vector<IntRect>& pageRects() const { return m_pageRects; }
- void computePageRects(const FloatRect& printRect, float headerHeight, float footerHeight, float userScaleFactor, float& outPageHeight);
- void computePageRectsWithPageSize(const FloatSize& pageSizeInPixels, bool allowHorizontalMultiPages);
+ float computeAutomaticScaleFactor(float availablePaperWidth);
- // TODO: eliminate width param
+ // Enter print mode, updating layout for new page size.
+ // This function can be called multiple times to apply new print options without going back to screen mode.
void begin(float width, float height = 0);
- // TODO: eliminate width param
+ // FIXME: eliminate width argument.
void spoolPage(GraphicsContext& ctx, int pageNumber, float width);
+ void spoolRect(GraphicsContext& ctx, const IntRect&);
+
+ // Return to screen mode.
void end();
// Used by layout tests.
- static int pageNumberForElement(Element*, const FloatSize& pageSizeInPixels);
+ static int pageNumberForElement(Element*, const FloatSize& pageSizeInPixels); // Returns -1 if page isn't found.
static String pageProperty(Frame* frame, const char* propertyName, int pageNumber);
static bool isPageBoxVisible(Frame* frame, int pageNumber);
static String pageSizeAndMarginsInPixels(Frame* frame, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft);
@@ -69,7 +84,7 @@ protected:
Vector<IntRect> m_pageRects;
private:
- void computePageRectsWithPageSizeInternal(const FloatSize& pageSizeInPixels, bool allowHorizontalMultiPages);
+ void computePageRectsWithPageSizeInternal(const FloatSize& pageSizeInPixels, bool allowHorizontalTiling);
// Used to prevent misuses of begin() and end() (e.g., call end without begin).
bool m_isPrinting;
diff --git a/Source/WebCore/page/SecurityOrigin.cpp b/Source/WebCore/page/SecurityOrigin.cpp
index 16de640..789fdf9 100644
--- a/Source/WebCore/page/SecurityOrigin.cpp
+++ b/Source/WebCore/page/SecurityOrigin.cpp
@@ -299,25 +299,30 @@ bool SecurityOrigin::isAccessWhiteListed(const SecurityOrigin* targetOrigin) con
}
return false;
}
-
+
+bool SecurityOrigin::isAccessToURLWhiteListed(const KURL& url) const
+{
+ RefPtr<SecurityOrigin> targetOrigin = SecurityOrigin::create(url);
+ return isAccessWhiteListed(targetOrigin.get());
+}
+
bool SecurityOrigin::canDisplay(const KURL& url) const
{
+ String protocol = url.protocol().lower();
+
#if ENABLE(BLOB)
- if (url.protocolIs(BlobURL::blobProtocol()))
+ // FIXME: We should generalize this check.
+ if (protocol == BlobURL::blobProtocol())
return canRequest(url);
#endif
- if (!restrictAccessToLocal())
- return true;
+ if (SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated(protocol))
+ return m_protocol == protocol || isAccessToURLWhiteListed(url);
- if (!SchemeRegistry::shouldTreatURLAsLocal(url.string()))
- return true;
+ if (restrictAccessToLocal() && SchemeRegistry::shouldTreatURLSchemeAsLocal(protocol))
+ return canLoadLocalResources() || isAccessToURLWhiteListed(url);
- RefPtr<SecurityOrigin> targetOrigin = SecurityOrigin::create(url);
- if (isAccessWhiteListed(targetOrigin.get()))
- return true;
-
- return canLoadLocalResources();
+ return true;
}
void SecurityOrigin::grantLoadLocalResources()
diff --git a/Source/WebCore/page/SecurityOrigin.h b/Source/WebCore/page/SecurityOrigin.h
index 61f6ab8..f27c593 100644
--- a/Source/WebCore/page/SecurityOrigin.h
+++ b/Source/WebCore/page/SecurityOrigin.h
@@ -193,9 +193,11 @@ private:
SecurityOrigin(const KURL&, SandboxFlags);
explicit SecurityOrigin(const SecurityOrigin*);
- bool passesFileCheck(const SecurityOrigin* other) const;
+ // FIXME: Rename this function to something more semantic.
+ bool passesFileCheck(const SecurityOrigin*) const;
- bool isAccessWhiteListed(const SecurityOrigin* targetOrigin) const;
+ bool isAccessWhiteListed(const SecurityOrigin*) const;
+ bool isAccessToURLWhiteListed(const KURL&) const;
SandboxFlags m_sandboxFlags;
String m_protocol;
diff --git a/Source/WebCore/page/android/DragControllerAndroid.cpp b/Source/WebCore/page/android/DragControllerAndroid.cpp
index b20ab60..e67daaf 100644
--- a/Source/WebCore/page/android/DragControllerAndroid.cpp
+++ b/Source/WebCore/page/android/DragControllerAndroid.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return false;
}
diff --git a/Source/WebCore/page/animation/KeyframeAnimation.cpp b/Source/WebCore/page/animation/KeyframeAnimation.cpp
index a499188..5f19fe4 100644
--- a/Source/WebCore/page/animation/KeyframeAnimation.cpp
+++ b/Source/WebCore/page/animation/KeyframeAnimation.cpp
@@ -189,7 +189,7 @@ void KeyframeAnimation::animate(CompositeAnimation*, RenderObject*, const Render
// Get the from/to styles and progress between
const RenderStyle* fromStyle = 0;
const RenderStyle* toStyle = 0;
- double progress;
+ double progress = 0.0;
fetchIntervalEndpointsForProperty(property, fromStyle, toStyle, progress);
bool needsAnim = blendProperties(this, property, animatedStyle.get(), fromStyle, toStyle, progress);
@@ -226,7 +226,7 @@ void KeyframeAnimation::getAnimatedStyle(RefPtr<RenderStyle>& animatedStyle)
// Get the from/to styles and progress between
const RenderStyle* fromStyle = 0;
const RenderStyle* toStyle = 0;
- double progress;
+ double progress = 0.0;
fetchIntervalEndpointsForProperty(property, fromStyle, toStyle, progress);
blendProperties(this, property, animatedStyle.get(), fromStyle, toStyle, progress);
diff --git a/Source/WebCore/page/brew/DragControllerBrew.cpp b/Source/WebCore/page/brew/DragControllerBrew.cpp
index ef89821..5878c24 100644
--- a/Source/WebCore/page/brew/DragControllerBrew.cpp
+++ b/Source/WebCore/page/brew/DragControllerBrew.cpp
@@ -41,7 +41,7 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return false;
}
diff --git a/Source/WebCore/page/chromium/DragControllerChromium.cpp b/Source/WebCore/page/chromium/DragControllerChromium.cpp
index de53d19..e17972d 100644
--- a/Source/WebCore/page/chromium/DragControllerChromium.cpp
+++ b/Source/WebCore/page/chromium/DragControllerChromium.cpp
@@ -51,10 +51,10 @@ DragOperation DragController::dragOperation(DragData* dragData)
// attached sheet If this can be determined from within WebCore
// operationForDrag can be pulled into WebCore itself
ASSERT(dragData);
- return dragData->containsURL() && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;
+ return dragData->containsURL(0) && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;
}
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
// FIXME: This should not be OS specific. Delegate to the embedder instead.
#if OS(WINDOWS)
diff --git a/Source/WebCore/page/chromium/FrameChromium.cpp b/Source/WebCore/page/chromium/FrameChromium.cpp
index 15ff8b4..f6f47a6 100644
--- a/Source/WebCore/page/chromium/FrameChromium.cpp
+++ b/Source/WebCore/page/chromium/FrameChromium.cpp
@@ -28,6 +28,7 @@
#include "Document.h"
#include "FloatRect.h"
+#include "GraphicsContext.h"
#include "ImageBuffer.h"
#include "RenderView.h"
#include "Settings.h"
diff --git a/Source/WebCore/page/efl/DragControllerEfl.cpp b/Source/WebCore/page/efl/DragControllerEfl.cpp
index 0c5f002..f5c0ecc 100644
--- a/Source/WebCore/page/efl/DragControllerEfl.cpp
+++ b/Source/WebCore/page/efl/DragControllerEfl.cpp
@@ -43,14 +43,14 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return false;
}
DragOperation DragController::dragOperation(DragData* dragData)
{
- if (dragData->containsURL())
+ if (dragData->containsURL(0))
return DragOperationCopy;
return DragOperationNone;
diff --git a/Source/WebCore/page/gtk/DragControllerGtk.cpp b/Source/WebCore/page/gtk/DragControllerGtk.cpp
index 5f9044f..29749e2 100644
--- a/Source/WebCore/page/gtk/DragControllerGtk.cpp
+++ b/Source/WebCore/page/gtk/DragControllerGtk.cpp
@@ -42,7 +42,7 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return false;
}
@@ -50,7 +50,7 @@ bool DragController::isCopyKeyDown()
DragOperation DragController::dragOperation(DragData* dragData)
{
//FIXME: This logic is incomplete
- if (dragData->containsURL())
+ if (dragData->containsURL(0))
return DragOperationCopy;
return DragOperationNone;
diff --git a/Source/WebCore/page/haiku/DragControllerHaiku.cpp b/Source/WebCore/page/haiku/DragControllerHaiku.cpp
index ef08ac2..de8ca81 100644
--- a/Source/WebCore/page/haiku/DragControllerHaiku.cpp
+++ b/Source/WebCore/page/haiku/DragControllerHaiku.cpp
@@ -44,7 +44,7 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
if (modifiers() & B_COMMAND_KEY)
return true;
diff --git a/Source/WebCore/page/mac/DragControllerMac.mm b/Source/WebCore/page/mac/DragControllerMac.mm
index 05c8e09..9b61510 100644
--- a/Source/WebCore/page/mac/DragControllerMac.mm
+++ b/Source/WebCore/page/mac/DragControllerMac.mm
@@ -42,19 +42,19 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData* dragData)
{
- return [[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask;
+ return dragData->flags() & DragApplicationIsCopyKeyDown;
}
DragOperation DragController::dragOperation(DragData* dragData)
{
ASSERT(dragData);
- if ([NSApp modalWindow] || !dragData->containsURL())
+
+ if ((dragData->flags() & DragApplicationIsModal) || !dragData->containsURL(m_page->mainFrame()))
return DragOperationNone;
- if (!m_documentUnderMouse || (![[m_page->mainFrame()->view()->getOuterView() window] attachedSheet]
- && [dragData->platformData() draggingSource] != m_page->mainFrame()->view()->getOuterView()))
+ if (!m_documentUnderMouse || (!(dragData->flags() & (DragApplicationHasAttachedSheet | DragApplicationIsSource))))
return DragOperationCopy;
return DragOperationNone;
diff --git a/Source/WebCore/page/mac/FrameMac.mm b/Source/WebCore/page/mac/FrameMac.mm
index d4e4098..b49fffb 100644
--- a/Source/WebCore/page/mac/FrameMac.mm
+++ b/Source/WebCore/page/mac/FrameMac.mm
@@ -255,50 +255,33 @@ NSString* Frame::matchLabelsAgainstElement(NSArray* labels, Element* element)
NSImage* Frame::imageFromRect(NSRect rect) const
{
- NSView* view = m_view->documentView();
- if (!view)
- return nil;
- if (![view respondsToSelector:@selector(drawSingleRect:)])
- return nil;
+ PaintBehavior oldBehavior = m_view->paintBehavior();
+ m_view->setPaintBehavior(oldBehavior | PaintBehaviorFlattenCompositingLayers);
- PaintBehavior oldPaintBehavior = m_view->paintBehavior();
- m_view->setPaintBehavior(oldPaintBehavior | PaintBehaviorFlattenCompositingLayers);
-
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- NSRect bounds = [view bounds];
-
- // Round image rect size in window coordinate space to avoid pixel cracks at HiDPI (4622794)
- rect = [view convertRect:rect toView:nil];
- rect.size.height = roundf(rect.size.height);
- rect.size.width = roundf(rect.size.width);
- rect = [view convertRect:rect fromView:nil];
-
NSImage* resultImage = [[[NSImage alloc] initWithSize:rect.size] autorelease];
-
+
if (rect.size.width != 0 && rect.size.height != 0) {
[resultImage setFlipped:YES];
[resultImage lockFocus];
- CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
- CGContextSaveGState(context);
- CGContextTranslateCTM(context, bounds.origin.x - rect.origin.x, bounds.origin.y - rect.origin.y);
- // Note: Must not call drawRect: here, because drawRect: assumes that it's called from AppKit's
- // display machinery. It calls getRectsBeingDrawn:count:, which can only be called inside
- // when a real AppKit display is underway.
- [view drawSingleRect:rect];
+ GraphicsContext graphicsContext((CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]);
+ graphicsContext.save();
+ graphicsContext.translate(-rect.origin.x, -rect.origin.y);
+ m_view->paintContents(&graphicsContext, IntRect(rect));
+ graphicsContext.restore();
- CGContextRestoreGState(context);
[resultImage unlockFocus];
[resultImage setFlipped:NO];
}
-
- m_view->setPaintBehavior(oldPaintBehavior);
+
+ m_view->setPaintBehavior(oldBehavior);
return resultImage;
-
+
END_BLOCK_OBJC_EXCEPTIONS;
- m_view->setPaintBehavior(oldPaintBehavior);
+ m_view->setPaintBehavior(oldBehavior);
return nil;
}
diff --git a/Source/WebCore/page/qt/DragControllerQt.cpp b/Source/WebCore/page/qt/DragControllerQt.cpp
index 33815b5..cdea55b 100644
--- a/Source/WebCore/page/qt/DragControllerQt.cpp
+++ b/Source/WebCore/page/qt/DragControllerQt.cpp
@@ -43,7 +43,7 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return false;
}
@@ -51,7 +51,7 @@ bool DragController::isCopyKeyDown()
DragOperation DragController::dragOperation(DragData* dragData)
{
//FIXME: This logic is incomplete
- if (dragData->containsURL())
+ if (dragData->containsURL(0))
return DragOperationCopy;
return DragOperationNone;
diff --git a/Source/WebCore/page/qt/FrameQt.cpp b/Source/WebCore/page/qt/FrameQt.cpp
index 467592c..bb577e0 100644
--- a/Source/WebCore/page/qt/FrameQt.cpp
+++ b/Source/WebCore/page/qt/FrameQt.cpp
@@ -24,6 +24,7 @@
#include "config.h"
#include "Frame.h"
#include "FrameView.h"
+#include "GraphicsContext.h"
#include "Image.h"
#include "ImageBuffer.h"
diff --git a/Source/WebCore/page/win/DragControllerWin.cpp b/Source/WebCore/page/win/DragControllerWin.cpp
index f0404ff..6b1cd3e 100644
--- a/Source/WebCore/page/win/DragControllerWin.cpp
+++ b/Source/WebCore/page/win/DragControllerWin.cpp
@@ -47,10 +47,10 @@ DragOperation DragController::dragOperation(DragData* dragData)
//If this can be determined from within WebCore operationForDrag can be pulled into
//WebCore itself
ASSERT(dragData);
- return dragData->containsURL() && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;
+ return dragData->containsURL(0) && !m_didInitiateDrag ? DragOperationCopy : DragOperationNone;
}
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
return ::GetAsyncKeyState(VK_CONTROL);
}
diff --git a/Source/WebCore/page/wx/DragControllerWx.cpp b/Source/WebCore/page/wx/DragControllerWx.cpp
index c288a01..4a4d064 100644
--- a/Source/WebCore/page/wx/DragControllerWx.cpp
+++ b/Source/WebCore/page/wx/DragControllerWx.cpp
@@ -43,7 +43,7 @@ const int DragController::DragIconBottomInset = 3;
const float DragController::DragImageAlpha = 0.75f;
-bool DragController::isCopyKeyDown()
+bool DragController::isCopyKeyDown(DragData*)
{
notImplemented();
return false;
diff --git a/Source/WebCore/platform/ContextMenuItem.h b/Source/WebCore/platform/ContextMenuItem.h
index 441829f..145d795 100644
--- a/Source/WebCore/platform/ContextMenuItem.h
+++ b/Source/WebCore/platform/ContextMenuItem.h
@@ -42,7 +42,6 @@ class NSMenuItem;
#elif PLATFORM(WIN)
typedef struct tagMENUITEMINFOW MENUITEMINFO;
#elif PLATFORM(GTK)
-#include <GRefPtr.h>
typedef struct _GtkMenuItem GtkMenuItem;
#elif PLATFORM(QT)
#include <QAction>
@@ -288,8 +287,6 @@ namespace WebCore {
#else
#if PLATFORM(MAC)
RetainPtr<NSMenuItem> m_platformDescription;
-#elif PLATFORM(GTK)
- GRefPtr<GtkMenuItem> m_platformDescription;
#else
PlatformMenuItemDescription m_platformDescription;
#endif
diff --git a/Source/WebCore/platform/DragData.cpp b/Source/WebCore/platform/DragData.cpp
index 4518909..a61feab 100644
--- a/Source/WebCore/platform/DragData.cpp
+++ b/Source/WebCore/platform/DragData.cpp
@@ -31,13 +31,24 @@ namespace WebCore {
#if !PLATFORM(MAC)
DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition,
- DragOperation sourceOperationMask)
+ DragOperation sourceOperationMask, DragApplicationFlags flags)
: m_clientPosition(clientPosition)
, m_globalPosition(globalPosition)
, m_platformDragData(data)
, m_draggingSourceOperationMask(sourceOperationMask)
+ , m_applicationFlags(flags)
{
}
+
+DragData::DragData(const String&, const IntPoint& clientPosition, const IntPoint& globalPosition,
+ DragOperation sourceOperationMask, DragApplicationFlags flags)
+ : m_clientPosition(clientPosition)
+ , m_globalPosition(globalPosition)
+ , m_platformDragData(0)
+ , m_draggingSourceOperationMask(sourceOperationMask)
+ , m_applicationFlags(flags)
+{
+}
#endif
} // namespace WebCore
diff --git a/Source/WebCore/platform/DragData.h b/Source/WebCore/platform/DragData.h
index d90a424..3bd27fc 100644
--- a/Source/WebCore/platform/DragData.h
+++ b/Source/WebCore/platform/DragData.h
@@ -34,12 +34,15 @@
#include <wtf/Vector.h>
#if PLATFORM(MAC)
+#include <wtf/RetainPtr.h>
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <AppKit/NSDragging.h>
typedef id <NSDraggingInfo> DragDataRef;
+@class NSPasteboard;
#else
typedef void* DragDataRef;
+class NSPasteboard;
#endif
#elif PLATFORM(QT)
QT_BEGIN_NAMESPACE
@@ -68,54 +71,61 @@ typedef void* DragDataRef;
namespace WebCore {
-
- class Document;
- class DocumentFragment;
- class KURL;
-
-#if PLATFORM(MAC)
- class PasteboardHelper;
-#endif
+class Frame;
+class DocumentFragment;
+class KURL;
+class Range;
+
+enum DragApplicationFlags {
+ DragApplicationNone = 0,
+ DragApplicationIsModal = 1,
+ DragApplicationIsSource = 2,
+ DragApplicationHasAttachedSheet = 4,
+ DragApplicationIsCopyKeyDown = 8
+};
- class DragData {
- public:
- enum FilenameConversionPolicy { DoNotConvertFilenames, ConvertFilenames };
+class DragData {
+public:
+ enum FilenameConversionPolicy { DoNotConvertFilenames, ConvertFilenames };
+ // clientPosition is taken to be the position of the drag event within the target window, with (0,0) at the top left
+ DragData(DragDataRef, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone);
+ DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation, DragApplicationFlags = DragApplicationNone);
+
+ const IntPoint& clientPosition() const { return m_clientPosition; }
+ const IntPoint& globalPosition() const { return m_globalPosition; }
+ DragApplicationFlags flags() { return m_applicationFlags; }
+ DragDataRef platformData() const { return m_platformDragData; }
+ DragOperation draggingSourceOperationMask() const { return m_draggingSourceOperationMask; }
+ bool containsURL(Frame*, FilenameConversionPolicy filenamePolicy = ConvertFilenames) const;
+ bool containsPlainText() const;
+ bool containsCompatibleContent() const;
+ String asURL(Frame*, FilenameConversionPolicy filenamePolicy = ConvertFilenames, String* title = 0) const;
+ String asPlainText(Frame*) const;
+ void asFilenames(Vector<String>&) const;
+ Color asColor() const;
+ PassRefPtr<DocumentFragment> asFragment(Frame*, PassRefPtr<Range> context,
+ bool allowPlainText, bool& chosePlainText) const;
+ bool canSmartReplace() const;
+ bool containsColor() const;
+ bool containsFiles() const;
+private:
+ IntPoint m_clientPosition;
+ IntPoint m_globalPosition;
+ DragDataRef m_platformDragData;
+ DragOperation m_draggingSourceOperationMask;
+ DragApplicationFlags m_applicationFlags;
#if PLATFORM(MAC)
- //FIXME: In the future the WebKit functions provided by the helper class should be moved into WebCore,
- //after which this constructor should be removed
- DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition,
- DragOperation operation, PasteboardHelper*);
-#else
- //clientPosition is taken to be the position of the drag event within the target window, with (0,0) at the top left
- DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition, DragOperation operation);
-#endif
- const IntPoint& clientPosition() const { return m_clientPosition; }
- const IntPoint& globalPosition() const { return m_globalPosition; }
- DragDataRef platformData() const { return m_platformDragData; }
- DragOperation draggingSourceOperationMask() const { return m_draggingSourceOperationMask; }
- bool containsURL(FilenameConversionPolicy filenamePolicy = ConvertFilenames) const;
- bool containsPlainText() const;
- bool containsCompatibleContent() const;
- String asURL(FilenameConversionPolicy filenamePolicy = ConvertFilenames, String* title = 0) const;
- String asPlainText() const;
- void asFilenames(Vector<String>&) const;
- Color asColor() const;
- PassRefPtr<DocumentFragment> asFragment(Document*) const;
- bool canSmartReplace() const;
- bool containsColor() const;
- bool containsFiles() const;
- private:
- IntPoint m_clientPosition;
- IntPoint m_globalPosition;
- DragDataRef m_platformDragData;
- DragOperation m_draggingSourceOperationMask;
-#if PLATFORM(MAC)
- PasteboardHelper* m_pasteboardHelper;
+ RetainPtr<NSPasteboard> m_pasteboard;
#endif
};
-} //namespace WebCore
+}
+<<<<<<< HEAD
#endif //!DragData_h
+=======
+#endif // !DragData_h
+
+>>>>>>> WebKit.org @ r75993
diff --git a/Source/WebCore/platform/FileSystem.h b/Source/WebCore/platform/FileSystem.h
index 3b65d34..4f088e1 100644
--- a/Source/WebCore/platform/FileSystem.h
+++ b/Source/WebCore/platform/FileSystem.h
@@ -195,6 +195,7 @@ bool safeCreateFile(const String&, CFDataRef);
#if PLATFORM(GTK)
String filenameToString(const char*);
String filenameForDisplay(const String&);
+CString applicationDirectoryPath();
#endif
#if PLATFORM(CHROMIUM)
diff --git a/Source/WebCore/platform/Pasteboard.h b/Source/WebCore/platform/Pasteboard.h
index 7c50737..78a40b3 100644
--- a/Source/WebCore/platform/Pasteboard.h
+++ b/Source/WebCore/platform/Pasteboard.h
@@ -88,6 +88,8 @@ public:
static void writeSelection(NSPasteboard* pasteboard, Range* selectedRange, bool canSmartCopyOrDelete, Frame* frame);
static void writeURL(NSPasteboard* pasteboard, NSArray* types, const KURL& url, const String& titleStr, Frame* frame);
static void writePlainText(NSPasteboard* pasteboard, const String& text);
+
+ Pasteboard(NSPasteboard *);
#endif
static Pasteboard* generalPasteboard();
@@ -97,11 +99,13 @@ public:
void writeImage(Node*, const KURL&, const String& title);
#if PLATFORM(MAC)
void writeFileWrapperAsRTFDAttachment(NSFileWrapper*);
+ String asURL(Frame*);
#endif
void clear();
bool canSmartReplace();
PassRefPtr<DocumentFragment> documentFragment(Frame*, PassRefPtr<Range>, bool allowPlainText, bool& chosePlainText);
String plainText(Frame* = 0);
+
#if PLATFORM(QT) || PLATFORM(CHROMIUM)
bool isSelectionMode() const;
void setSelectionMode(bool selectionMode);
@@ -110,17 +114,17 @@ public:
#if PLATFORM(GTK)
void setHelper(PasteboardHelper*);
PasteboardHelper* helper();
+ ~Pasteboard();
#endif
private:
Pasteboard();
- ~Pasteboard();
#if PLATFORM(MAC)
- Pasteboard(NSPasteboard *);
RetainPtr<NSPasteboard> m_pasteboard;
PassRefPtr<DocumentFragment> documentFragmentWithImageResource(Frame* frame, PassRefPtr<ArchiveResource> resource);
PassRefPtr<DocumentFragment> documentFragmentWithRtf(Frame* frame, NSString* pboardType);
+ NSURL *getBestURL(Frame *);
#endif
#if PLATFORM(WIN)
diff --git a/Source/WebCore/platform/PlatformWheelEvent.h b/Source/WebCore/platform/PlatformWheelEvent.h
index 6747392..1e5cd53 100644
--- a/Source/WebCore/platform/PlatformWheelEvent.h
+++ b/Source/WebCore/platform/PlatformWheelEvent.h
@@ -68,8 +68,22 @@ namespace WebCore {
// and synthesized in other cases where platforms generate line-by-line scrolling events.
// The ScrollByPageWheelEvent indicates that the wheel event should scroll an entire page. In this case WebCore's built in paging behavior is used to page
// up and down (you get the same behavior as if the user was clicking in a scrollbar track to page up or page down). Page scrolling only works in the vertical direction.
- enum PlatformWheelEventGranularity { ScrollByPageWheelEvent, ScrollByPixelWheelEvent };
-
+ enum PlatformWheelEventGranularity {
+ ScrollByPageWheelEvent,
+ ScrollByPixelWheelEvent
+ };
+
+#if PLATFORM(MAC)
+ enum PlatformWheelEventPhase {
+ PlatformWheelEventPhaseNone = 0,
+ PlatformWheelEventPhaseBegan = 1 << 1,
+ PlatformWheelEventPhaseStationary = 1 << 2,
+ PlatformWheelEventPhaseChanged = 1 << 3,
+ PlatformWheelEventPhaseEnded = 1 << 4,
+ PlatformWheelEventPhaseCancelled = 1 << 5,
+ };
+#endif
+
class PlatformWheelEvent {
public:
PlatformWheelEvent()
@@ -83,6 +97,9 @@ namespace WebCore {
, m_ctrlKey(false)
, m_altKey(false)
, m_metaKey(false)
+#if PLATFORM(MAC)
+ , m_phase(PlatformWheelEventPhaseNone)
+#endif
{
}
@@ -128,10 +145,14 @@ namespace WebCore {
PlatformWheelEvent(const Evas_Event_Mouse_Wheel*);
#endif
-#if PLATFORM(MAC) && defined(__OBJC__)
+#if PLATFORM(MAC)
+#if defined(__OBJC__)
PlatformWheelEvent(NSEvent *, NSView *windowView);
#endif
+ PlatformWheelEventPhase phase() const { return m_phase; }
+#endif
+
#if PLATFORM(QT)
PlatformWheelEvent(QWheelEvent*);
PlatformWheelEvent(QGraphicsSceneWheelEvent*);
@@ -164,6 +185,9 @@ namespace WebCore {
bool m_ctrlKey;
bool m_altKey;
bool m_metaKey;
+#if PLATFORM(MAC)
+ PlatformWheelEventPhase m_phase;
+#endif
};
} // namespace WebCore
diff --git a/Source/WebCore/platform/SchemeRegistry.cpp b/Source/WebCore/platform/SchemeRegistry.cpp
index 58df51a..71697cb 100644
--- a/Source/WebCore/platform/SchemeRegistry.cpp
+++ b/Source/WebCore/platform/SchemeRegistry.cpp
@@ -45,6 +45,12 @@ static URLSchemesMap& localURLSchemes()
return localSchemes;
}
+static URLSchemesMap& displayIsolatedURLSchemes()
+{
+ DEFINE_STATIC_LOCAL(URLSchemesMap, displayIsolatedSchemes, ());
+ return displayIsolatedSchemes;
+}
+
static URLSchemesMap& secureSchemes()
{
DEFINE_STATIC_LOCAL(URLSchemesMap, secureSchemes, ());
@@ -82,7 +88,7 @@ static URLSchemesMap& emptyDocumentSchemes()
void SchemeRegistry::registerURLSchemeAsLocal(const String& scheme)
{
- WebCore::localURLSchemes().add(scheme);
+ localURLSchemes().add(scheme);
}
void SchemeRegistry::removeURLSchemeRegisteredAsLocal(const String& scheme)
@@ -93,50 +99,19 @@ void SchemeRegistry::removeURLSchemeRegisteredAsLocal(const String& scheme)
if (scheme == "applewebdata")
return;
#endif
- WebCore::localURLSchemes().remove(scheme);
-}
-
-const URLSchemesMap& SchemeRegistry::localURLSchemes()
-{
- return WebCore::localURLSchemes();
+ localURLSchemes().remove(scheme);
}
-bool SchemeRegistry::shouldTreatURLAsLocal(const String& url)
+const URLSchemesMap& SchemeRegistry::localSchemes()
{
- // This avoids an allocation of another String and the HashSet contains()
- // call for the file: and http: schemes.
- if (url.length() >= 5) {
- const UChar* s = url.characters();
- if (s[0] == 'h' && s[1] == 't' && s[2] == 't' && s[3] == 'p' && s[4] == ':')
- return false;
- if (s[0] == 'f' && s[1] == 'i' && s[2] == 'l' && s[3] == 'e' && s[4] == ':')
- return true;
- }
-
- size_t loc = url.find(':');
- if (loc == notFound)
- return false;
-
- String scheme = url.left(loc);
- return WebCore::localURLSchemes().contains(scheme);
+ return localURLSchemes();
}
bool SchemeRegistry::shouldTreatURLSchemeAsLocal(const String& scheme)
{
- // This avoids an allocation of another String and the HashSet contains()
- // call for the file: and http: schemes.
- if (scheme.length() == 4) {
- const UChar* s = scheme.characters();
- if (s[0] == 'h' && s[1] == 't' && s[2] == 't' && s[3] == 'p')
- return false;
- if (s[0] == 'f' && s[1] == 'i' && s[2] == 'l' && s[3] == 'e')
- return true;
- }
-
if (scheme.isEmpty())
return false;
-
- return WebCore::localURLSchemes().contains(scheme);
+ return localURLSchemes().contains(scheme);
}
void SchemeRegistry::registerURLSchemeAsNoAccess(const String& scheme)
@@ -149,6 +124,16 @@ bool SchemeRegistry::shouldTreatURLSchemeAsNoAccess(const String& scheme)
return schemesWithUniqueOrigins().contains(scheme);
}
+void SchemeRegistry::registerURLSchemeAsDisplayIsolated(const String& scheme)
+{
+ displayIsolatedURLSchemes().add(scheme);
+}
+
+bool SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated(const String& scheme)
+{
+ return displayIsolatedURLSchemes().contains(scheme);
+}
+
void SchemeRegistry::registerURLSchemeAsSecure(const String& scheme)
{
secureSchemes().add(scheme);
diff --git a/Source/WebCore/platform/SchemeRegistry.h b/Source/WebCore/platform/SchemeRegistry.h
index 56e3b33..530fcab 100644
--- a/Source/WebCore/platform/SchemeRegistry.h
+++ b/Source/WebCore/platform/SchemeRegistry.h
@@ -38,9 +38,8 @@ class SchemeRegistry {
public:
static void registerURLSchemeAsLocal(const String&);
static void removeURLSchemeRegisteredAsLocal(const String&);
- static const URLSchemesMap& localURLSchemes();
+ static const URLSchemesMap& localSchemes();
- static bool shouldTreatURLAsLocal(const String&);
static bool shouldTreatURLSchemeAsLocal(const String&);
// Secure schemes do not trigger mixed content warnings. For example,
@@ -51,7 +50,12 @@ public:
static void registerURLSchemeAsNoAccess(const String&);
static bool shouldTreatURLSchemeAsNoAccess(const String&);
-
+
+ // Display-isolated schemes can only be displayed (in the sense of
+ // SecurityOrigin::canDisplay) by documents from the same scheme.
+ static void registerURLSchemeAsDisplayIsolated(const String&);
+ static bool shouldTreatURLSchemeAsDisplayIsolated(const String&);
+
static void registerURLSchemeAsEmptyDocument(const String&);
static bool shouldLoadURLSchemeAsEmptyDocument(const String&);
};
diff --git a/Source/WebCore/platform/UUID.cpp b/Source/WebCore/platform/UUID.cpp
index 5c2e076..c072f4a 100644
--- a/Source/WebCore/platform/UUID.cpp
+++ b/Source/WebCore/platform/UUID.cpp
@@ -39,11 +39,11 @@
#if OS(WINDOWS)
#include <objbase.h>
-#elif OS(DARWIN)
+#elif OS(DARWIN) && PLATFORM(CF)
#include <CoreFoundation/CoreFoundation.h>
#elif OS(LINUX) && !PLATFORM(CHROMIUM)
#include <stdio.h>
-#elif OS(LINUX) && PLATFORM(CHROMIUM)
+#elif (OS(LINUX) && PLATFORM(CHROMIUM)) || (OS(DARWIN) && !PLATFORM(CF))
#include <wtf/RandomNumber.h>
#include <wtf/text/StringBuilder.h>
#endif
@@ -71,7 +71,7 @@ String createCanonicalUUIDString()
String canonicalUuidStr = String(uuidStr + 1, num - 3).lower(); // remove opening and closing bracket and make it lower.
ASSERT(canonicalUuidStr[uuidVersionIdentifierIndex] == uuidVersionRequired);
return canonicalUuidStr;
-#elif OS(DARWIN)
+#elif OS(DARWIN) && PLATFORM(CF)
CFUUIDRef uuid = CFUUIDCreate(0);
CFStringRef uuidStrRef = CFUUIDCreateString(0, uuid);
String uuidStr(uuidStrRef);
@@ -93,7 +93,7 @@ String createCanonicalUUIDString()
String canonicalUuidStr = String(uuidStr).lower(); // make it lower.
ASSERT(canonicalUuidStr[uuidVersionIdentifierIndex] == uuidVersionRequired);
return canonicalUuidStr;
-#elif OS(LINUX) && PLATFORM(CHROMIUM)
+#elif (OS(LINUX) && PLATFORM(CHROMIUM)) || (OS(DARWIN) && !PLATFORM(CF))
unsigned randomData[4];
for (size_t i = 0; i < WTF_ARRAY_LENGTH(randomData); ++i)
randomData[i] = static_cast<unsigned>(randomNumber() * (std::numeric_limits<unsigned>::max() + 1.0));
diff --git a/Source/WebCore/platform/Widget.cpp b/Source/WebCore/platform/Widget.cpp
index 77560ff..9a980c0 100644
--- a/Source/WebCore/platform/Widget.cpp
+++ b/Source/WebCore/platform/Widget.cpp
@@ -106,6 +106,10 @@ IntPoint Widget::convertToContainingWindow(const IntPoint& localPoint) const
}
#if !PLATFORM(MAC)
+void Widget::setBoundsSize(const IntSize&)
+{
+}
+
IntRect Widget::convertFromRootToContainingWindow(const Widget*, const IntRect& rect)
{
return rect;
diff --git a/Source/WebCore/platform/Widget.h b/Source/WebCore/platform/Widget.h
index 2b3a1a6..a6562ef 100644
--- a/Source/WebCore/platform/Widget.h
+++ b/Source/WebCore/platform/Widget.h
@@ -158,6 +158,7 @@ public:
IntPoint pos() const { return frameRect().location(); }
virtual void setFrameRect(const IntRect&);
+ virtual void setBoundsSize(const IntSize&);
virtual IntRect frameRect() const;
IntRect boundsRect() const { return IntRect(0, 0, width(), height()); }
diff --git a/Source/WebCore/platform/android/DragDataAndroid.cpp b/Source/WebCore/platform/android/DragDataAndroid.cpp
index 4e99b2c..2c341b0 100644
--- a/Source/WebCore/platform/android/DragDataAndroid.cpp
+++ b/Source/WebCore/platform/android/DragDataAndroid.cpp
@@ -47,7 +47,7 @@ bool DragData::containsPlainText() const
return false;
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
return String();
}
@@ -62,18 +62,18 @@ bool DragData::containsCompatibleContent() const
return false;
}
-bool DragData::containsURL(FilenameConversionPolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy) const
{
return false;
}
-String DragData::asURL(FilenameConversionPolicy, String*) const
+String DragData::asURL(Frame*, FilenameConversionPolicy, String*) const
{
return String();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame*, PassRefPtr<Range>, bool, bool&) const
{
return 0;
}
diff --git a/Source/WebCore/platform/chromium/ChromiumBridge.h b/Source/WebCore/platform/chromium/ChromiumBridge.h
index 56969ef..d3b8528 100644
--- a/Source/WebCore/platform/chromium/ChromiumBridge.h
+++ b/Source/WebCore/platform/chromium/ChromiumBridge.h
@@ -159,10 +159,6 @@ namespace WebCore {
// Forms --------------------------------------------------------------
static void notifyFormStateChanged(const Document*);
-#if !ENABLE(CLIENT_BASED_GEOLOCATION)
- // Geolocation --------------------------------------------------------
- static GeolocationServiceBridge* createGeolocationServiceBridge(GeolocationServiceChromium*);
-#endif
// Databases ----------------------------------------------------------
// Returns a handle to the DB file and ooptionally a handle to its containing directory
static PlatformFileHandle databaseOpenFile(const String& vfsFleName, int desiredFlags);
diff --git a/Source/WebCore/platform/chromium/ClipboardUtilitiesChromium.h b/Source/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
index 9fdad42..3e6f92a 100644
--- a/Source/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
+++ b/Source/WebCore/platform/chromium/ClipboardUtilitiesChromium.h
@@ -28,6 +28,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef ClipboardUtilitiesChromium_h
+#define ClipboardUtilitiesChromium_h
+
#include <wtf/Forward.h>
namespace WebCore {
@@ -40,3 +43,5 @@ void replaceNewlinesWithWindowsStyleNewlines(String&);
void replaceNBSPWithSpace(String&);
} // namespace WebCore
+
+#endif // ClipboardUtilitiesChromium_h
diff --git a/Source/WebCore/platform/chromium/DragDataChromium.cpp b/Source/WebCore/platform/chromium/DragDataChromium.cpp
index 2b04523..8c20a00 100644
--- a/Source/WebCore/platform/chromium/DragDataChromium.cpp
+++ b/Source/WebCore/platform/chromium/DragDataChromium.cpp
@@ -35,6 +35,7 @@
#include "ClipboardMimeTypes.h"
#include "DocumentFragment.h"
#include "FileSystem.h"
+#include "Frame.h"
#include "KURL.h"
#include "markup.h"
#include "NotImplemented.h"
@@ -47,13 +48,13 @@ static bool containsHTML(const ChromiumDataObject* dropData)
return dropData->types().contains(mimeTypeTextHTML);
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return m_platformDragData->types().contains(mimeTypeURL)
|| (filenamePolicy == ConvertFilenames && m_platformDragData->containsFilenames());
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
String url;
if (m_platformDragData->types().contains(mimeTypeURL)) {
@@ -84,7 +85,7 @@ bool DragData::containsPlainText() const
return m_platformDragData->types().contains(mimeTypeTextPlain);
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
bool ignoredSuccess;
return m_platformDragData->getData(mimeTypeTextPlain, ignoredSuccess);
@@ -109,13 +110,13 @@ bool DragData::canSmartReplace() const
bool DragData::containsCompatibleContent() const
{
return containsPlainText()
- || containsURL()
+ || containsURL(0)
|| containsHTML(m_platformDragData)
|| containsColor()
|| containsFiles();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range>, bool, bool&) const
{
/*
* Order is richest format first. On OSX this is:
@@ -137,7 +138,7 @@ PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
if (m_platformDragData->types().contains(mimeTypeTextHTML)) {
bool ignoredSuccess;
- RefPtr<DocumentFragment> fragment = createFragmentFromMarkup(doc,
+ RefPtr<DocumentFragment> fragment = createFragmentFromMarkup(frame->document(),
m_platformDragData->getData(mimeTypeTextHTML, ignoredSuccess), m_platformDragData->htmlBaseUrl(), FragmentScriptingNotAllowed);
return fragment.release();
}
diff --git a/Source/WebCore/platform/chromium/GeolocationServiceChromium.cpp b/Source/WebCore/platform/chromium/GeolocationServiceChromium.cpp
deleted file mode 100644
index c5e73ae..0000000
--- a/Source/WebCore/platform/chromium/GeolocationServiceChromium.cpp
+++ /dev/null
@@ -1,114 +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"
-#include "GeolocationServiceChromium.h"
-
-#include "ChromiumBridge.h"
-
-#if ENABLE(CLIENT_BASED_GEOLOCATION)
-#error "This file should not be compiled when ENABLE(CLIENT_BASED_GEOLOCATION)"
-#endif // ENABLE(CLIENT_BASED_GEOLOCATION)
-
-namespace WebCore {
-
-GeolocationServiceBridge::~GeolocationServiceBridge()
-{
-}
-
-GeolocationServiceChromium::GeolocationServiceChromium(GeolocationServiceClient* c)
- : GeolocationService(c),
- m_geolocation(static_cast<Geolocation*>(c)),
- m_geolocationServiceBridge(ChromiumBridge::createGeolocationServiceBridge(this)),
- m_lastError(PositionError::create(PositionError::POSITION_UNAVAILABLE, ""))
-{
-}
-
-void GeolocationServiceChromium::setIsAllowed(bool allowed)
-{
- m_geolocation->setIsAllowed(allowed);
-}
-
-void GeolocationServiceChromium::setLastPosition(PassRefPtr<Geoposition> geoposition)
-{
- m_lastPosition = geoposition;
- positionChanged();
-}
-
-void GeolocationServiceChromium::setLastError(int errorCode, const String& message)
-{
- m_lastError = PositionError::create(static_cast<PositionError::ErrorCode>(errorCode), message);
- errorOccurred();
-}
-
-Frame* GeolocationServiceChromium::frame()
-{
- return m_geolocation->frame();
-}
-
-bool GeolocationServiceChromium::startUpdating(PositionOptions* options)
-{
- return m_geolocationServiceBridge->startUpdating(options);
-}
-
-void GeolocationServiceChromium::stopUpdating()
-{
- return m_geolocationServiceBridge->stopUpdating();
-}
-
-void GeolocationServiceChromium::suspend()
-{
- return m_geolocationServiceBridge->suspend();
-}
-
-void GeolocationServiceChromium::resume()
-{
- return m_geolocationServiceBridge->resume();
-}
-
-Geoposition* GeolocationServiceChromium::lastPosition() const
-{
- return m_lastPosition.get();
-}
-
-PositionError* GeolocationServiceChromium::lastError() const
-{
- return m_lastError.get();
-}
-
-static GeolocationService* createGeolocationServiceChromium(GeolocationServiceClient* c)
-{
- return new GeolocationServiceChromium(c);
-}
-
-// Sets up the factory function for GeolocationService.
-GeolocationService::FactoryFunction* GeolocationService::s_factoryFunction = &createGeolocationServiceChromium;
-
-} // namespace WebCore
diff --git a/Source/WebCore/platform/chromium/GeolocationServiceChromium.h b/Source/WebCore/platform/chromium/GeolocationServiceChromium.h
deleted file mode 100644
index 7e6f633..0000000
--- a/Source/WebCore/platform/chromium/GeolocationServiceChromium.h
+++ /dev/null
@@ -1,87 +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 GeolocationServiceChromium_h
-#define GeolocationServiceChromium_h
-
-#include "Geolocation.h"
-#include "GeolocationService.h"
-#include "Geoposition.h"
-#include "PlatformString.h"
-#include "PositionError.h"
-
-namespace WebCore {
-
-// Provides an interface for GeolocationServiceChromium to call into the embedder.
-class GeolocationServiceBridge {
-public:
- virtual ~GeolocationServiceBridge();
- // Called by GeolocationServiceChromium.
- virtual bool startUpdating(PositionOptions*) = 0;
- virtual void stopUpdating() = 0;
- virtual void suspend() = 0;
- virtual void resume() = 0;
-
- // Called by the embedder, to identify this bridge.
- virtual int getBridgeId() const = 0;
- virtual void attachBridgeIfNeeded() = 0;
-};
-
-// This class extends GeolocationService, and uses GeolocationServiceBridge to
-// call into the embedder, as well as provides a few extra methods so that the
-// embedder can notify permission, position, error, etc.
-class GeolocationServiceChromium : public GeolocationService {
-public:
- explicit GeolocationServiceChromium(GeolocationServiceClient*);
-
- GeolocationServiceBridge* geolocationServiceBridge() const { return m_geolocationServiceBridge.get(); }
- void setIsAllowed(bool allowed);
- void setLastPosition(PassRefPtr<Geoposition>);
- void setLastError(int errorCode, const String& message);
- Frame* frame();
-
- // From GeolocationService.
- virtual bool startUpdating(PositionOptions*);
- virtual void stopUpdating();
- virtual void suspend();
- virtual void resume();
- virtual Geoposition* lastPosition() const;
- virtual PositionError* lastError() const;
-
-private:
- Geolocation* m_geolocation;
- OwnPtr<GeolocationServiceBridge> m_geolocationServiceBridge;
- RefPtr<Geoposition> m_lastPosition;
- RefPtr<PositionError> m_lastError;
-};
-
-} // namespace WebCore
-
-#endif // GeolocationServiceChromium_h
diff --git a/Source/WebCore/platform/chromium/PopupMenuChromium.cpp b/Source/WebCore/platform/chromium/PopupMenuChromium.cpp
index 04eeb93..bb45e79 100644
--- a/Source/WebCore/platform/chromium/PopupMenuChromium.cpp
+++ b/Source/WebCore/platform/chromium/PopupMenuChromium.cpp
@@ -329,11 +329,8 @@ PopupContainer::~PopupContainer()
removeChild(m_listBox.get());
}
-void PopupContainer::showPopup(FrameView* view)
+IntRect PopupContainer::layoutAndCalculateWidgetRect(int targetControlHeight, const IntPoint& popupInitialCoordinate)
{
- // Pre-layout, our size matches the <select> dropdown control.
- int selectHeight = frameRect().height();
-
// Reset the max height to its default value, it will be recomputed below
// if necessary.
m_listBox->setMaxHeight(kMaxHeight);
@@ -341,23 +338,26 @@ void PopupContainer::showPopup(FrameView* view)
// Lay everything out to figure out our preferred size, then tell the view's
// WidgetClient about it. It should assign us a client.
layout();
+
+ // Assume m_listBox size is already calculated.
+ IntSize targetSize(m_listBox->width() + kBorderSize * 2,
+ m_listBox->height() + kBorderSize * 2);
- m_frameView = view;
+ IntRect widgetRect;
ChromeClientChromium* chromeClient = chromeClientChromium();
if (chromeClient) {
// If the popup would extend past the bottom of the screen, open upwards
// instead.
- FloatRect screen = screenAvailableRect(view);
- IntRect widgetRect = chromeClient->windowToScreen(frameRect());
-
+ FloatRect screen = screenAvailableRect(m_frameView.get());
+ widgetRect = chromeClient->windowToScreen(IntRect(popupInitialCoordinate, targetSize));
if (widgetRect.bottom() > static_cast<int>(screen.bottom())) {
- if (widgetRect.y() - widgetRect.height() - selectHeight > 0) {
+ if (widgetRect.y() - widgetRect.height() - targetControlHeight > 0) {
// There is enough room to open upwards.
- widgetRect.move(0, -(widgetRect.height() + selectHeight));
+ widgetRect.move(0, -(widgetRect.height() + targetControlHeight));
} else {
// Figure whether upwards or downwards has more room and set the
// maximum number of items.
- int spaceAbove = widgetRect.y() - selectHeight;
+ int spaceAbove = widgetRect.y() - targetControlHeight;
int spaceBelow = screen.bottom() - widgetRect.y();
if (spaceAbove > spaceBelow)
m_listBox->setMaxHeight(spaceAbove);
@@ -368,10 +368,21 @@ void PopupContainer::showPopup(FrameView* view)
widgetRect = chromeClient->windowToScreen(frameRect());
// And move upwards if necessary.
if (spaceAbove > spaceBelow)
- widgetRect.move(0, -(widgetRect.height() + selectHeight));
+ widgetRect.move(0, -(widgetRect.height() + targetControlHeight));
}
}
- chromeClient->popupOpened(this, widgetRect, false);
+ }
+ return widgetRect;
+}
+
+void PopupContainer::showPopup(FrameView* view)
+{
+ m_frameView = view;
+
+ ChromeClientChromium* chromeClient = chromeClientChromium();
+ if (chromeClient) {
+ IntRect popupRect = frameRect();
+ chromeClient->popupOpened(this, layoutAndCalculateWidgetRect(popupRect.height(), popupRect.location()), false);
m_popupOpen = true;
}
@@ -556,15 +567,24 @@ void PopupContainer::show(const IntRect& r, FrameView* v, int index)
// Move it below the select widget.
location.move(0, r.height());
- IntRect popupRect(location, r.size());
- setFrameRect(popupRect);
+ setFrameRect(IntRect(location, r.size()));
showPopup(v);
}
-void PopupContainer::refresh()
+void PopupContainer::refresh(const IntRect& targetControlRect)
{
+ IntPoint location = m_frameView->contentsToWindow(targetControlRect.location());
+ // Move it below the select widget.
+ location.move(0, targetControlRect.height());
+
listBox()->updateFromElement();
- layout();
+ // Store the original height to check if we need to request the location.
+ int originalHeight = height();
+ IntRect widgetRect = layoutAndCalculateWidgetRect(targetControlRect.height(), location);
+ if (originalHeight != widgetRect.height())
+ setFrameRect(widgetRect);
+
+ invalidate();
}
int PopupContainer::selectedIndex() const
diff --git a/Source/WebCore/platform/chromium/PopupMenuChromium.h b/Source/WebCore/platform/chromium/PopupMenuChromium.h
index ca47ccf..f326b48 100644
--- a/Source/WebCore/platform/chromium/PopupMenuChromium.h
+++ b/Source/WebCore/platform/chromium/PopupMenuChromium.h
@@ -168,7 +168,7 @@ public:
int selectedIndex() const;
// Refresh the popup values from the PopupMenuClient.
- void refresh();
+ void refresh(const IntRect& targetControlRect);
// The menu per-item data.
const WTF::Vector<PopupItem*>& popupData() const;
@@ -193,6 +193,9 @@ private:
// Paint the border.
void paintBorder(GraphicsContext*, const IntRect&);
+ // Layout and calculate popup widget size and location and returns it as IntRect.
+ IntRect layoutAndCalculateWidgetRect(int targetControlHeight, const IntPoint& popupInitialCoordinate);
+
// Returns the ChromeClient of the page this popup is associated with.
ChromeClientChromium* chromeClientChromium();
diff --git a/Source/WebCore/platform/efl/DragDataEfl.cpp b/Source/WebCore/platform/efl/DragDataEfl.cpp
index a8458d6..b35b963 100644
--- a/Source/WebCore/platform/efl/DragDataEfl.cpp
+++ b/Source/WebCore/platform/efl/DragDataEfl.cpp
@@ -50,7 +50,7 @@ bool DragData::containsPlainText() const
return false;
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
return String();
}
@@ -65,17 +65,17 @@ bool DragData::containsCompatibleContent() const
return false;
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return false;
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
return String();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame*, PassRefPtr<Range>, bool, bool&) const
{
return 0;
}
diff --git a/Source/WebCore/platform/efl/PasteboardEfl.cpp b/Source/WebCore/platform/efl/PasteboardEfl.cpp
index 1af5a92..77c1d90 100644
--- a/Source/WebCore/platform/efl/PasteboardEfl.cpp
+++ b/Source/WebCore/platform/efl/PasteboardEfl.cpp
@@ -46,11 +46,6 @@ Pasteboard::Pasteboard()
notImplemented();
}
-Pasteboard::~Pasteboard()
-{
- notImplemented();
-}
-
void Pasteboard::writePlainText(const String&)
{
notImplemented();
diff --git a/Source/WebCore/platform/efl/RenderThemeEfl.cpp b/Source/WebCore/platform/efl/RenderThemeEfl.cpp
index 7cf635f..9df12e9 100644
--- a/Source/WebCore/platform/efl/RenderThemeEfl.cpp
+++ b/Source/WebCore/platform/efl/RenderThemeEfl.cpp
@@ -32,6 +32,7 @@
#include "FrameView.h"
#include "GraphicsContext.h"
#include "NotImplemented.h"
+#include "PaintInfo.h"
#include "Page.h"
#include "RenderBox.h"
#include "RenderObject.h"
diff --git a/Source/WebCore/platform/graphics/GraphicsContext.cpp b/Source/WebCore/platform/graphics/GraphicsContext.cpp
index b8a6859..c9c1f63 100644
--- a/Source/WebCore/platform/graphics/GraphicsContext.cpp
+++ b/Source/WebCore/platform/graphics/GraphicsContext.cpp
@@ -30,6 +30,7 @@
#include "Font.h"
#include "Generator.h"
#include "ImageBuffer.h"
+#include "IntRect.h"
using namespace std;
diff --git a/Source/WebCore/platform/graphics/GraphicsContext.h b/Source/WebCore/platform/graphics/GraphicsContext.h
index d72cba1..a648680 100644
--- a/Source/WebCore/platform/graphics/GraphicsContext.h
+++ b/Source/WebCore/platform/graphics/GraphicsContext.h
@@ -32,10 +32,8 @@
#include "FloatRect.h"
#include "Gradient.h"
#include "Image.h"
-#include "IntRect.h"
#include "Path.h"
#include "Pattern.h"
-#include "TextDirection.h"
#include <wtf/Noncopyable.h>
#include <wtf/PassOwnPtr.h>
@@ -129,6 +127,7 @@ namespace WebCore {
class Generator;
class GraphicsContextPlatformPrivate;
class ImageBuffer;
+ class IntRect;
class KURL;
class SharedGraphicsContext3D;
class TextRun;
diff --git a/Source/WebCore/platform/graphics/GraphicsContext3D.cpp b/Source/WebCore/platform/graphics/GraphicsContext3D.cpp
index 1224bce..f7c5a66 100644
--- a/Source/WebCore/platform/graphics/GraphicsContext3D.cpp
+++ b/Source/WebCore/platform/graphics/GraphicsContext3D.cpp
@@ -33,6 +33,7 @@
#include "ArrayBufferView.h"
#include "CheckedInt.h"
#include "DrawingBuffer.h"
+#include "Extensions3D.h"
#include "Image.h"
#include "ImageData.h"
@@ -43,62 +44,6 @@ namespace WebCore {
namespace {
- unsigned int bytesPerComponent(GC3Denum type)
- {
- switch (type) {
- case GraphicsContext3D::UNSIGNED_BYTE:
- return 1;
- case GraphicsContext3D::UNSIGNED_SHORT_5_6_5:
- case GraphicsContext3D::UNSIGNED_SHORT_4_4_4_4:
- case GraphicsContext3D::UNSIGNED_SHORT_5_5_5_1:
- return 2;
- case GraphicsContext3D::FLOAT:
- return 4;
- default:
- return 1;
- }
- }
-
- unsigned int componentsPerPixel(GC3Denum format, GC3Denum type)
- {
- switch (type) {
- case GraphicsContext3D::UNSIGNED_SHORT_5_6_5:
- case GraphicsContext3D::UNSIGNED_SHORT_4_4_4_4:
- case GraphicsContext3D::UNSIGNED_SHORT_5_5_5_1:
- case GraphicsContext3D::FLOAT:
- return 1;
- default:
- break;
- }
- switch (format) {
- case GraphicsContext3D::ALPHA:
- case GraphicsContext3D::LUMINANCE:
- return 1;
- case GraphicsContext3D::LUMINANCE_ALPHA:
- return 2;
- case GraphicsContext3D::RGB:
- return 3;
- case GraphicsContext3D::RGBA:
- return 4;
- default:
- return 4;
- }
- }
-
- // This function should only be called if width and height is non-zero and
- // format/type are valid. Return 0 if overflow happens.
- unsigned int imageSizeInBytes(GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type)
- {
- ASSERT(width > 0 && height > 0);
- CheckedInt<uint32_t> checkedWidth(width);
- CheckedInt<uint32_t> checkedHeight(height);
- CheckedInt<uint32_t> checkedBytesPerPixel(bytesPerComponent(type) * componentsPerPixel(format, type));
- CheckedInt<uint32_t> checkedSize = checkedWidth * checkedHeight * checkedBytesPerPixel;
- if (checkedSize.valid())
- return checkedSize.value();
- return 0;
- }
-
uint8_t convertColor16LittleTo8(uint16_t value)
{
return value >> 8;
@@ -117,17 +62,19 @@ PassRefPtr<DrawingBuffer> GraphicsContext3D::createDrawingBuffer(const IntSize&
return DrawingBuffer::create(this, size);
}
-bool GraphicsContext3D::texImage2DResourceSafe(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type)
+bool GraphicsContext3D::texImage2DResourceSafe(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type, GC3Dint unpackAlignment)
{
+ ASSERT(unpackAlignment == 1 || unpackAlignment == 2 || unpackAlignment == 4 || unpackAlignment == 8);
OwnArrayPtr<unsigned char> zero;
if (width > 0 && height > 0) {
- unsigned int size = imageSizeInBytes(width, height, format, type);
- if (!size) {
- synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
+ unsigned int size;
+ GC3Denum error = computeImageSizeInBytes(format, type, width, height, unpackAlignment, &size, 0);
+ if (error != GraphicsContext3D::NO_ERROR) {
+ synthesizeGLError(error);
return false;
}
zero = adoptArrayPtr(new unsigned char[size]);
- if (!zero.get()) {
+ if (!zero) {
synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
return false;
}
@@ -155,6 +102,7 @@ bool GraphicsContext3D::computeFormatAndTypeParameters(GC3Denum format,
*componentsPerPixel = 3;
break;
case GraphicsContext3D::RGBA:
+ case Extensions3D::BGRA_EXT: // GL_EXT_texture_format_BGRA8888
*componentsPerPixel = 4;
break;
default:
@@ -162,16 +110,16 @@ bool GraphicsContext3D::computeFormatAndTypeParameters(GC3Denum format,
}
switch (type) {
case GraphicsContext3D::UNSIGNED_BYTE:
- *bytesPerComponent = sizeof(unsigned char);
+ *bytesPerComponent = sizeof(GC3Dubyte);
break;
case GraphicsContext3D::UNSIGNED_SHORT_5_6_5:
case GraphicsContext3D::UNSIGNED_SHORT_4_4_4_4:
case GraphicsContext3D::UNSIGNED_SHORT_5_5_5_1:
*componentsPerPixel = 1;
- *bytesPerComponent = sizeof(unsigned short);
+ *bytesPerComponent = sizeof(GC3Dushort);
break;
case GraphicsContext3D::FLOAT: // OES_texture_float
- *bytesPerComponent = sizeof(float);
+ *bytesPerComponent = sizeof(GC3Dfloat);
break;
default:
return false;
@@ -179,6 +127,44 @@ bool GraphicsContext3D::computeFormatAndTypeParameters(GC3Denum format,
return true;
}
+GC3Denum GraphicsContext3D::computeImageSizeInBytes(GC3Denum format, GC3Denum type, GC3Dsizei width, GC3Dsizei height, GC3Dint alignment,
+ unsigned int* imageSizeInBytes, unsigned int* paddingInBytes)
+{
+ ASSERT(imageSizeInBytes);
+ ASSERT(alignment == 1 || alignment == 2 || alignment == 4 || alignment == 8);
+ if (width < 0 || height < 0)
+ return GraphicsContext3D::INVALID_VALUE;
+ unsigned int bytesPerComponent, componentsPerPixel;
+ if (!computeFormatAndTypeParameters(format, type, &bytesPerComponent, &componentsPerPixel))
+ return GraphicsContext3D::INVALID_ENUM;
+ if (!width || !height) {
+ *imageSizeInBytes = 0;
+ if (paddingInBytes)
+ *paddingInBytes = 0;
+ return GraphicsContext3D::NO_ERROR;
+ }
+ CheckedInt<uint32_t> checkedValue(bytesPerComponent * componentsPerPixel);
+ checkedValue *= width;
+ if (!checkedValue.valid())
+ return GraphicsContext3D::INVALID_VALUE;
+ unsigned int validRowSize = checkedValue.value();
+ unsigned int padding = 0;
+ unsigned int residual = validRowSize % alignment;
+ if (residual) {
+ padding = alignment - residual;
+ checkedValue += padding;
+ }
+ // Last row needs no padding.
+ checkedValue *= (height - 1);
+ checkedValue += validRowSize;
+ if (!checkedValue.valid())
+ return GraphicsContext3D::INVALID_VALUE;
+ *imageSizeInBytes = checkedValue.value();
+ if (paddingInBytes)
+ *paddingInBytes = padding;
+ return GraphicsContext3D::NO_ERROR;
+}
+
bool GraphicsContext3D::extractImageData(Image* image,
GC3Denum format,
GC3Denum type,
diff --git a/Source/WebCore/platform/graphics/GraphicsContext3D.h b/Source/WebCore/platform/graphics/GraphicsContext3D.h
index a0d2778..10aa0d7 100644
--- a/Source/WebCore/platform/graphics/GraphicsContext3D.h
+++ b/Source/WebCore/platform/graphics/GraphicsContext3D.h
@@ -47,6 +47,8 @@
typedef unsigned int GC3Denum;
typedef unsigned char GC3Dboolean;
typedef unsigned int GC3Dbitfield;
+typedef unsigned char GC3Dubyte;
+typedef unsigned short GC3Dushort;
typedef int GC3Dint;
typedef int GC3Dsizei;
typedef unsigned int GC3Duint;
@@ -491,7 +493,8 @@ public:
// Helper to texImage2D with pixel==0 case: pixels are initialized to 0.
// Return true if no GL error is synthesized.
- bool texImage2DResourceSafe(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type);
+ // By default, alignment is 4, the OpenGL default setting.
+ bool texImage2DResourceSafe(GC3Denum target, GC3Dint level, GC3Denum internalformat, GC3Dsizei width, GC3Dsizei height, GC3Dint border, GC3Denum format, GC3Denum type, GC3Dint alignment = 4);
bool isGLES2Compliant() const;
@@ -507,6 +510,19 @@ public:
unsigned int* componentsPerPixel,
unsigned int* bytesPerComponent);
+ // Computes the image size in bytes. If paddingInBytes is not null, padding
+ // is also calculated in return. Returns NO_ERROR if succeed, otherwise
+ // return the suggested GL error indicating the cause of the failure:
+ // INVALID_VALUE if width/height is negative or overflow happens.
+ // INVALID_ENUM if format/type is illegal.
+ GC3Denum computeImageSizeInBytes(GC3Denum format,
+ GC3Denum type,
+ GC3Dsizei width,
+ GC3Dsizei height,
+ GC3Dint alignment,
+ unsigned int* imageSizeInBytes,
+ unsigned int* paddingInBytes);
+
// 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, premultiplyAlpha, and ignoreGammaAndColorProfile
diff --git a/Source/WebCore/platform/graphics/GraphicsLayer.h b/Source/WebCore/platform/graphics/GraphicsLayer.h
index ef3c1bc..8943f6c 100644
--- a/Source/WebCore/platform/graphics/GraphicsLayer.h
+++ b/Source/WebCore/platform/graphics/GraphicsLayer.h
@@ -322,6 +322,11 @@ public:
// For hosting this GraphicsLayer in a native layer hierarchy.
virtual PlatformLayer* platformLayer() const { return 0; }
+ // Change the scale at which the contents are rendered. Note that contentsScale may not return
+ // the same value passed to setContentsScale(), because of clamping and hysteresis.
+ virtual float contentsScale() const { return 1; }
+ virtual void setContentsScale(float) { }
+
void dumpLayer(TextStream&, int indent = 0, LayerTreeAsTextBehavior = LayerTreeAsTextBehaviorNormal) const;
int repaintCount() const { return m_repaintCount; }
diff --git a/Source/WebCore/platform/graphics/ImageSource.cpp b/Source/WebCore/platform/graphics/ImageSource.cpp
index 92553c5..984b7d2 100644
--- a/Source/WebCore/platform/graphics/ImageSource.cpp
+++ b/Source/WebCore/platform/graphics/ImageSource.cpp
@@ -130,8 +130,8 @@ NativeImagePtr ImageSource::createFrameAtIndex(size_t index)
if (!m_decoder)
return 0;
- RGBA32Buffer* buffer = m_decoder->frameBufferAtIndex(index);
- if (!buffer || buffer->status() == RGBA32Buffer::FrameEmpty)
+ ImageFrame* buffer = m_decoder->frameBufferAtIndex(index);
+ if (!buffer || buffer->status() == ImageFrame::FrameEmpty)
return 0;
// Zero-height images can cause problems for some ports. If we have an
@@ -149,8 +149,8 @@ float ImageSource::frameDurationAtIndex(size_t index)
if (!m_decoder)
return 0;
- RGBA32Buffer* buffer = m_decoder->frameBufferAtIndex(index);
- if (!buffer || buffer->status() == RGBA32Buffer::FrameEmpty)
+ ImageFrame* buffer = m_decoder->frameBufferAtIndex(index);
+ if (!buffer || buffer->status() == ImageFrame::FrameEmpty)
return 0;
// Many annoying ads specify a 0 duration to make an image flash as quickly as possible.
@@ -180,8 +180,8 @@ bool ImageSource::frameIsCompleteAtIndex(size_t index)
if (!m_decoder)
return false;
- RGBA32Buffer* buffer = m_decoder->frameBufferAtIndex(index);
- return buffer && buffer->status() == RGBA32Buffer::FrameComplete;
+ ImageFrame* buffer = m_decoder->frameBufferAtIndex(index);
+ return buffer && buffer->status() == ImageFrame::FrameComplete;
}
}
diff --git a/Source/WebCore/platform/graphics/Pen.cpp b/Source/WebCore/platform/graphics/Pen.cpp
deleted file mode 100644
index a3dcb86..0000000
--- a/Source/WebCore/platform/graphics/Pen.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2003 Apple Computer, 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 "Pen.h"
-
-namespace WebCore {
-
-Pen::Pen(const Color &color, unsigned width, PenStyle style) : m_style(style), m_width(width), m_color(color)
-{
-}
-
-const Color &Pen::color() const
-{
- return m_color;
-}
-
-unsigned Pen::width() const
-{
- return m_width;
-}
-
-Pen::PenStyle Pen::style() const
-{
- return m_style;
-}
-
-void Pen::setColor(const Color &color)
-{
- m_color = color;
-}
-
-void Pen::setWidth(unsigned width)
-{
- m_width = width;
-}
-
-void Pen::setStyle(PenStyle style)
-{
- m_style = style;
-}
-
-bool Pen::operator==(const Pen &compareTo) const
-{
- return (m_width == compareTo.m_width) &&
- (m_style == compareTo.m_style) &&
- (m_color == compareTo.m_color);
-}
-
-bool Pen::operator!=(const Pen &compareTo) const
-{
- return !(*this == compareTo);
-}
-
-}
diff --git a/Source/WebCore/platform/graphics/Pen.h b/Source/WebCore/platform/graphics/Pen.h
deleted file mode 100644
index cb45a2e..0000000
--- a/Source/WebCore/platform/graphics/Pen.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2003-6 Apple Computer, 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 Pen_h
-#define Pen_h
-
-#include "Color.h"
-
-#if PLATFORM(WX)
-class wxPen;
-#endif
-
-namespace WebCore {
-
-class Pen {
-public:
- enum PenStyle {
- NoPen,
- SolidLine,
- DotLine,
- DashLine
- };
-
- Pen(const Color &c = Color::black, unsigned w = 0, PenStyle ps = SolidLine);
-
- const Color &color() const;
- unsigned width() const;
- PenStyle style() const;
-
- void setColor(const Color &);
- void setWidth(unsigned);
- void setStyle(PenStyle);
-
- bool operator==(const Pen &) const;
- bool operator!=(const Pen &) const;
-
-#if PLATFORM(WX)
- Pen(const wxPen&);
- operator wxPen() const;
-#endif
-
-private:
- PenStyle m_style;
- unsigned m_width;
- Color m_color;
-};
-
-}
-
-#endif
diff --git a/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp b/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
index 37385c0..b72d761 100644
--- a/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
+++ b/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
@@ -253,6 +253,7 @@ GraphicsLayerCA::GraphicsLayerCA(GraphicsLayerClient* client)
, m_contentsLayerPurpose(NoContentsLayer)
, m_contentsLayerHasBackgroundColor(false)
, m_uncommittedChanges(NoChange)
+ , m_contentsScale(1)
{
m_layer = PlatformCALayer::create(PlatformCALayer::LayerTypeWebLayer, this);
@@ -857,6 +858,9 @@ void GraphicsLayerCA::commitLayerChangesBeforeSublayers()
if (m_uncommittedChanges & AcceleratesDrawingChanged)
updateAcceleratesDrawing();
+
+ if (m_uncommittedChanges & ContentsScaleChanged)
+ updateContentsScale();
}
void GraphicsLayerCA::commitLayerChangesAfterSublayers()
@@ -1897,6 +1901,44 @@ GraphicsLayerCA::LayerMap* GraphicsLayerCA::animatedLayerClones(AnimatedProperty
return (property == AnimatedPropertyBackgroundColor) ? m_contentsLayerClones.get() : primaryLayerClones();
}
+void GraphicsLayerCA::setContentsScale(float scale)
+{
+ float newScale = clampedContentsScaleForScale(scale);
+ if (newScale == m_contentsScale)
+ return;
+
+ m_contentsScale = newScale;
+ noteLayerPropertyChanged(ContentsScaleChanged);
+}
+
+float GraphicsLayerCA::clampedContentsScaleForScale(float scale) const
+{
+ // Define some limits as a sanity check for the incoming scale value
+ // those too small to see.
+ const float maxScale = 5.0f;
+ const float minScale = 0.01f;
+
+ // Avoid very slight scale changes that would be doing extra work for no benefit
+ const float maxAllowableDelta = 0.05f;
+
+ // Clamp
+ float result = max(minScale, min(scale, maxScale));
+
+ // If it hasn't changed much, don't do any work
+ return ((fabs(result - m_contentsScale) / m_contentsScale) < maxAllowableDelta) ? m_contentsScale : result;
+}
+
+void GraphicsLayerCA::updateContentsScale()
+{
+ bool needTiledLayer = requiresTiledLayer(m_size);
+ if (needTiledLayer != m_usingTiledLayer)
+ swapFromOrToTiledLayer(needTiledLayer);
+
+ m_layer->setContentsScale(m_contentsScale);
+ if (drawsContent())
+ m_layer->setNeedsDisplay();
+}
+
void GraphicsLayerCA::setDebugBackgroundColor(const Color& color)
{
if (color.isValid())
@@ -1950,12 +1992,11 @@ bool GraphicsLayerCA::requiresTiledLayer(const FloatSize& size) const
void GraphicsLayerCA::swapFromOrToTiledLayer(bool useTiledLayer)
{
- if (useTiledLayer == m_usingTiledLayer)
- return;
-
+ ASSERT(useTiledLayer != m_usingTiledLayer);
RefPtr<PlatformCALayer> oldLayer = m_layer;
m_layer = PlatformCALayer::create(useTiledLayer ? PlatformCALayer::LayerTypeWebTiledLayer : PlatformCALayer::LayerTypeWebLayer, this);
+ m_layer->setContentsScale(m_contentsScale);
m_usingTiledLayer = useTiledLayer;
@@ -2230,6 +2271,7 @@ PassRefPtr<PlatformCALayer> GraphicsLayerCA::cloneLayer(PlatformCALayer *layer,
newLayer->setDoubleSided(layer->isDoubleSided());
newLayer->setOpaque(layer->isOpaque());
newLayer->setBackgroundColor(layer->backgroundColor());
+ newLayer->setContentsScale(layer->contentsScale());
if (cloneLevel == IntermediateCloneLevel) {
newLayer->setOpacity(layer->opacity());
diff --git a/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h b/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
index 13cbdd1..2c39c0a 100644
--- a/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
+++ b/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
@@ -56,6 +56,9 @@ public:
virtual PlatformLayer* platformLayer() const;
virtual PlatformCALayer* platformCALayer() const { return primaryLayer(); }
+ virtual float contentsScale() const { return m_contentsScale; }
+ virtual void setContentsScale(float);
+
virtual bool setChildren(const Vector<GraphicsLayer*>&);
virtual void addChild(GraphicsLayer*);
virtual void addChildAtIndex(GraphicsLayer*, int index);
@@ -278,6 +281,7 @@ private:
void updateLayerAnimations();
void updateContentsNeedsDisplay();
void updateAcceleratesDrawing();
+ void updateContentsScale();
enum StructuralLayerPurpose {
NoStructuralLayer = 0,
@@ -320,7 +324,8 @@ private:
MaskLayerChanged = 1 << 21,
ReplicatedLayerChanged = 1 << 22,
ContentsNeedsDisplay = 1 << 23,
- AcceleratesDrawingChanged = 1 << 24
+ AcceleratesDrawingChanged = 1 << 24,
+ ContentsScaleChanged = 1 << 25
};
typedef unsigned LayerChangeFlags;
void noteLayerPropertyChanged(LayerChangeFlags flags);
@@ -391,6 +396,9 @@ private:
Vector<FloatRect> m_dirtyRects;
LayerChangeFlags m_uncommittedChanges;
+
+ float clampedContentsScaleForScale(float) const;
+ float m_contentsScale;
};
} // namespace WebCore
diff --git a/Source/WebCore/platform/graphics/ca/PlatformCALayer.h b/Source/WebCore/platform/graphics/ca/PlatformCALayer.h
index 46f4bbf..68566b3 100644
--- a/Source/WebCore/platform/graphics/ca/PlatformCALayer.h
+++ b/Source/WebCore/platform/graphics/ca/PlatformCALayer.h
@@ -182,6 +182,9 @@ public:
CFTimeInterval timeOffset() const;
void setTimeOffset(CFTimeInterval);
+
+ float contentsScale() const;
+ void setContentsScale(float);
#if PLATFORM(WIN) && !defined(NDEBUG)
void printTree() const;
diff --git a/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm b/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm
index 28460a7..2e20c3f 100644
--- a/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm
+++ b/Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm
@@ -723,4 +723,24 @@ void PlatformCALayer::setTimeOffset(CFTimeInterval value)
END_BLOCK_OBJC_EXCEPTIONS
}
+float PlatformCALayer::contentsScale() const
+{
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ return [m_layer.get() contentsScale];
+#else
+ return 1;
+#endif
+}
+
+void PlatformCALayer::setContentsScale(float value)
+{
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ BEGIN_BLOCK_OBJC_EXCEPTIONS
+ [m_layer.get() setContentsScale:value];
+ END_BLOCK_OBJC_EXCEPTIONS
+#else
+ UNUSED_PARAM(value);
+#endif
+}
+
#endif // USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp
index 919c3b3..66d0732 100644
--- a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp
+++ b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.cpp
@@ -253,15 +253,8 @@ size_t PlatformCALayer::sublayerCount() const
void PlatformCALayer::adoptSublayers(PlatformCALayer* source)
{
- // Make a list of the sublayers from source
PlatformCALayerList sublayers;
- size_t n = source->sublayerCount();
- CFArrayRef sourceSublayers = CACFLayerGetSublayers(source->platformLayer());
-
- for (size_t i = 0; i < n; ++i) {
- CACFLayerRef layer = static_cast<CACFLayerRef>(const_cast<void*>(CFArrayGetValueAtIndex(sourceSublayers, i)));
- sublayers.append(platformCALayer(layer));
- }
+ intern(source)->getSublayers(sublayers);
// Use setSublayers() because it properly nulls out the superlayer pointers.
setSublayers(sublayers);
@@ -586,6 +579,15 @@ void PlatformCALayer::setTimeOffset(CFTimeInterval value)
setNeedsCommit();
}
+float PlatformCALayer::contentsScale() const
+{
+ return 1;
+}
+
+void PlatformCALayer::setContentsScale(float)
+{
+}
+
#ifndef NDEBUG
static void printIndent(int indent)
{
@@ -681,11 +683,11 @@ static void printLayer(const PlatformCALayer* layer, int indent)
printIndent(indent + 1);
fprintf(stderr, "(sublayers\n");
- CFArrayRef sublayers = CACFLayerGetSublayers(layer->platformLayer());
- for (int i = 0; i < n; ++i) {
- PlatformCALayer* sublayer = PlatformCALayer::platformCALayer(const_cast<void*>(CFArrayGetValueAtIndex(sublayers, i)));
- printLayer(sublayer, indent + 2);
- }
+ PlatformCALayerList sublayers;
+ intern(layer)->getSublayers(sublayers);
+ ASSERT(n == sublayers.size());
+ for (int i = 0; i < n; ++i)
+ printLayer(sublayers[i].get(), indent + 2);
printIndent(indent + 1);
fprintf(stderr, ")\n");
diff --git a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp
index 0b7eea0..cdf90db 100644
--- a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp
+++ b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp
@@ -210,6 +210,27 @@ void PlatformCALayerWinInternal::setSublayers(const PlatformCALayerList& list)
}
}
+void PlatformCALayerWinInternal::getSublayers(PlatformCALayerList& list) const
+{
+ CFArrayRef sublayers = CACFLayerGetSublayers(owner()->platformLayer());
+ if (!sublayers) {
+ list.clear();
+ return;
+ }
+
+ size_t count = CFArrayGetCount(sublayers);
+
+ size_t layersToSkip = 0;
+ if (owner()->layerType() == PlatformCALayer::LayerTypeWebTiledLayer) {
+ // Exclude the tile parent layer.
+ layersToSkip = 1;
+ }
+
+ list.resize(count - layersToSkip);
+ for (size_t arrayIndex = layersToSkip; arrayIndex < count; ++arrayIndex)
+ list[arrayIndex - layersToSkip] = PlatformCALayer::platformCALayer(const_cast<void*>(CFArrayGetValueAtIndex(sublayers, arrayIndex)));
+}
+
void PlatformCALayerWinInternal::removeAllSublayers()
{
CACFLayerSetSublayers(owner()->platformLayer(), 0);
diff --git a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.h b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.h
index 1be9d26..39ef3b3 100644
--- a/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.h
+++ b/Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.h
@@ -52,6 +52,7 @@ public:
PlatformCALayer* owner() const { return m_owner; }
void setSublayers(const PlatformCALayerList&);
+ void getSublayers(PlatformCALayerList&) const;
void removeAllSublayers();
void insertSublayer(PlatformCALayer*, size_t);
size_t sublayerCount() const;
diff --git a/Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h b/Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h
index 1e0a846..b90bb8c 100644
--- a/Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h
+++ b/Source/WebCore/platform/graphics/cairo/DrawErrorUnderline.h
@@ -23,6 +23,9 @@
#if PLATFORM(CAIRO)
+#ifndef DrawErrorUnderline_h
+#define DrawErrorUnderline_h
+
#include <cairo.h>
//
@@ -96,4 +99,6 @@ static inline void drawErrorUnderline(cairo_t* cr, double x, double y, double wi
}
}
+#endif // DrawErrorUnderline_h
+
#endif
diff --git a/Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h b/Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h
index 5602b6c..a0dfc8c 100644
--- a/Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h
+++ b/Source/WebCore/platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h
@@ -25,6 +25,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef GraphicsContextPlatformPrivateCairo_h
+#define GraphicsContextPlatformPrivateCairo_h
+
#include "GraphicsContext.h"
#include "ContextShadow.h"
@@ -111,3 +114,4 @@ public:
} // namespace WebCore
+#endif // GraphicsContextPlatformPrivateCairo_h
diff --git a/Source/WebCore/platform/graphics/cairo/PathCairo.cpp b/Source/WebCore/platform/graphics/cairo/PathCairo.cpp
index 03f1d10..0113427 100644
--- a/Source/WebCore/platform/graphics/cairo/PathCairo.cpp
+++ b/Source/WebCore/platform/graphics/cairo/PathCairo.cpp
@@ -5,6 +5,7 @@
2005, 2007 Apple Inc. All Rights reserved.
2007 Alp Toker <alp@atoker.com>
2008 Dirk Schulze <krit@webkit.org>
+ 2011 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
@@ -143,18 +144,30 @@ void Path::addBezierCurveTo(const FloatPoint& controlPoint1, const FloatPoint& c
controlPoint3.x(), controlPoint3.y());
}
-void Path::addArc(const FloatPoint& p, float r, float sa, float ea, bool anticlockwise)
+void Path::addArc(const FloatPoint& p, float r, float startAngle, float endAngle, bool anticlockwise)
{
// http://bugs.webkit.org/show_bug.cgi?id=16449
// cairo_arc() functions hang or crash when passed inf as radius or start/end angle
- if (!isfinite(r) || !isfinite(sa) || !isfinite(ea))
+ if (!isfinite(r) || !isfinite(startAngle) || !isfinite(endAngle))
return;
cairo_t* cr = platformPath()->context();
- if (anticlockwise)
- cairo_arc_negative(cr, p.x(), p.y(), r, sa, ea);
- else
- cairo_arc(cr, p.x(), p.y(), r, sa, ea);
+ float sweep = endAngle - startAngle;
+ const float twoPI = 2 * piFloat;
+ if ((sweep <= -twoPI || sweep >= twoPI)
+ && ((anticlockwise && (endAngle < startAngle)) || (!anticlockwise && (startAngle < endAngle)))) {
+ if (anticlockwise)
+ cairo_arc_negative(cr, p.x(), p.y(), r, startAngle, startAngle - twoPI);
+ else
+ cairo_arc(cr, p.x(), p.y(), r, startAngle, startAngle + twoPI);
+ cairo_new_sub_path(cr);
+ cairo_arc(cr, p.x(), p.y(), r, endAngle, endAngle);
+ } else {
+ if (anticlockwise)
+ cairo_arc_negative(cr, p.x(), p.y(), r, startAngle, endAngle);
+ else
+ cairo_arc(cr, p.x(), p.y(), r, startAngle, endAngle);
+ }
}
void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius)
diff --git a/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp b/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
index acd912f..eddf735 100644
--- a/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
+++ b/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
@@ -546,21 +546,46 @@ void GraphicsContext::fillPath(const Path& path)
CGContextRef context = platformContext();
- CGContextBeginPath(context);
- CGContextAddPath(context, path.platformPath());
-
if (m_state.fillGradient) {
- CGContextSaveGState(context);
- if (fillRule() == RULE_EVENODD)
- CGContextEOClip(context);
- else
- CGContextClip(context);
- CGContextConcatCTM(context, m_state.fillGradient->gradientSpaceTransform());
- m_state.fillGradient->paint(this);
- CGContextRestoreGState(context);
+ if (hasShadow()) {
+ FloatRect rect = path.boundingRect();
+ CGLayerRef layer = CGLayerCreateWithContext(context, CGSizeMake(rect.width(), rect.height()), 0);
+ CGContextRef layerContext = CGLayerGetContext(layer);
+
+ CGContextTranslateCTM(layerContext, -rect.x(), -rect.y());
+ CGContextBeginPath(layerContext);
+ CGContextAddPath(layerContext, path.platformPath());
+ CGContextConcatCTM(layerContext, m_state.fillGradient->gradientSpaceTransform());
+
+ if (fillRule() == RULE_EVENODD)
+ CGContextEOClip(layerContext);
+ else
+ CGContextClip(layerContext);
+
+ m_state.fillGradient->paint(layerContext);
+ CGContextDrawLayerAtPoint(context, CGPointMake(rect.left(), rect.top()), layer);
+ CGLayerRelease(layer);
+ } else {
+ CGContextBeginPath(context);
+ CGContextAddPath(context, path.platformPath());
+ CGContextSaveGState(context);
+ CGContextConcatCTM(context, m_state.fillGradient->gradientSpaceTransform());
+
+ if (fillRule() == RULE_EVENODD)
+ CGContextEOClip(context);
+ else
+ CGContextClip(context);
+
+ m_state.fillGradient->paint(this);
+ CGContextRestoreGState(context);
+ }
+
return;
}
+ CGContextBeginPath(context);
+ CGContextAddPath(context, path.platformPath());
+
if (m_state.fillPattern)
applyFillPattern();
fillPathWithFillRule(context, fillRule());
diff --git a/Source/WebCore/platform/graphics/cg/GraphicsContextPlatformPrivateCG.h b/Source/WebCore/platform/graphics/cg/GraphicsContextPlatformPrivateCG.h
index 1d0a99f..d4fa32e 100644
--- a/Source/WebCore/platform/graphics/cg/GraphicsContextPlatformPrivateCG.h
+++ b/Source/WebCore/platform/graphics/cg/GraphicsContextPlatformPrivateCG.h
@@ -23,6 +23,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef GraphicsContextPlatformPrivateCG_h
+#define GraphicsContextPlatformPrivateCG_h
+
#include <wtf/RetainPtr.h>
#include <CoreGraphics/CGContext.h>
@@ -84,3 +87,5 @@ public:
};
}
+
+#endif // GraphicsContextPlatformPrivateCG_h
diff --git a/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp b/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp
index 75a36e5..023d098 100644
--- a/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp
+++ b/Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp
@@ -54,6 +54,8 @@ using namespace std;
namespace WebCore {
#if USE(IOSURFACE_CANVAS_BACKING_STORE)
+static const int maxIOSurfaceDimension = 4096;
+
static RetainPtr<IOSurfaceRef> createIOSurface(const IntSize& size)
{
unsigned pixelFormat = 'BGRA';
@@ -110,12 +112,15 @@ ImageBuffer::ImageBuffer(const IntSize& size, ColorSpace imageColorSpace, Render
, m_size(size)
, m_accelerateRendering(renderingMode == Accelerated)
{
-#if !USE(IOSURFACE_CANVAS_BACKING_STORE)
- ASSERT(renderingMode == Unaccelerated);
-#endif
success = false; // Make early return mean failure.
if (size.width() < 0 || size.height() < 0)
return;
+#if USE(IOSURFACE_CANVAS_BACKING_STORE)
+ if (size.width() >= maxIOSurfaceDimension || size.height() >= maxIOSurfaceDimension)
+ m_accelerateRendering = false;
+#else
+ ASSERT(renderingMode == Unaccelerated);
+#endif
unsigned bytesPerRow = size.width();
if (bytesPerRow > 0x3FFFFFFF) // Protect against overflow
diff --git a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h
index 790d620..ecd57be 100644
--- a/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h
+++ b/Source/WebCore/platform/graphics/cg/PDFDocumentImage.h
@@ -23,6 +23,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef PDFDocumentImage_h
+#define PDFDocumentImage_h
+
#include "Image.h"
#include "FloatRect.h"
@@ -76,3 +79,5 @@ namespace WebCore {
}
#endif // PLATFORM(CG)
+
+#endif // PDFDocumentImage_h
diff --git a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp
index b5eda93..99159e6 100644
--- a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp
+++ b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp
@@ -50,7 +50,6 @@ ComplexTextController::ComplexTextController(const TextRun& run, unsigned starti
, m_startingX(startingX)
, m_offsetX(m_startingX)
, m_run(getNormalizedTextRun(run, m_normalizedRun, m_normalizedBuffer))
- , m_iterateBackwards(m_run.rtl())
, m_wordSpacingAdjustment(0)
, m_padding(0)
, m_padPerWordBreak(0)
@@ -140,54 +139,33 @@ void ComplexTextController::setPadding(int padding)
void ComplexTextController::reset()
{
- if (m_iterateBackwards)
- m_indexOfNextScriptRun = m_run.length() - 1;
- else
- m_indexOfNextScriptRun = 0;
+ m_indexOfNextScriptRun = 0;
m_offsetX = m_startingX;
}
-void ComplexTextController::setBackwardsIteration(bool isBackwards)
-{
- m_iterateBackwards = isBackwards;
- reset();
-}
-
// Advance to the next script run, returning false when the end of the
// TextRun has been reached.
bool ComplexTextController::nextScriptRun()
{
- if (m_iterateBackwards) {
- // In right-to-left mode we need to render the shaped glyph backwards and
- // also render the script runs themselves backwards. So given a TextRun:
- // AAAAAAACTTTTTTT (A = Arabic, C = Common, T = Thai)
- // we render:
- // TTTTTTCAAAAAAA
- // (and the glyphs in each A, C and T section are backwards too)
- if (!hb_utf16_script_run_prev(&m_numCodePoints, &m_item.item, m_run.characters(), m_run.length(), &m_indexOfNextScriptRun))
- return false;
- m_currentFontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos], false).fontData;
- } else {
- if (!hb_utf16_script_run_next(&m_numCodePoints, &m_item.item, m_run.characters(), m_run.length(), &m_indexOfNextScriptRun))
- return false;
-
- // It is actually wrong to consider script runs at all in this code.
- // Other WebKit code (e.g. Mac) segments complex text just by finding
- // the longest span of text covered by a single font.
- // But we currently need to call hb_utf16_script_run_next anyway to fill
- // in the harfbuzz data structures to e.g. pick the correct script's shaper.
- // So we allow that to run first, then do a second pass over the range it
- // found and take the largest subregion that stays within a single font.
- m_currentFontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos], false).fontData;
- unsigned endOfRun;
- for (endOfRun = 1; endOfRun < m_item.item.length; ++endOfRun) {
- const SimpleFontData* nextFontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos + endOfRun], false).fontData;
- if (nextFontData != m_currentFontData)
- break;
- }
- m_item.item.length = endOfRun;
- m_indexOfNextScriptRun = m_item.item.pos + endOfRun;
+ if (!hb_utf16_script_run_next(&m_numCodePoints, &m_item.item, m_run.characters(), m_run.length(), &m_indexOfNextScriptRun))
+ return false;
+
+ // It is actually wrong to consider script runs at all in this code.
+ // Other WebKit code (e.g. Mac) segments complex text just by finding
+ // the longest span of text covered by a single font.
+ // But we currently need to call hb_utf16_script_run_next anyway to fill
+ // in the harfbuzz data structures to e.g. pick the correct script's shaper.
+ // So we allow that to run first, then do a second pass over the range it
+ // found and take the largest subregion that stays within a single font.
+ m_currentFontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos], false).fontData;
+ unsigned endOfRun;
+ for (endOfRun = 1; endOfRun < m_item.item.length; ++endOfRun) {
+ const SimpleFontData* nextFontData = m_font->glyphDataForCharacter(m_item.string[m_item.item.pos + endOfRun], false).fontData;
+ if (nextFontData != m_currentFontData)
+ break;
}
+ m_item.item.length = endOfRun;
+ m_indexOfNextScriptRun = m_item.item.pos + endOfRun;
setupFontForScriptRun();
shapeGlyphs();
@@ -273,7 +251,7 @@ void ComplexTextController::shapeGlyphs()
{
// HB_ShapeItem() resets m_item.num_glyphs. If the previous call to
// HB_ShapeItem() used less space than was available, the capacity of
- // the array may be larger than the current value of m_item.num_glyphs.
+ // the array may be larger than the current value of m_item.num_glyphs.
// So, we need to reset the num_glyphs to the capacity of the array.
m_item.num_glyphs = m_glyphsArrayCapacity;
resetGlyphArrays();
@@ -291,62 +269,49 @@ void ComplexTextController::shapeGlyphs()
void ComplexTextController::setGlyphXPositions(bool isRTL)
{
+ const double rtlFlip = isRTL ? -1 : 1;
double position = 0;
- // logClustersIndex indexes logClusters for the first (or last when
- // RTL) codepoint of the current glyph. Each time we advance a glyph,
- // we skip over all the codepoints that contributed to the current
- // glyph.
+
+ // logClustersIndex indexes logClusters for the first codepoint of the current glyph.
+ // Each time we advance a glyph, we skip over all the codepoints that contributed to the current glyph.
int logClustersIndex = 0;
- if (isRTL) {
- logClustersIndex = m_item.num_glyphs - 1;
-
- // Glyphs are stored in logical order, but for layout purposes we
- // always go left to right.
- for (int i = m_item.num_glyphs - 1; i >= 0; --i) {
- if (!m_currentFontData->isZeroWidthSpaceGlyph(m_glyphs16[i])) {
- // Whitespace must be laid out in logical order, so when inserting
- // spaces in RTL (but iterating in LTR order) we must insert spaces
- // _before_ the next glyph.
- if (static_cast<unsigned>(i + 1) >= m_item.num_glyphs || m_item.attributes[i + 1].clusterStart)
- position += m_letterSpacing;
-
- position += determineWordBreakSpacing(logClustersIndex);
- }
-
- m_glyphs16[i] = m_item.glyphs[i];
- double offsetX = truncateFixedPointToInteger(m_item.offsets[i].x);
- m_xPositions[i] = m_offsetX + position + offsetX;
-
- while (logClustersIndex > 0 && logClusters()[logClustersIndex] == i)
- logClustersIndex--;
-
- if (!m_currentFontData->isZeroWidthSpaceGlyph(m_glyphs16[i]))
- position += truncateFixedPointToInteger(m_item.advances[i]);
- }
- } else {
- for (size_t i = 0; i < m_item.num_glyphs; ++i) {
- m_glyphs16[i] = m_item.glyphs[i];
- double offsetX = truncateFixedPointToInteger(m_item.offsets[i].x);
- m_xPositions[i] = m_offsetX + position + offsetX;
+ // Iterate through the glyphs in logical order, flipping for RTL where necessary.
+ // In RTL mode all variables are positive except m_xPositions, which starts from m_offsetX and runs negative.
+ // It is fixed up in a second pass below.
+ for (size_t i = 0; i < m_item.num_glyphs; ++i) {
+ while (static_cast<unsigned>(logClustersIndex) < m_item.item.length && logClusters()[logClustersIndex] < i)
+ logClustersIndex++;
- if (m_currentFontData->isZeroWidthSpaceGlyph(m_glyphs16[i]))
- continue;
+ // If the current glyph is just after a space, add in the word spacing.
+ position += determineWordBreakSpacing(logClustersIndex);
- double advance = truncateFixedPointToInteger(m_item.advances[i]);
+ m_glyphs16[i] = m_item.glyphs[i];
+ double offsetX = truncateFixedPointToInteger(m_item.offsets[i].x);
+ double advance = truncateFixedPointToInteger(m_item.advances[i]);
+ if (isRTL)
+ offsetX -= advance;
- advance += determineWordBreakSpacing(logClustersIndex);
+ m_xPositions[i] = m_offsetX + (position * rtlFlip) + offsetX;
- if (m_item.attributes[i].clusterStart)
- advance += m_letterSpacing;
+ if (m_currentFontData->isZeroWidthSpaceGlyph(m_glyphs16[i]))
+ continue;
- while (static_cast<unsigned>(logClustersIndex) < m_item.item.length && logClusters()[logClustersIndex] == i)
- logClustersIndex++;
+ // At the end of each cluster, add in the letter spacing.
+ if (i + 1 == m_item.num_glyphs || m_item.attributes[i + 1].clusterStart)
+ position += m_letterSpacing;
- position += advance;
- }
+ position += advance;
}
- m_pixelWidth = std::max(position, 0.0);
+ const double width = position;
+
+ // Now that we've computed the total width, do another pass to fix positioning for RTL.
+ if (isRTL) {
+ for (size_t i = 0; i < m_item.num_glyphs; ++i)
+ m_xPositions[i] += width;
+ }
+
+ m_pixelWidth = std::max(width, 0.0);
m_offsetX += m_pixelWidth;
}
diff --git a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h
index 4ebbd89..e264b99 100644
--- a/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h
+++ b/Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h
@@ -52,9 +52,8 @@ class SimpleFontData;
// only ever done with script runs since the shapers only know how to deal with
// a single script.
//
-// After creating it, the script runs are either iterated backwards or forwards.
-// It defaults to backwards for RTL and forwards otherwise (which matches the
-// presentation order), however you can set it with |setBackwardsIteration|.
+// Iteration is always in logical (aka reading) order. For RTL text that means
+// the rightmost part of the text will be first.
//
// Once you have setup the object, call |nextScriptRun| to get the first script
// run. This will return false when the iteration is complete. At any time you
@@ -70,7 +69,6 @@ public:
// WebKit uses this to justify text.
void setPadding(int);
void reset();
- void setBackwardsIteration(bool);
// Advance to the next script run, returning false when the end of the
// TextRun has been reached.
bool nextScriptRun();
@@ -148,7 +146,6 @@ private:
OwnPtr<TextRun> m_normalizedRun;
OwnArrayPtr<UChar> m_normalizedBuffer; // A buffer for normalized run.
const TextRun& m_run;
- bool m_iterateBackwards;
int m_wordSpacingAdjustment; // delta adjustment (pixels) for each word break.
float m_padding; // pixels to be distributed over the line at word breaks.
float m_padPerWordBreak; // pixels to be added to each word break.
diff --git a/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp b/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
index 507c227..569dff4 100644
--- a/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp
@@ -67,9 +67,14 @@ static unsigned generateColorTexture(GraphicsContext3D* context, const IntSize&
}
-DrawingBuffer::DrawingBuffer(GraphicsContext3D* context, const IntSize& size)
+DrawingBuffer::DrawingBuffer(GraphicsContext3D* context,
+ const IntSize& size,
+ bool multisampleExtensionSupported,
+ bool packedDepthStencilExtensionSupported)
: m_context(context)
, m_size(size)
+ , m_multisampleExtensionSupported(multisampleExtensionSupported)
+ , m_packedDepthStencilExtensionSupported(packedDepthStencilExtensionSupported)
, m_fbo(0)
, m_colorBuffer(0)
, m_depthStencilBuffer(0)
@@ -85,6 +90,7 @@ DrawingBuffer::DrawingBuffer(GraphicsContext3D* context, const IntSize& size)
m_fbo = context->createFramebuffer();
context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_fbo);
m_colorBuffer = generateColorTexture(context, size);
+ createSecondaryBuffers();
}
DrawingBuffer::~DrawingBuffer()
diff --git a/Source/WebCore/platform/graphics/chromium/FontLinux.cpp b/Source/WebCore/platform/graphics/chromium/FontLinux.cpp
index b256e70..f1eadf2 100644
--- a/Source/WebCore/platform/graphics/chromium/FontLinux.cpp
+++ b/Source/WebCore/platform/graphics/chromium/FontLinux.cpp
@@ -234,28 +234,21 @@ float Font::floatWidthForComplexText(const TextRun& run, HashSet<const SimpleFon
return controller.widthOfFullRun();
}
-static int glyphIndexForXPositionInScriptRun(const ComplexTextController& controller, int x)
+static int glyphIndexForXPositionInScriptRun(const ComplexTextController& controller, int targetX)
{
- const HB_Fixed* advances = controller.advances();
- int letterSpacing = controller.letterSpacing();
- int glyphIndex;
- if (controller.rtl()) {
- for (glyphIndex = controller.length() - 1; glyphIndex >= 0; --glyphIndex) {
- // When iterating LTR over RTL text, we must include the whitespace
- // _before_ the glyph, so no + 1 here.
- if (x < (static_cast<int>(controller.length()) - glyphIndex) * letterSpacing + truncateFixedPointToInteger(advances[glyphIndex]))
- break;
- x -= truncateFixedPointToInteger(advances[glyphIndex]);
- }
- } else {
- for (glyphIndex = 0; static_cast<unsigned>(glyphIndex) < controller.length(); ++glyphIndex) {
- if (x < (glyphIndex * letterSpacing + truncateFixedPointToInteger(advances[glyphIndex])))
- break;
- x -= truncateFixedPointToInteger(advances[glyphIndex]);
- }
+ // Iterate through the glyphs in logical order, seeing whether targetX falls between the previous
+ // position and halfway through the current glyph.
+ // FIXME: this code probably belongs in ComplexTextController.
+ int lastX = controller.rtl() ? controller.width() : 0;
+ for (int glyphIndex = 0; static_cast<unsigned>(glyphIndex) < controller.length(); ++glyphIndex) {
+ int advance = truncateFixedPointToInteger(controller.advances()[glyphIndex]);
+ int nextX = static_cast<int>(controller.xPositions()[glyphIndex]) + advance / 2;
+ if (std::min(nextX, lastX) <= targetX && targetX <= std::max(nextX, lastX))
+ return glyphIndex;
+ lastX = nextX;
}
- return glyphIndex;
+ return controller.length() - 1;
}
// Return the code point index for the given |x| offset into the text run.
@@ -345,20 +338,16 @@ FloatRect Font::selectionRectForComplexText(const TextRun& run,
const FloatPoint& point, int height,
int from, int to) const
{
- int fromX = -1, toX = -1, fromAdvance = -1, toAdvance = -1;
+ int fromX = -1, toX = -1;
ComplexTextController controller(run, 0, this);
controller.setWordSpacingAdjustment(wordSpacing());
controller.setLetterSpacingAdjustment(letterSpacing());
- // Base will point to the x offset for the current script run. Note that, in
+ // Base will point to the x offset for the start of the current script run. Note that, in
// the LTR case, width will be 0.
int base = controller.rtl() ? controller.widthOfFullRun() : 0;
- const int leftEdge = base;
-
- // We want to enumerate the script runs in code point order in the following
- // code. This call also resets |controller|.
- controller.setBackwardsIteration(false);
+ controller.reset();
while (controller.nextScriptRun() && (fromX == -1 || toX == -1)) {
// ComplexTextController will helpfully accululate the x offsets for different
// script runs for us. For this code, however, we always want the x offsets
@@ -374,14 +363,16 @@ FloatRect Font::selectionRectForComplexText(const TextRun& run,
// position.
int glyph = controller.logClusters()[from];
fromX = base + controller.xPositions()[glyph];
- fromAdvance = controller.advances()[glyph];
+ if (controller.rtl())
+ fromX += truncateFixedPointToInteger(controller.advances()[glyph]);
} else
from -= controller.numCodePoints();
if (toX == -1 && to >= 0 && static_cast<unsigned>(to) < controller.numCodePoints()) {
int glyph = controller.logClusters()[to];
toX = base + controller.xPositions()[glyph];
- toAdvance = controller.advances()[glyph];
+ if (controller.rtl())
+ toX += truncateFixedPointToInteger(controller.advances()[glyph]);
} else
to -= controller.numCodePoints();
@@ -390,14 +381,11 @@ FloatRect Font::selectionRectForComplexText(const TextRun& run,
}
// The position in question might be just after the text.
- const int rightEdge = base;
+ const int endEdge = base;
if (fromX == -1 && !from)
- fromX = leftEdge;
- else if (controller.rtl())
- fromX += truncateFixedPointToInteger(fromAdvance);
-
+ fromX = endEdge;
if (toX == -1 && !to)
- toX = rightEdge;
+ toX = endEdge;
ASSERT(fromX != -1 && toX != -1);
diff --git a/Source/WebCore/platform/graphics/chromium/LayerTexture.h b/Source/WebCore/platform/graphics/chromium/LayerTexture.h
index 312adfa..711e687 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerTexture.h
+++ b/Source/WebCore/platform/graphics/chromium/LayerTexture.h
@@ -48,6 +48,11 @@ public:
bool isValid(const IntSize&, unsigned format);
bool reserve(const IntSize&, unsigned format);
void unreserve();
+ bool isReserved()
+ {
+ ASSERT(m_textureManager);
+ return m_textureManager->isProtected(m_token);
+ }
void bindTexture();
void framebufferTexture2D();
diff --git a/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp b/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp
index 31649a4..b4b4a72 100644
--- a/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp
@@ -315,12 +315,18 @@ void LayerTilerChromium::update(TilePaintInterface& painter, const IntRect& cont
IntRect sourceRect = tileContentRect(i, j);
const IntPoint anchor = sourceRect.location();
sourceRect.intersect(layerRectToContentRect(tile->m_dirtyLayerRect));
+ if (sourceRect.isEmpty())
+ continue;
// Calculate tile-space rectangle to upload into.
IntRect destRect(IntPoint(sourceRect.x() - anchor.x(), sourceRect.y() - anchor.y()), sourceRect.size());
+ ASSERT(destRect.x() >= 0);
+ ASSERT(destRect.y() >= 0);
// Offset from paint rectangle to this tile's dirty rectangle.
IntPoint paintOffset(sourceRect.x() - paintRect.x(), sourceRect.y() - paintRect.y());
+ ASSERT(paintOffset.x() >= 0);
+ ASSERT(paintOffset.y() >= 0);
uint8_t* pixelSource;
if (paintRect.width() == sourceRect.width() && !paintOffset.x())
diff --git a/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp b/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp
index e8b9a12..696828f 100644
--- a/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp
+++ b/Source/WebCore/platform/graphics/chromium/RenderSurfaceChromium.cpp
@@ -124,6 +124,9 @@ bool RenderSurfaceChromium::prepareContentsTexture()
if (!m_contentsTexture)
m_contentsTexture = LayerTexture::create(layerRenderer()->context(), textureManager);
+ if (m_contentsTexture->isReserved())
+ return true;
+
if (!m_contentsTexture->reserve(requiredSize, GraphicsContext3D::RGBA)) {
m_skipsDraw = true;
return false;
diff --git a/Source/WebCore/platform/graphics/chromium/TextureManager.cpp b/Source/WebCore/platform/graphics/chromium/TextureManager.cpp
index 9579ef9..c4ad958 100644
--- a/Source/WebCore/platform/graphics/chromium/TextureManager.cpp
+++ b/Source/WebCore/platform/graphics/chromium/TextureManager.cpp
@@ -70,6 +70,11 @@ bool TextureManager::hasTexture(TextureToken token)
return false;
}
+bool TextureManager::isProtected(TextureToken token)
+{
+ return token && hasTexture(token) && m_textures.get(token).isProtected;
+}
+
void TextureManager::protectTexture(TextureToken token)
{
ASSERT(hasTexture(token));
diff --git a/Source/WebCore/platform/graphics/chromium/TextureManager.h b/Source/WebCore/platform/graphics/chromium/TextureManager.h
index 1e850cd..4891cc7 100644
--- a/Source/WebCore/platform/graphics/chromium/TextureManager.h
+++ b/Source/WebCore/platform/graphics/chromium/TextureManager.h
@@ -51,6 +51,7 @@ public:
void protectTexture(TextureToken);
void unprotectTexture(TextureToken);
+ bool isProtected(TextureToken);
private:
TextureManager(GraphicsContext3D*, size_t memoryLimitBytes, int maxTextureSize);
diff --git a/Source/WebCore/platform/graphics/filters/FEBlend.cpp b/Source/WebCore/platform/graphics/filters/FEBlend.cpp
index 7eeb128..ac68266 100644
--- a/Source/WebCore/platform/graphics/filters/FEBlend.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEBlend.cpp
@@ -28,6 +28,8 @@
#include "Filter.h"
#include "FloatPoint.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp b/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp
index e0b15d1..33c4467 100644
--- a/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp
@@ -27,6 +27,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
#include <wtf/MathExtras.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp b/Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp
index ca8e5d3..ab59332 100644
--- a/Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEComponentTransfer.cpp
@@ -28,6 +28,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
#include <wtf/MathExtras.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEComposite.cpp b/Source/WebCore/platform/graphics/filters/FEComposite.cpp
index 80cb2b2..bc7fa80 100644
--- a/Source/WebCore/platform/graphics/filters/FEComposite.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEComposite.cpp
@@ -28,6 +28,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp b/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp
index b8f8aea..0483626 100644
--- a/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp
@@ -27,6 +27,8 @@
#include "FEConvolveMatrix.h"
#include "Filter.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEDiffuseLighting.cpp b/Source/WebCore/platform/graphics/filters/FEDiffuseLighting.cpp
index 14d57f4..a8a825a 100644
--- a/Source/WebCore/platform/graphics/filters/FEDiffuseLighting.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEDiffuseLighting.cpp
@@ -25,6 +25,8 @@
#include "FEDiffuseLighting.h"
#include "LightSource.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp b/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp
index b5151bf..88c87b7 100644
--- a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp
@@ -28,6 +28,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEFlood.cpp b/Source/WebCore/platform/graphics/filters/FEFlood.cpp
index 8bfdef8..0e0e94c 100644
--- a/Source/WebCore/platform/graphics/filters/FEFlood.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEFlood.cpp
@@ -27,6 +27,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp b/Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
index 37b5992..20fd923 100644
--- a/Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEGaussianBlur.cpp
@@ -29,6 +29,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
#include <wtf/MathExtras.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEMerge.cpp b/Source/WebCore/platform/graphics/filters/FEMerge.cpp
index 4395321..4099a96 100644
--- a/Source/WebCore/platform/graphics/filters/FEMerge.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEMerge.cpp
@@ -26,6 +26,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FEMorphology.cpp b/Source/WebCore/platform/graphics/filters/FEMorphology.cpp
index 45c7edb..1eb554b 100644
--- a/Source/WebCore/platform/graphics/filters/FEMorphology.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEMorphology.cpp
@@ -27,6 +27,8 @@
#include "FEMorphology.h"
#include "Filter.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
#include <wtf/Vector.h>
diff --git a/Source/WebCore/platform/graphics/filters/FEOffset.cpp b/Source/WebCore/platform/graphics/filters/FEOffset.cpp
index f1d5914..99cac2d 100644
--- a/Source/WebCore/platform/graphics/filters/FEOffset.cpp
+++ b/Source/WebCore/platform/graphics/filters/FEOffset.cpp
@@ -28,6 +28,8 @@
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FESpecularLighting.cpp b/Source/WebCore/platform/graphics/filters/FESpecularLighting.cpp
index d21dafd..36a6b72 100644
--- a/Source/WebCore/platform/graphics/filters/FESpecularLighting.cpp
+++ b/Source/WebCore/platform/graphics/filters/FESpecularLighting.cpp
@@ -25,6 +25,8 @@
#include "FESpecularLighting.h"
#include "LightSource.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FETile.cpp b/Source/WebCore/platform/graphics/filters/FETile.cpp
index e516c7e..1fcb71b 100644
--- a/Source/WebCore/platform/graphics/filters/FETile.cpp
+++ b/Source/WebCore/platform/graphics/filters/FETile.cpp
@@ -27,7 +27,9 @@
#include "Filter.h"
#include "GraphicsContext.h"
#include "Pattern.h"
+#include "RenderTreeAsText.h"
#include "SVGImageBufferTools.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FETurbulence.cpp b/Source/WebCore/platform/graphics/filters/FETurbulence.cpp
index f1a159b..068acee 100644
--- a/Source/WebCore/platform/graphics/filters/FETurbulence.cpp
+++ b/Source/WebCore/platform/graphics/filters/FETurbulence.cpp
@@ -27,6 +27,8 @@
#include "FETurbulence.h"
#include "Filter.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
#include <wtf/MathExtras.h>
diff --git a/Source/WebCore/platform/graphics/filters/FilterEffect.cpp b/Source/WebCore/platform/graphics/filters/FilterEffect.cpp
index 05c2a47..85154b5 100644
--- a/Source/WebCore/platform/graphics/filters/FilterEffect.cpp
+++ b/Source/WebCore/platform/graphics/filters/FilterEffect.cpp
@@ -24,6 +24,9 @@
#if ENABLE(FILTERS)
#include "FilterEffect.h"
+#include "Filter.h"
+#include "ImageBuffer.h"
+#include "TextStream.h"
#include <wtf/ByteArray.h>
namespace WebCore {
diff --git a/Source/WebCore/platform/graphics/filters/FilterEffect.h b/Source/WebCore/platform/graphics/filters/FilterEffect.h
index 2554d4b..062dd1b 100644
--- a/Source/WebCore/platform/graphics/filters/FilterEffect.h
+++ b/Source/WebCore/platform/graphics/filters/FilterEffect.h
@@ -23,13 +23,10 @@
#define FilterEffect_h
#if ENABLE(FILTERS)
-#include "Filter.h"
#include "FloatRect.h"
-#include "GraphicsContext.h"
-#include "ImageBuffer.h"
-#include "RenderTreeAsText.h"
-#include "TextStream.h"
+#include "IntRect.h"
+#include <wtf/ByteArray.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -37,6 +34,11 @@
namespace WebCore {
+class Filter;
+class FilterEffect;
+class ImageBuffer;
+class TextStream;
+
typedef Vector<RefPtr<FilterEffect> > FilterEffectVector;
enum FilterEffectType {
diff --git a/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp b/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp
index 2d2de00..45d74f5 100644
--- a/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp
+++ b/Source/WebCore/platform/graphics/filters/SourceAlpha.cpp
@@ -23,9 +23,11 @@
#include "SourceAlpha.h"
#include "Color.h"
+#include "Filter.h"
#include "GraphicsContext.h"
#include "PlatformString.h"
-#include "Filter.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/StdLibExtras.h>
diff --git a/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp b/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp
index 04082ad..8726bf3 100644
--- a/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp
+++ b/Source/WebCore/platform/graphics/filters/SourceGraphic.cpp
@@ -22,9 +22,11 @@
#if ENABLE(FILTERS)
#include "SourceGraphic.h"
+#include "Filter.h"
#include "GraphicsContext.h"
#include "PlatformString.h"
-#include "Filter.h"
+#include "RenderTreeAsText.h"
+#include "TextStream.h"
#include <wtf/StdLibExtras.h>
diff --git a/Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp b/Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp
index d2415ca..c283068 100644
--- a/Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp
+++ b/Source/WebCore/platform/graphics/gpu/DrawingBuffer.cpp
@@ -40,14 +40,16 @@ namespace WebCore {
PassRefPtr<DrawingBuffer> DrawingBuffer::create(GraphicsContext3D* context, const IntSize& size)
{
- RefPtr<DrawingBuffer> drawingBuffer = adoptRef(new DrawingBuffer(context, size));
Extensions3D* extensions = context->getExtensions();
bool multisampleSupported = extensions->supports("GL_ANGLE_framebuffer_blit") && extensions->supports("GL_ANGLE_framebuffer_multisample");
if (multisampleSupported) {
extensions->ensureEnabled("GL_ANGLE_framebuffer_blit");
extensions->ensureEnabled("GL_ANGLE_framebuffer_multisample");
}
- drawingBuffer->m_multisampleExtensionSupported = multisampleSupported;
+ bool packedDepthStencilSupported = extensions->supports("GL_OES_packed_depth_stencil");
+ if (packedDepthStencilSupported)
+ extensions->ensureEnabled("GL_OES_packed_depth_stencil");
+ RefPtr<DrawingBuffer> drawingBuffer = adoptRef(new DrawingBuffer(context, size, multisampleSupported, packedDepthStencilSupported));
return (drawingBuffer->m_context) ? drawingBuffer.release() : 0;
}
@@ -88,6 +90,24 @@ void DrawingBuffer::clear()
m_context.clear();
}
+void DrawingBuffer::createSecondaryBuffers()
+{
+ const GraphicsContext3D::Attributes& attributes = m_context->getContextAttributes();
+
+ // Create the stencil and depth buffer if needed
+ if (!multisample() && (attributes.stencil || attributes.depth))
+ m_depthStencilBuffer = m_context->createRenderbuffer();
+
+ // create a multisample FBO
+ if (multisample()) {
+ m_multisampleFBO = m_context->createFramebuffer();
+ m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_multisampleFBO);
+ m_multisampleColorBuffer = m_context->createRenderbuffer();
+ if (attributes.stencil || attributes.depth)
+ m_multisampleDepthStencilBuffer = m_context->createRenderbuffer();
+ }
+}
+
void DrawingBuffer::reset(const IntSize& newSize)
{
if (m_size == newSize)
@@ -111,10 +131,13 @@ void DrawingBuffer::reset(const IntSize& newSize)
if (attributes.stencil || attributes.depth) {
// We don't allow the logic where stencil is required and depth is not.
// See GraphicsContext3D constructor.
- if (attributes.stencil && attributes.depth)
- internalDepthStencilFormat = GraphicsContext3D::DEPTH_STENCIL;
+
+ // FIXME: If packed depth/stencil is not supported, we should
+ // create separate renderbuffers for depth and stencil.
+ if (attributes.stencil && attributes.depth && m_packedDepthStencilExtensionSupported)
+ internalDepthStencilFormat = Extensions3D::DEPTH24_STENCIL8;
else
- internalDepthStencilFormat = GraphicsContext3D::DEPTH_COMPONENT;
+ internalDepthStencilFormat = GraphicsContext3D::DEPTH_COMPONENT16;
}
// resize multisample FBO
@@ -150,7 +173,7 @@ void DrawingBuffer::reset(const IntSize& newSize)
m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_colorBuffer);
m_context->texImage2DResourceSafe(GraphicsContext3D::TEXTURE_2D, 0, internalColorFormat, m_size.width(), m_size.height(), 0, colorFormat, GraphicsContext3D::UNSIGNED_BYTE);
- m_context->framebufferTexture2D(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::TEXTURE, m_colorBuffer, 0);
+ m_context->framebufferTexture2D(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::TEXTURE_2D, m_colorBuffer, 0);
m_context->bindTexture(GraphicsContext3D::TEXTURE_2D, 0);
if (!multisample() && (attributes.stencil || attributes.depth)) {
m_context->bindRenderbuffer(GraphicsContext3D::RENDERBUFFER, m_depthStencilBuffer);
diff --git a/Source/WebCore/platform/graphics/gpu/DrawingBuffer.h b/Source/WebCore/platform/graphics/gpu/DrawingBuffer.h
index 9f79889..e0e0ee1 100644
--- a/Source/WebCore/platform/graphics/gpu/DrawingBuffer.h
+++ b/Source/WebCore/platform/graphics/gpu/DrawingBuffer.h
@@ -63,6 +63,9 @@ public:
// Clear all resources from this object, as well as context. Called when context is destroyed
// to prevent invalid accesses to the resources.
void clear();
+
+ // Create the depth/stencil and multisample buffers, if needed.
+ void createSecondaryBuffers();
// Copies the multisample color buffer to the normal color buffer and leaves m_fbo bound
void commit(long x = 0, long y = 0, long width = -1, long height = -1);
@@ -92,7 +95,7 @@ public:
private:
static PassRefPtr<DrawingBuffer> create(GraphicsContext3D*, const IntSize&);
- DrawingBuffer(GraphicsContext3D*, const IntSize&);
+ DrawingBuffer(GraphicsContext3D*, const IntSize&, bool multisampleExtensionSupported, bool packedDepthStencilExtensionSupported);
// Platform specific function called after reset() so each platform can do extra work if needed
void didReset();
@@ -100,6 +103,7 @@ private:
RefPtr<GraphicsContext3D> m_context;
IntSize m_size;
bool m_multisampleExtensionSupported;
+ bool m_packedDepthStencilExtensionSupported;
Platform3DObject m_fbo;
Platform3DObject m_colorBuffer;
Platform3DObject m_depthStencilBuffer;
diff --git a/Source/WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm b/Source/WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm
index 89dcb9c..601454e 100644
--- a/Source/WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm
+++ b/Source/WebCore/platform/graphics/gpu/mac/DrawingBufferMac.mm
@@ -36,9 +36,14 @@
namespace WebCore {
-DrawingBuffer::DrawingBuffer(GraphicsContext3D* context, const IntSize& size)
+DrawingBuffer::DrawingBuffer(GraphicsContext3D* context,
+ const IntSize& size,
+ bool multisampleExtensionSupported,
+ bool packedDepthStencilExtensionSupported)
: m_context(context)
, m_size(size)
+ , m_multisampleExtensionSupported(multisampleExtensionSupported)
+ , m_packedDepthStencilExtensionSupported(packedDepthStencilExtensionSupported)
, m_fbo(context->createFramebuffer())
, m_colorBuffer(0)
, m_depthStencilBuffer(0)
@@ -77,21 +82,7 @@ DrawingBuffer::DrawingBuffer(GraphicsContext3D* context, const IntSize& size)
return;
}
- const GraphicsContext3D::Attributes& attributes = context->getContextAttributes();
-
- // Create the stencil and depth buffer if needed
- if (!multisample() && (attributes.stencil || attributes.depth))
- m_depthStencilBuffer = context->createRenderbuffer();
-
- // create a multisample FBO
- if (multisample()) {
- m_multisampleFBO = context->createFramebuffer();
- context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_multisampleFBO);
- m_multisampleColorBuffer = context->createRenderbuffer();
- if (attributes.stencil || attributes.depth)
- m_multisampleDepthStencilBuffer = context->createRenderbuffer();
- }
-
+ createSecondaryBuffers();
reset(size);
}
diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerGWorld.cpp b/Source/WebCore/platform/graphics/gstreamer/GStreamerGWorld.cpp
index d179601..a4b20be 100644
--- a/Source/WebCore/platform/graphics/gstreamer/GStreamerGWorld.cpp
+++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerGWorld.cpp
@@ -43,7 +43,8 @@ gboolean gstGWorldSyncMessageCallback(GstBus* bus, GstMessage* message, gpointer
GStreamerGWorld* gstGWorld = static_cast<GStreamerGWorld*>(data);
- if (gst_structure_has_name(message->structure, "prepare-xwindow-id"))
+ if (gst_structure_has_name(message->structure, "prepare-xwindow-id")
+ || gst_structure_has_name(message->structure, "have-ns-view"))
gstGWorld->setWindowOverlay(message);
return TRUE;
}
diff --git a/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindow.h b/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindow.h
index f2a3ff2..d71e6d3 100644
--- a/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindow.h
+++ b/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindow.h
@@ -25,6 +25,10 @@
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
+#if PLATFORM(MAC)
+#include <wtf/RetainPtr.h>
+#endif
+
typedef struct _GstMessage GstMessage;
namespace WebCore {
@@ -38,13 +42,22 @@ class PlatformVideoWindow : public RefCounted<PlatformVideoWindow> {
void prepareForOverlay(GstMessage*);
+#if !PLATFORM(MAC)
PlatformWidget window() const { return m_window; }
+#else
+ PlatformWidget window() const { return m_window.get(); }
+#endif
unsigned long videoWindowId() const { return m_videoWindowId; }
private:
unsigned long m_videoWindowId;
PlatformWidget m_videoWindow;
+#if !PLATFORM(MAC)
PlatformWidget m_window;
+#else
+ RetainPtr<NSView> m_window;
+#endif
+
};
}
diff --git a/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowMac.mm b/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowMac.mm
new file mode 100644
index 0000000..e98cf9b
--- /dev/null
+++ b/Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowMac.mm
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+#include "config.h"
+#include "PlatformVideoWindow.h"
+
+#if USE(GSTREAMER)
+
+#include <gst/gst.h>
+
+using namespace WebCore;
+
+PlatformVideoWindow::PlatformVideoWindow()
+{
+ m_window.adoptNS([[NSView alloc] init]);
+ m_videoWindowId = reinterpret_cast<unsigned long>(m_window.get());
+}
+
+PlatformVideoWindow::~PlatformVideoWindow()
+{
+ m_videoWindowId = 0;
+}
+
+void PlatformVideoWindow::prepareForOverlay(GstMessage* message)
+{
+ if (gst_structure_has_name(message->structure, "have-ns-view")) {
+ m_videoWindow = static_cast<PlatformWidget>(g_value_get_pointer(gst_structure_get_value(message->structure, "nsview")));
+ ASSERT(m_videoWindow);
+ [m_window.get() addSubview:m_videoWindow];
+ }
+}
+
+#endif // USE(GSTREAMER)
diff --git a/Source/WebCore/platform/graphics/haiku/GraphicsContextHaiku.cpp b/Source/WebCore/platform/graphics/haiku/GraphicsContextHaiku.cpp
index acd431d..4e17f94 100644
--- a/Source/WebCore/platform/graphics/haiku/GraphicsContextHaiku.cpp
+++ b/Source/WebCore/platform/graphics/haiku/GraphicsContextHaiku.cpp
@@ -34,7 +34,6 @@
#include "FontData.h"
#include "NotImplemented.h"
#include "Path.h"
-#include "Pen.h"
#include <wtf/text/CString.h>
#include <GraphicsDefs.h>
#include <Region.h>
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index e237fc0..253cd84 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -496,8 +496,17 @@ void GraphicsContext::fillPath(const Path& path)
{
QPainter* shadowPainter = shadow->beginShadowLayer(this, platformPath.controlPointRect());
if (shadowPainter) {
- shadowPainter->setCompositionMode(QPainter::CompositionMode_Source);
- shadowPainter->fillPath(platformPath, QColor(m_data->shadow.m_color));
+ if (m_state.fillPattern) {
+ AffineTransform affine;
+ shadowPainter->setOpacity(static_cast<qreal>(shadow->m_color.alpha()) / 255);
+ shadowPainter->fillPath(platformPath, QBrush(m_state.fillPattern->createPlatformPattern(affine)));
+ } else if (m_state.fillGradient) {
+ QBrush brush(*m_state.fillGradient->platformGradient());
+ brush.setTransform(m_state.fillGradient->gradientSpaceTransform());
+ shadowPainter->setOpacity(static_cast<qreal>(shadow->m_color.alpha()) / 255);
+ shadowPainter->fillPath(platformPath, brush);
+ } else
+ shadowPainter->fillPath(platformPath, QColor(shadow->m_color));
shadow->endShadowLayer(this);
}
} else {
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
index f31844a..75fb427 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
@@ -20,6 +20,8 @@
#include "config.h"
#include "GraphicsLayerQt.h"
+#if !defined(QT_NO_GRAPHICSVIEW)
+
#include "CurrentTime.h"
#include "FloatRect.h"
#include "GraphicsContext.h"
@@ -1375,6 +1377,7 @@ static inline qreal applyTimingFunction(const TimingFunction* timingFunction, qr
// Helper functions to safely get a value out of WebCore's AnimationValue*.
+#ifndef QT_NO_ANIMATION
static void webkitAnimationToQtAnimationValue(const AnimationValue* animationValue, TransformOperations& transformOperations)
{
transformOperations = TransformOperations();
@@ -1390,7 +1393,6 @@ static void webkitAnimationToQtAnimationValue(const AnimationValue* animationVal
realValue = animationValue ? static_cast<const FloatAnimationValue*>(animationValue)->value() : 0;
}
-#ifndef QT_NO_ANIMATION
// We put a bit of the functionality in a base class to allow casting and to save some code size.
class AnimationQtBase : public QAbstractAnimation {
@@ -1777,3 +1779,6 @@ void GraphicsLayerQt::resumeAnimations()
}
#include <GraphicsLayerQt.moc>
+
+
+#endif // QT_NO_GRAPHICSVIEW
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.h b/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.h
index b1692d2..8027143 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.h
+++ b/Source/WebCore/platform/graphics/qt/GraphicsLayerQt.h
@@ -26,6 +26,8 @@
#include "GraphicsLayer.h"
#include "GraphicsLayerClient.h"
+#if !defined(QT_NO_GRAPHICSVIEW)
+
namespace WebCore {
class GraphicsLayerQtImpl;
@@ -92,4 +94,5 @@ private:
};
}
+#endif
#endif // GraphicsLayerQt_h
diff --git a/Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
index 2bbb9ce..71352e4 100644
--- a/Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
@@ -131,7 +131,7 @@ String ImageDecoderQt::filenameExtension() const
return String(m_format.constData(), m_format.length());
};
-RGBA32Buffer* ImageDecoderQt::frameBufferAtIndex(size_t index)
+ImageFrame* ImageDecoderQt::frameBufferAtIndex(size_t index)
{
// In case the ImageDecoderQt got recreated we don't know
// yet how many images we are going to have and need to
@@ -145,8 +145,8 @@ RGBA32Buffer* ImageDecoderQt::frameBufferAtIndex(size_t index)
if (index >= count)
return 0;
- RGBA32Buffer& frame = m_frameBufferCache[index];
- if (frame.status() != RGBA32Buffer::FrameComplete && m_reader)
+ ImageFrame& frame = m_frameBufferCache[index];
+ if (frame.status() != ImageFrame::FrameComplete && m_reader)
internalReadImage(index);
return &frame;
}
@@ -185,7 +185,7 @@ void ImageDecoderQt::internalReadImage(size_t frameIndex)
// Attempt to return some memory
for (int i = 0; i < m_frameBufferCache.size(); ++i) {
- if (m_frameBufferCache[i].status() != RGBA32Buffer::FrameComplete)
+ if (m_frameBufferCache[i].status() != ImageFrame::FrameComplete)
return;
}
@@ -211,10 +211,10 @@ bool ImageDecoderQt::internalHandleCurrentImage(size_t frameIndex)
return false;
}
- // now into the RGBA32Buffer - even if the image is not
- RGBA32Buffer* const buffer = &m_frameBufferCache[frameIndex];
+ // now into the ImageFrame - even if the image is not
+ ImageFrame* const buffer = &m_frameBufferCache[frameIndex];
buffer->setRect(m_reader->currentImageRect());
- buffer->setStatus(RGBA32Buffer::FrameComplete);
+ buffer->setStatus(ImageFrame::FrameComplete);
buffer->setDuration(m_reader->nextImageDelay());
buffer->setPixmap(pixmap);
return true;
diff --git a/Source/WebCore/platform/graphics/qt/ImageDecoderQt.h b/Source/WebCore/platform/graphics/qt/ImageDecoderQt.h
index 23fb79a..bccb5be 100644
--- a/Source/WebCore/platform/graphics/qt/ImageDecoderQt.h
+++ b/Source/WebCore/platform/graphics/qt/ImageDecoderQt.h
@@ -48,7 +48,7 @@ public:
virtual bool isSizeAvailable();
virtual size_t frameCount();
virtual int repetitionCount() const;
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
virtual String filenameExtension() const;
diff --git a/Source/WebCore/platform/graphics/qt/ImageQt.cpp b/Source/WebCore/platform/graphics/qt/ImageQt.cpp
index 49afd29..58f82ef 100644
--- a/Source/WebCore/platform/graphics/qt/ImageQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/ImageQt.cpp
@@ -68,6 +68,10 @@ static QPixmap loadResourcePixmap(const char *name)
pixmap = QWebSettings::webGraphic(QWebSettings::DeleteButtonGraphic);
else if (!qstrcmp(name, "inputSpeech"))
pixmap = QWebSettings::webGraphic(QWebSettings::InputSpeechButtonGraphic);
+ else if (!qstrcmp(name, "searchCancelButton"))
+ pixmap = QWebSettings::webGraphic(QWebSettings::SearchCancelButtonGraphic);
+ else if (!qstrcmp(name, "searchCancelButtonPressed"))
+ pixmap = QWebSettings::webGraphic(QWebSettings::SearchCancelButtonPressedGraphic);
return pixmap;
}
@@ -121,8 +125,30 @@ void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const
if (!pixmap.hasAlpha() && p->compositionMode() == QPainter::CompositionMode_SourceOver)
p->setCompositionMode(QPainter::CompositionMode_Source);
- /* Translate the coordinates as phase is not in world matrix coordinate space but the tile rect origin is. */
QTransform transform(patternTransform);
+
+ // If this would draw more than one scaled tile, we scale the pixmap first and then use the result to draw.
+ if (transform.type() == QTransform::TxScale) {
+ QRectF tileRectInTargetCoords = (transform * QTransform().translate(phase.x(), phase.y())).mapRect(tr);
+
+ bool tileWillBePaintedOnlyOnce = tileRectInTargetCoords.contains(dr);
+ if (!tileWillBePaintedOnlyOnce) {
+ QSizeF scaledSize(float(pixmap.width()) * transform.m11(), float(pixmap.height()) * transform.m22());
+ QPixmap scaledPixmap(scaledSize.toSize());
+ if (pixmap.hasAlpha())
+ scaledPixmap.fill(Qt::transparent);
+ {
+ QPainter painter(&scaledPixmap);
+ painter.setCompositionMode(QPainter::CompositionMode_Source);
+ painter.setRenderHints(p->renderHints());
+ painter.drawPixmap(QRect(0, 0, scaledPixmap.width(), scaledPixmap.height()), pixmap);
+ }
+ pixmap = scaledPixmap;
+ transform = QTransform::fromTranslate(transform.dx(), transform.dy());
+ }
+ }
+
+ /* Translate the coordinates as phase is not in world matrix coordinate space but the tile rect origin is. */
transform *= QTransform().translate(phase.x(), phase.y());
transform.translate(tr.x(), tr.y());
diff --git a/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp b/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
index dd4b6e6..be6f732 100644
--- a/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.cpp
@@ -108,7 +108,7 @@ MediaPlayerPrivateQt::MediaPlayerPrivateQt(MediaPlayer* player)
, m_queuedSeek(-1)
, m_preload(MediaPlayer::Auto)
{
- m_mediaPlayer->bind(m_videoItem);
+ m_mediaPlayer->setVideoOutput(m_videoItem);
m_videoScene->addItem(m_videoItem);
// Signal Handlers
@@ -587,6 +587,22 @@ IntSize MediaPlayerPrivateQt::naturalSize() const
return m_naturalSize;
}
+void MediaPlayerPrivateQt::removeVideoItem()
+{
+ m_oldNaturalSize = m_naturalSize;
+ m_mediaPlayer->setVideoOutput(static_cast<QGraphicsVideoItem*>(0));
+ m_videoScene->removeItem(m_videoItem);
+}
+
+void MediaPlayerPrivateQt::restoreVideoItem()
+{
+ m_mediaPlayer->setVideoOutput(m_videoItem);
+ m_videoScene->addItem(m_videoItem);
+ // FIXME: a qtmobility bug, need to reset the size when restore the videoitem, otherwise the size is 0
+ // http://bugreports.qt.nokia.com/browse/QTMOBILITY-971
+ nativeSizeChanged(QSize(m_oldNaturalSize));
+}
+
void MediaPlayerPrivateQt::paint(GraphicsContext* context, const IntRect& rect)
{
#if USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h b/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
index 93c9d1c..2621432 100644
--- a/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
+++ b/Source/WebCore/platform/graphics/qt/MediaPlayerPrivateQt.h
@@ -90,7 +90,7 @@ public:
void paint(GraphicsContext*, const IntRect&);
- bool supportsFullscreen() const { return false; }
+ bool supportsFullscreen() const { return true; }
#if USE(ACCELERATED_COMPOSITING)
#if USE(TEXTURE_MAPPER)
@@ -108,6 +108,11 @@ public:
#endif
virtual PlatformMedia platformMedia() const;
+
+ QMediaPlayer* mediaPlayer() const { return m_mediaPlayer; }
+ void removeVideoItem();
+ void restoreVideoItem();
+
private slots:
void mediaStatusChanged(QMediaPlayer::MediaStatus);
void handleError(QMediaPlayer::Error);
@@ -142,6 +147,7 @@ private:
IntSize m_currentSize;
IntSize m_naturalSize;
+ IntSize m_oldNaturalSize;
bool m_isVisible;
bool m_isSeeking;
bool m_composited;
diff --git a/Source/WebCore/platform/graphics/skia/BitmapImageSingleFrameSkia.h b/Source/WebCore/platform/graphics/skia/BitmapImageSingleFrameSkia.h
index 553f203..974f126 100644
--- a/Source/WebCore/platform/graphics/skia/BitmapImageSingleFrameSkia.h
+++ b/Source/WebCore/platform/graphics/skia/BitmapImageSingleFrameSkia.h
@@ -82,6 +82,8 @@ private:
explicit BitmapImageSingleFrameSkia(const SkBitmap&);
};
+FloatRect normalizeRect(const FloatRect&);
+
} // namespace WebCore
#endif // BitmapImageSingleFrameSkia_h
diff --git a/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp b/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
index a9f6d3c..b65b5bd 100644
--- a/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
+++ b/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
@@ -114,11 +114,12 @@ void ImageBuffer::draw(GraphicsContext* context, ColorSpace styleColorSpace, con
if (context->platformContext()->canAccelerate()) {
DrawingBuffer* sourceDrawingBuffer = m_data.m_platformContext.gpuCanvas()->drawingBuffer();
unsigned sourceTexture = static_cast<unsigned>(sourceDrawingBuffer->platformColorBuffer());
- FloatRect destRectFlipped(destRect);
- destRectFlipped.setY(destRect.y() + destRect.height());
- destRectFlipped.setHeight(-destRect.height());
+ FloatRect destRectNormalized(normalizeRect(destRect));
+ FloatRect srcRectFlipped(normalizeRect(srcRect));
+ srcRectFlipped.setY(m_size.height() - srcRect.y());
+ srcRectFlipped.setHeight(-srcRect.height());
context->platformContext()->prepareForHardwareDraw();
- context->platformContext()->gpuCanvas()->drawTexturedRect(sourceTexture, m_size, srcRect, destRectFlipped, styleColorSpace, op);
+ context->platformContext()->gpuCanvas()->drawTexturedRect(sourceTexture, m_size, srcRectFlipped, destRectNormalized, styleColorSpace, op);
return;
}
m_data.m_platformContext.syncSoftwareCanvas();
diff --git a/Source/WebCore/platform/graphics/skia/ImageSkia.cpp b/Source/WebCore/platform/graphics/skia/ImageSkia.cpp
index c7fa6f4..91a4e4f 100644
--- a/Source/WebCore/platform/graphics/skia/ImageSkia.cpp
+++ b/Source/WebCore/platform/graphics/skia/ImageSkia.cpp
@@ -298,7 +298,7 @@ static void TransformDimensions(const SkMatrix& matrix, float srcWidth, float sr
}
// A helper method for translating negative width and height values.
-static FloatRect normalizeRect(const FloatRect& rect)
+FloatRect normalizeRect(const FloatRect& rect)
{
FloatRect norm = rect;
if (norm.width() < 0) {
diff --git a/Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp b/Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp
index cbe38aa..7abe2eb 100644
--- a/Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp
+++ b/Source/WebCore/platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp
@@ -80,6 +80,10 @@ void MediaPlayerPrivateFullscreenWindow::createWindow(HWND parentHwnd)
parentHwnd, 0, WebCore::instanceHandle(), this);
ASSERT(IsWindow(m_hwnd));
+#if USE(ACCELERATED_COMPOSITING)
+ m_layerRenderer->setHostWindow(m_hwnd);
+#endif
+
::SetFocus(m_hwnd);
}
@@ -139,17 +143,10 @@ LRESULT MediaPlayerPrivateFullscreenWindow::wndProc(HWND hWnd, UINT message, WPA
switch (message) {
case WM_CREATE:
m_hwnd = hWnd;
-#if USE(ACCELERATED_COMPOSITING)
- m_layerRenderer->setHostWindow(m_hwnd);
- m_layerRenderer->createRenderer();
- if (m_rootChild)
- m_layerRenderer->setNeedsDisplay();
-#endif
break;
case WM_DESTROY:
m_hwnd = 0;
#if USE(ACCELERATED_COMPOSITING)
- m_layerRenderer->destroyRenderer();
m_layerRenderer->setHostWindow(0);
#endif
break;
@@ -169,7 +166,8 @@ LRESULT MediaPlayerPrivateFullscreenWindow::wndProc(HWND hWnd, UINT message, WPA
break;
case WM_PAINT:
#if USE(ACCELERATED_COMPOSITING)
- m_layerRenderer->renderSoon();
+ m_layerRenderer->paint();
+ ::ValidateRect(m_hwnd, 0);
#endif
break;
}
diff --git a/Source/WebCore/platform/graphics/win/WKCACFLayer.cpp b/Source/WebCore/platform/graphics/win/WKCACFLayer.cpp
deleted file mode 100644
index a8714e3..0000000
--- a/Source/WebCore/platform/graphics/win/WKCACFLayer.cpp
+++ /dev/null
@@ -1,572 +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 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"
-
-#if USE(ACCELERATED_COMPOSITING)
-
-#include "WKCACFLayer.h"
-
-#include "WKCACFLayerRenderer.h"
-#include <WebKitSystemInterface/WebKitSystemInterface.h>
-#include <stdio.h>
-#include <wtf/CurrentTime.h>
-#include <wtf/text/CString.h>
-
-namespace WebCore {
-
-using namespace std;
-
-#ifndef NDEBUG
-void WKCACFLayer::internalCheckLayerConsistency()
-{
- ASSERT(layer());
- size_t n = sublayerCount();
- for (size_t i = 0; i < n; ++i) {
- // This will ASSERT in internalSublayerAtIndex if this entry doesn't have proper user data
- WKCACFLayer* sublayer = internalSublayerAtIndex(i);
-
- // Make sure we don't have any null entries in the list
- ASSERT(sublayer);
-
- // Make sure the each layer has a corresponding CACFLayer
- ASSERT(sublayer->layer());
- }
-}
-#endif
-
-static void displayCallback(CACFLayerRef layer, CGContextRef context)
-{
- ASSERT_ARG(layer, WKCACFLayer::layer(layer));
- WKCACFLayer::layer(layer)->drawInContext(context);
-}
-
-static CFStringRef toCACFLayerType(WKCACFLayer::LayerType type)
-{
- switch (type) {
- case WKCACFLayer::Layer: return kCACFLayer;
- case WKCACFLayer::TransformLayer: return kCACFTransformLayer;
- default: return 0;
- }
-}
-
-static CFStringRef toCACFContentsGravityType(WKCACFLayer::ContentsGravityType type)
-{
- switch (type) {
- case WKCACFLayer::Center: return kCACFGravityCenter;
- case WKCACFLayer::Top: return kCACFGravityTop;
- case WKCACFLayer::Bottom: return kCACFGravityBottom;
- case WKCACFLayer::Left: return kCACFGravityLeft;
- case WKCACFLayer::Right: return kCACFGravityRight;
- case WKCACFLayer::TopLeft: return kCACFGravityTopLeft;
- case WKCACFLayer::TopRight: return kCACFGravityTopRight;
- case WKCACFLayer::BottomLeft: return kCACFGravityBottomLeft;
- case WKCACFLayer::BottomRight: return kCACFGravityBottomRight;
- case WKCACFLayer::Resize: return kCACFGravityResize;
- case WKCACFLayer::ResizeAspect: return kCACFGravityResizeAspect;
- case WKCACFLayer::ResizeAspectFill: return kCACFGravityResizeAspectFill;
- default: return 0;
- }
-}
-
-static WKCACFLayer::ContentsGravityType fromCACFContentsGravityType(CFStringRef string)
-{
- if (CFEqual(string, kCACFGravityTop))
- return WKCACFLayer::Top;
-
- if (CFEqual(string, kCACFGravityBottom))
- return WKCACFLayer::Bottom;
-
- if (CFEqual(string, kCACFGravityLeft))
- return WKCACFLayer::Left;
-
- if (CFEqual(string, kCACFGravityRight))
- return WKCACFLayer::Right;
-
- if (CFEqual(string, kCACFGravityTopLeft))
- return WKCACFLayer::TopLeft;
-
- if (CFEqual(string, kCACFGravityTopRight))
- return WKCACFLayer::TopRight;
-
- if (CFEqual(string, kCACFGravityBottomLeft))
- return WKCACFLayer::BottomLeft;
-
- if (CFEqual(string, kCACFGravityBottomRight))
- return WKCACFLayer::BottomRight;
-
- if (CFEqual(string, kCACFGravityResize))
- return WKCACFLayer::Resize;
-
- if (CFEqual(string, kCACFGravityResizeAspect))
- return WKCACFLayer::ResizeAspect;
-
- if (CFEqual(string, kCACFGravityResizeAspectFill))
- return WKCACFLayer::ResizeAspectFill;
-
- return WKCACFLayer::Center;
-}
-
-static CFStringRef toCACFFilterType(WKCACFLayer::FilterType type)
-{
- switch (type) {
- case WKCACFLayer::Linear: return kCACFFilterLinear;
- case WKCACFLayer::Nearest: return kCACFFilterNearest;
- case WKCACFLayer::Trilinear: return kCACFFilterTrilinear;
- default: return 0;
- }
-}
-
-static WKCACFLayer::FilterType fromCACFFilterType(CFStringRef string)
-{
- if (CFEqual(string, kCACFFilterNearest))
- return WKCACFLayer::Nearest;
-
- if (CFEqual(string, kCACFFilterTrilinear))
- return WKCACFLayer::Trilinear;
-
- return WKCACFLayer::Linear;
-}
-
-PassRefPtr<WKCACFLayer> WKCACFLayer::create(LayerType type)
-{
- if (!WKCACFLayerRenderer::acceleratedCompositingAvailable())
- return 0;
- return adoptRef(new WKCACFLayer(type));
-}
-
-// FIXME: It might be good to have a way of ensuring that all WKCACFLayers eventually
-// get destroyed in debug builds. A static counter could accomplish this pretty easily.
-
-WKCACFLayer::WKCACFLayer(LayerType type)
- : m_layer(AdoptCF, CACFLayerCreate(toCACFLayerType(type)))
- , m_layoutClient(0)
- , m_needsDisplayOnBoundsChange(false)
-{
- CACFLayerSetUserData(layer(), this);
- CACFLayerSetDisplayCallback(layer(), displayCallback);
-}
-
-WKCACFLayer::~WKCACFLayer()
-{
- // Our superlayer should be holding a reference to us, so there should be no way for us to be destroyed while we still have a superlayer.
- ASSERT(!superlayer());
-
- // Get rid of the children so we don't have any dangling references around
- removeAllSublayers();
-
-#ifndef NDEBUG
- CACFLayerSetUserData(layer(), reinterpret_cast<void*>(0xDEADBEEF));
-#else
- CACFLayerSetUserData(layer(), 0);
-#endif
- CACFLayerSetDisplayCallback(layer(), 0);
-}
-
-void WKCACFLayer::becomeRootLayerForContext(WKCACFContext* context)
-{
- wkCACFContextSetLayer(context, layer());
- setNeedsCommit();
-}
-
-void WKCACFLayer::setNeedsCommit()
-{
- WKCACFLayer* root = rootLayer();
-
- // Call setNeedsRender on the root layer, which will cause a render to
- // happen in WKCACFLayerRenderer
- root->setNeedsRender();
-}
-
-bool WKCACFLayer::isTransformLayer() const
-{
- return CACFLayerGetClass(layer()) == kCACFTransformLayer;
-}
-
-void WKCACFLayer::addSublayer(PassRefPtr<WKCACFLayer> sublayer)
-{
- insertSublayer(sublayer, sublayerCount());
-}
-
-void WKCACFLayer::internalInsertSublayer(PassRefPtr<WKCACFLayer> sublayer, size_t index)
-{
- index = min(index, sublayerCount() + 1);
- sublayer->removeFromSuperlayer();
- CACFLayerInsertSublayer(layer(), sublayer->layer(), index);
- setNeedsCommit();
- checkLayerConsistency();
-}
-
-void WKCACFLayer::insertSublayerAboveLayer(PassRefPtr<WKCACFLayer> sublayer, const WKCACFLayer* reference)
-{
- if (!reference) {
- insertSublayer(sublayer, 0);
- return;
- }
-
- int referenceIndex = internalIndexOfSublayer(reference);
- if (referenceIndex == -1) {
- addSublayer(sublayer);
- return;
- }
-
- insertSublayer(sublayer, referenceIndex + 1);
-}
-
-void WKCACFLayer::insertSublayerBelowLayer(PassRefPtr<WKCACFLayer> sublayer, const WKCACFLayer* reference)
-{
- if (!reference) {
- insertSublayer(sublayer, 0);
- return;
- }
-
- int referenceIndex = internalIndexOfSublayer(reference);
- if (referenceIndex == -1) {
- addSublayer(sublayer);
- return;
- }
-
- insertSublayer(sublayer, referenceIndex);
-}
-
-void WKCACFLayer::replaceSublayer(WKCACFLayer* reference, PassRefPtr<WKCACFLayer> newLayer)
-{
- ASSERT_ARG(reference, reference);
- ASSERT_ARG(reference, reference->superlayer() == this);
-
- if (reference == newLayer)
- return;
-
- int referenceIndex = internalIndexOfSublayer(reference);
- ASSERT(referenceIndex != -1);
- if (referenceIndex == -1)
- return;
-
- reference->removeFromSuperlayer();
-
- if (newLayer) {
- newLayer->removeFromSuperlayer();
- insertSublayer(newLayer, referenceIndex);
- }
-}
-
-size_t WKCACFLayer::internalSublayerCount() const
-{
- CFArrayRef sublayers = CACFLayerGetSublayers(layer());
- return sublayers ? CFArrayGetCount(sublayers) : 0;
-}
-
-void WKCACFLayer::adoptSublayers(WKCACFLayer* source)
-{
- // We will use setSublayers() because it properly nulls
- // out the superlayer pointer.
- Vector<RefPtr<WKCACFLayer> > sublayers;
- size_t n = source->sublayerCount();
-
- for (size_t i = 0; i < n; ++i)
- sublayers.append(source->internalSublayerAtIndex(i));
-
- setSublayers(sublayers);
- source->checkLayerConsistency();
-}
-
-void WKCACFLayer::removeFromSuperlayer()
-{
- WKCACFLayer* superlayer = this->superlayer();
- CACFLayerRemoveFromSuperlayer(layer());
- checkLayerConsistency();
-
- if (superlayer)
- superlayer->setNeedsCommit();
-}
-
-WKCACFLayer* WKCACFLayer::internalSublayerAtIndex(int index) const
-{
- CFArrayRef sublayers = CACFLayerGetSublayers(layer());
- if (!sublayers || index < 0 || CFArrayGetCount(sublayers) <= index)
- return 0;
-
- return layer(static_cast<CACFLayerRef>(const_cast<void*>(CFArrayGetValueAtIndex(sublayers, index))));
-}
-
-int WKCACFLayer::internalIndexOfSublayer(const WKCACFLayer* reference)
-{
- CACFLayerRef ref = reference->layer();
- if (!ref)
- return -1;
-
- CFArrayRef sublayers = CACFLayerGetSublayers(layer());
- if (!sublayers)
- return -1;
-
- size_t n = CFArrayGetCount(sublayers);
-
- for (size_t i = 0; i < n; ++i)
- if (CFArrayGetValueAtIndex(sublayers, i) == ref)
- return i;
-
- return -1;
-}
-
-WKCACFLayer* WKCACFLayer::ancestorOrSelfWithSuperlayer(WKCACFLayer* superlayer) const
-{
- WKCACFLayer* layer = const_cast<WKCACFLayer*>(this);
- for (WKCACFLayer* ancestor = this->superlayer(); ancestor; layer = ancestor, ancestor = ancestor->superlayer()) {
- if (ancestor == superlayer)
- return layer;
- }
- return 0;
-}
-
-void WKCACFLayer::setBounds(const CGRect& rect)
-{
- if (CGRectEqualToRect(rect, bounds()))
- return;
-
- CACFLayerSetBounds(layer(), rect);
- setNeedsCommit();
-
- if (m_needsDisplayOnBoundsChange)
- setNeedsDisplay();
-
- if (m_layoutClient)
- setNeedsLayout();
-}
-
-void WKCACFLayer::setFrame(const CGRect& rect)
-{
- CGRect oldFrame = frame();
- if (CGRectEqualToRect(rect, oldFrame))
- return;
-
- CACFLayerSetFrame(layer(), rect);
- setNeedsCommit();
-
- if (m_needsDisplayOnBoundsChange && !CGSizeEqualToSize(rect.size, oldFrame.size))
- setNeedsDisplay();
-
- if (m_layoutClient)
- setNeedsLayout();
-}
-
-void WKCACFLayer::setContentsGravity(ContentsGravityType type)
-{
- CACFLayerSetContentsGravity(layer(), toCACFContentsGravityType(type));
- setNeedsCommit();
-}
-
-WKCACFLayer::ContentsGravityType WKCACFLayer::contentsGravity() const
-{
- return fromCACFContentsGravityType(CACFLayerGetContentsGravity(layer()));
-}
-
-void WKCACFLayer::setMagnificationFilter(FilterType type)
-{
- CACFLayerSetMagnificationFilter(layer(), toCACFFilterType(type));
- setNeedsCommit();
-}
-
-WKCACFLayer::FilterType WKCACFLayer::magnificationFilter() const
-{
- return fromCACFFilterType(CACFLayerGetMagnificationFilter(layer()));
-}
-
-void WKCACFLayer::setMinificationFilter(FilterType type)
-{
- CACFLayerSetMinificationFilter(layer(), toCACFFilterType(type));
- setNeedsCommit();
-}
-
-WKCACFLayer::FilterType WKCACFLayer::minificationFilter() const
-{
- return fromCACFFilterType(CACFLayerGetMinificationFilter(layer()));
-}
-
-WKCACFLayer* WKCACFLayer::rootLayer() const
-{
- WKCACFLayer* layer = const_cast<WKCACFLayer*>(this);
- for (WKCACFLayer* superlayer = layer->superlayer(); superlayer; layer = superlayer, superlayer = superlayer->superlayer()) { }
- return layer;
-}
-
-void WKCACFLayer::internalRemoveAllSublayers()
-{
- CACFLayerSetSublayers(layer(), 0);
- setNeedsCommit();
-}
-
-void WKCACFLayer::internalSetSublayers(const Vector<RefPtr<WKCACFLayer> >& sublayers)
-{
- // Remove all the current sublayers and add the passed layers
- CACFLayerSetSublayers(layer(), 0);
-
- // Perform removeFromSuperLayer in a separate pass. CACF requires superlayer to
- // be null or CACFLayerInsertSublayer silently fails.
- for (size_t i = 0; i < sublayers.size(); i++)
- CACFLayerRemoveFromSuperlayer(sublayers[i]->layer());
-
- for (size_t i = 0; i < sublayers.size(); i++)
- CACFLayerInsertSublayer(layer(), sublayers[i]->layer(), i);
-
- setNeedsCommit();
-}
-
-WKCACFLayer* WKCACFLayer::superlayer() const
-{
- CACFLayerRef super = CACFLayerGetSuperlayer(layer());
- if (!super)
- return 0;
- return WKCACFLayer::layer(super);
-}
-
-void WKCACFLayer::internalSetNeedsDisplay(const CGRect* dirtyRect)
-{
- CACFLayerSetNeedsDisplay(layer(), dirtyRect);
-}
-
-void WKCACFLayer::setLayoutClient(WKCACFLayerLayoutClient* layoutClient)
-{
- if (layoutClient == m_layoutClient)
- return;
-
- m_layoutClient = layoutClient;
- CACFLayerSetLayoutCallback(layer(), m_layoutClient ? layoutSublayersProc : 0);
-}
-
-void WKCACFLayer::layoutSublayersProc(CACFLayerRef caLayer)
-{
- WKCACFLayer* layer = WKCACFLayer::layer(caLayer);
- if (layer && layer->m_layoutClient)
- layer->m_layoutClient->layoutSublayersOfLayer(layer);
-}
-
-#ifndef NDEBUG
-static void printIndent(int indent)
-{
- for ( ; indent > 0; --indent)
- fprintf(stderr, " ");
-}
-
-static void printTransform(const CATransform3D& transform)
-{
- fprintf(stderr, "[%g %g %g %g; %g %g %g %g; %g %g %g %g; %g %g %g %g]",
- transform.m11, transform.m12, transform.m13, transform.m14,
- transform.m21, transform.m22, transform.m23, transform.m24,
- transform.m31, transform.m32, transform.m33, transform.m34,
- transform.m41, transform.m42, transform.m43, transform.m44);
-}
-
-void WKCACFLayer::printTree() const
-{
- // Print heading info
- CGRect rootBounds = bounds();
- fprintf(stderr, "\n\n** Render tree at time %g (bounds %g, %g %gx%g) **\n\n",
- currentTime(), rootBounds.origin.x, rootBounds.origin.y, rootBounds.size.width, rootBounds.size.height);
-
- // Print layer tree from the root
- printLayer(0);
-}
-
-void WKCACFLayer::printLayer(int indent) const
-{
- CGPoint layerPosition = position();
- CGPoint layerAnchorPoint = anchorPoint();
- CGRect layerBounds = bounds();
- printIndent(indent);
- fprintf(stderr, "(%s [%g %g %g] [%g %g %g %g] [%g %g %g] superlayer=%p\n",
- isTransformLayer() ? "transform-layer" : "layer",
- layerPosition.x, layerPosition.y, zPosition(),
- layerBounds.origin.x, layerBounds.origin.y, layerBounds.size.width, layerBounds.size.height,
- layerAnchorPoint.x, layerAnchorPoint.y, anchorPointZ(), superlayer());
-
- // Print name if needed
- String layerName = name();
- if (!layerName.isEmpty()) {
- printIndent(indent + 1);
- fprintf(stderr, "(name %s)\n", layerName.utf8().data());
- }
-
- // Print masksToBounds if needed
- bool layerMasksToBounds = masksToBounds();
- if (layerMasksToBounds) {
- printIndent(indent + 1);
- fprintf(stderr, "(masksToBounds true)\n");
- }
-
- // Print opacity if needed
- float layerOpacity = opacity();
- if (layerOpacity != 1) {
- printIndent(indent + 1);
- fprintf(stderr, "(opacity %hf)\n", layerOpacity);
- }
-
- // Print sublayerTransform if needed
- CATransform3D layerTransform = sublayerTransform();
- if (!CATransform3DIsIdentity(layerTransform)) {
- printIndent(indent + 1);
- fprintf(stderr, "(sublayerTransform ");
- printTransform(layerTransform);
- fprintf(stderr, ")\n");
- }
-
- // Print transform if needed
- layerTransform = transform();
- if (!CATransform3DIsIdentity(layerTransform)) {
- printIndent(indent + 1);
- fprintf(stderr, "(transform ");
- printTransform(layerTransform);
- fprintf(stderr, ")\n");
- }
-
- // Print contents if needed
- CFTypeRef layerContents = contents();
- if (layerContents) {
- if (CFGetTypeID(layerContents) == CGImageGetTypeID()) {
- CGImageRef imageContents = static_cast<CGImageRef>(const_cast<void*>(layerContents));
- printIndent(indent + 1);
- fprintf(stderr, "(contents (image [%d %d]))\n",
- CGImageGetWidth(imageContents), CGImageGetHeight(imageContents));
- }
- }
-
- // Print sublayers if needed
- int n = sublayerCount();
- if (n > 0) {
- printIndent(indent + 1);
- fprintf(stderr, "(sublayers\n");
- for (int i = 0; i < n; ++i)
- internalSublayerAtIndex(i)->printLayer(indent + 2);
-
- printIndent(indent + 1);
- fprintf(stderr, ")\n");
- }
-
- printIndent(indent);
- fprintf(stderr, ")\n");
-}
-#endif // #ifndef NDEBUG
-}
-
-#endif // USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/platform/graphics/win/WKCACFLayer.h b/Source/WebCore/platform/graphics/win/WKCACFLayer.h
deleted file mode 100644
index 4c6639a..0000000
--- a/Source/WebCore/platform/graphics/win/WKCACFLayer.h
+++ /dev/null
@@ -1,299 +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 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 WKCACFLayer_h
-#define WKCACFLayer_h
-
-#if USE(ACCELERATED_COMPOSITING)
-
-#include <wtf/RefCounted.h>
-
-#include <QuartzCore/CACFLayer.h>
-#include <QuartzCore/CACFVector.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RetainPtr.h>
-#include <wtf/Vector.h>
-#include <wtf/text/StringHash.h>
-
-#include "GraphicsContext.h"
-#include "PlatformString.h"
-#include "TransformationMatrix.h"
-
-struct WKCACFContext;
-
-namespace WebCore {
-
-class WKCACFLayer;
-
-class WKCACFLayerLayoutClient {
-public:
- virtual void layoutSublayersOfLayer(WKCACFLayer*) = 0;
-protected:
- virtual ~WKCACFLayerLayoutClient() {}
-};
-
-class WKCACFLayer : public RefCounted<WKCACFLayer> {
-public:
- enum LayerType { Layer, TransformLayer };
- enum FilterType { Linear, Nearest, Trilinear };
- enum ContentsGravityType { Center, Top, Bottom, Left, Right, TopLeft, TopRight,
- BottomLeft, BottomRight, Resize, ResizeAspect, ResizeAspectFill };
-
- static PassRefPtr<WKCACFLayer> create(LayerType);
- static WKCACFLayer* layer(CACFLayerRef layer)
- {
- ASSERT(CACFLayerGetUserData(layer) != reinterpret_cast<void*>(0xDEADBEEF));
- return static_cast<WKCACFLayer*>(CACFLayerGetUserData(layer));
- }
-
- virtual ~WKCACFLayer();
-
- virtual void setNeedsRender() { }
-
- virtual void drawInContext(PlatformGraphicsContext*) { }
-
- void setLayoutClient(WKCACFLayerLayoutClient*);
- WKCACFLayerLayoutClient* layoutClient() const { return m_layoutClient; }
- void setNeedsLayout() { CACFLayerSetNeedsLayout(layer()); }
-
- void setNeedsDisplay(const CGRect* dirtyRect = 0)
- {
- internalSetNeedsDisplay(dirtyRect);
- setNeedsCommit();
- }
-
- // Makes this layer the root when the passed context is rendered
- void becomeRootLayerForContext(WKCACFContext*);
-
- static RetainPtr<CFTypeRef> cfValue(float value) { return RetainPtr<CFTypeRef>(AdoptCF, CFNumberCreate(0, kCFNumberFloat32Type, &value)); }
- static RetainPtr<CFTypeRef> cfValue(const TransformationMatrix& value)
- {
- CATransform3D t;
- t.m11 = value.m11();
- t.m12 = value.m12();
- t.m13 = value.m13();
- t.m14 = value.m14();
- t.m21 = value.m21();
- t.m22 = value.m22();
- t.m23 = value.m23();
- t.m24 = value.m24();
- t.m31 = value.m31();
- t.m32 = value.m32();
- t.m33 = value.m33();
- t.m34 = value.m34();
- t.m41 = value.m41();
- t.m42 = value.m42();
- t.m43 = value.m43();
- t.m44 = value.m44();
- return RetainPtr<CFTypeRef>(AdoptCF, CACFVectorCreateTransform(t));
- }
- static RetainPtr<CFTypeRef> cfValue(const FloatPoint& value)
- {
- CGPoint p;
- p.x = value.x(); p.y = value.y();
- return RetainPtr<CFTypeRef>(AdoptCF, CACFVectorCreatePoint(p));
- }
- static RetainPtr<CFTypeRef> cfValue(const FloatRect& rect)
- {
- CGRect r;
- r.origin.x = rect.x();
- r.origin.y = rect.y();
- r.size.width = rect.width();
- r.size.height = rect.height();
- CGFloat v[4] = { CGRectGetMinX(r), CGRectGetMinY(r), CGRectGetMaxX(r), CGRectGetMaxY(r) };
- return RetainPtr<CFTypeRef>(AdoptCF, CACFVectorCreate(4, v));
- }
- static RetainPtr<CFTypeRef> cfValue(const Color& color)
- {
- return RetainPtr<CFTypeRef>(AdoptCF, CGColorCreateGenericRGB(color.red(), color.green(), color.blue(), color.alpha()));
- }
-
- bool isTransformLayer() const;
-
- void addSublayer(PassRefPtr<WKCACFLayer> sublayer);
- void insertSublayerAboveLayer(PassRefPtr<WKCACFLayer>, const WKCACFLayer* reference);
- void insertSublayerBelowLayer(PassRefPtr<WKCACFLayer>, const WKCACFLayer* reference);
- void replaceSublayer(WKCACFLayer* reference, PassRefPtr<WKCACFLayer>);
- void adoptSublayers(WKCACFLayer* source);
-
- void removeAllSublayers() { internalRemoveAllSublayers(); }
- void setSublayers(const Vector<RefPtr<WKCACFLayer> >& sublayers)
- {
- internalSetSublayers(sublayers);
- checkLayerConsistency();
- }
-
- void insertSublayer(PassRefPtr<WKCACFLayer> layer, size_t index) { internalInsertSublayer(layer, index); }
-
- size_t sublayerCount() const { return internalSublayerCount(); }
-
- void removeFromSuperlayer();
-
- WKCACFLayer* ancestorOrSelfWithSuperlayer(WKCACFLayer*) const;
-
- void setAnchorPoint(const CGPoint& p) { CACFLayerSetAnchorPoint(layer(), p); setNeedsCommit(); }
- CGPoint anchorPoint() const { return CACFLayerGetAnchorPoint(layer()); }
-
- void setAnchorPointZ(CGFloat z) { CACFLayerSetAnchorPointZ(layer(), z); setNeedsCommit(); }
- CGFloat anchorPointZ() const { return CACFLayerGetAnchorPointZ(layer()); }
-
- void setBackgroundColor(CGColorRef color) { CACFLayerSetBackgroundColor(layer(), color); setNeedsCommit(); }
- CGColorRef backgroundColor() const { return CACFLayerGetBackgroundColor(layer()); }
-
- void setBorderColor(CGColorRef color) { CACFLayerSetBorderColor(layer(), color); setNeedsCommit(); }
- CGColorRef borderColor() const { return CACFLayerGetBorderColor(layer()); }
-
- void setBorderWidth(CGFloat width) { CACFLayerSetBorderWidth(layer(), width); setNeedsCommit(); }
- CGFloat borderWidth() const { return CACFLayerGetBorderWidth(layer()); }
-
- virtual void setBounds(const CGRect&);
- CGRect bounds() const { return CACFLayerGetBounds(layer()); }
-
- void setContents(CFTypeRef contents) { CACFLayerSetContents(layer(), contents); setNeedsCommit(); }
- CFTypeRef contents() const { return CACFLayerGetContents(layer()); }
-
- void setContentsRect(const CGRect& contentsRect) { CACFLayerSetContentsRect(layer(), contentsRect); setNeedsCommit(); }
- CGRect contentsRect() const { return CACFLayerGetContentsRect(layer()); }
-
- void setContentsGravity(ContentsGravityType);
- ContentsGravityType contentsGravity() const;
-
- void setDoubleSided(bool b) { CACFLayerSetDoubleSided(layer(), b); setNeedsCommit(); }
- bool doubleSided() const { return CACFLayerIsDoubleSided(layer()); }
-
- void setEdgeAntialiasingMask(uint32_t mask) { CACFLayerSetEdgeAntialiasingMask(layer(), mask); setNeedsCommit(); }
- uint32_t edgeAntialiasingMask() const { return CACFLayerGetEdgeAntialiasingMask(layer()); }
-
- virtual void setFrame(const CGRect&);
- CGRect frame() const { return CACFLayerGetFrame(layer()); }
-
- void setHidden(bool hidden) { CACFLayerSetHidden(layer(), hidden); setNeedsCommit(); }
- bool isHidden() const { return CACFLayerIsHidden(layer()); }
-
- void setMasksToBounds(bool b) { CACFLayerSetMasksToBounds(layer(), b); }
- bool masksToBounds() const { return CACFLayerGetMasksToBounds(layer()); }
-
- void setMagnificationFilter(FilterType);
- FilterType magnificationFilter() const;
-
- void setMinificationFilter(FilterType);
- FilterType minificationFilter() const;
-
- void setMinificationFilterBias(float bias) { CACFLayerSetMinificationFilterBias(layer(), bias); }
- float minificationFilterBias() const { return CACFLayerGetMinificationFilterBias(layer()); }
-
- void setName(const String& name) { CACFLayerSetName(layer(), RetainPtr<CFStringRef>(AdoptCF, name.createCFString()).get()); }
- String name() const { return CACFLayerGetName(layer()); }
-
- void setNeedsDisplayOnBoundsChange(bool needsDisplay) { m_needsDisplayOnBoundsChange = needsDisplay; }
-
- void setOpacity(float opacity) { CACFLayerSetOpacity(layer(), opacity); setNeedsCommit(); }
- float opacity() const { return CACFLayerGetOpacity(layer()); }
-
- void setOpaque(bool b) { CACFLayerSetOpaque(layer(), b); setNeedsCommit(); }
- bool opaque() const { return CACFLayerIsOpaque(layer()); }
-
- void setPosition(const CGPoint& position) { CACFLayerSetPosition(layer(), position); setNeedsCommit(); }
- CGPoint position() const { return CACFLayerGetPosition(layer()); }
-
- void setZPosition(CGFloat position) { CACFLayerSetZPosition(layer(), position); setNeedsCommit(); }
- CGFloat zPosition() const { return CACFLayerGetZPosition(layer()); }
-
- void setSpeed(float speed) { CACFLayerSetSpeed(layer(), speed); }
- CFTimeInterval speed() const { return CACFLayerGetSpeed(layer()); }
-
- void setTimeOffset(CFTimeInterval t) { CACFLayerSetTimeOffset(layer(), t); }
- CFTimeInterval timeOffset() const { return CACFLayerGetTimeOffset(layer()); }
-
- WKCACFLayer* rootLayer() const;
-
- void setSublayerTransform(const CATransform3D& transform) { CACFLayerSetSublayerTransform(layer(), transform); setNeedsCommit(); }
- CATransform3D sublayerTransform() const { return CACFLayerGetSublayerTransform(layer()); }
-
- WKCACFLayer* superlayer() const;
-
- void setTransform(const CATransform3D& transform) { CACFLayerSetTransform(layer(), transform); setNeedsCommit(); }
- CATransform3D transform() const { return CACFLayerGetTransform(layer()); }
-
- void setGeometryFlipped(bool flipped) { CACFLayerSetGeometryFlipped(layer(), flipped); setNeedsCommit(); }
- bool geometryFlipped() const { return CACFLayerIsGeometryFlipped(layer()); }
-
-#ifndef NDEBUG
- // Print the tree from the root. Also does consistency checks
- void printTree() const;
-#endif
-
-protected:
- WKCACFLayer(LayerType);
-
- void setNeedsCommit();
-
- CACFLayerRef layer() const { return m_layer.get(); }
- // This should only be called from removeFromSuperlayer.
- void removeSublayer(const WKCACFLayer*);
-
- void checkLayerConsistency()
- {
-#ifndef NDEBUG
- internalCheckLayerConsistency();
-#endif
- }
-
- // Methods to be overridden for sublayer and rendering management
- virtual WKCACFLayer* internalSublayerAtIndex(int) const;
-
- // Returns the index of the passed layer in this layer's sublayers list
- // or -1 if not found
- virtual int internalIndexOfSublayer(const WKCACFLayer*);
-
- virtual size_t internalSublayerCount() const;
- virtual void internalInsertSublayer(PassRefPtr<WKCACFLayer>, size_t index);
- virtual void internalRemoveAllSublayers();
- virtual void internalSetSublayers(const Vector<RefPtr<WKCACFLayer> >&);
-
- virtual void internalSetNeedsDisplay(const CGRect* dirtyRect);
-
-#ifndef NDEBUG
- virtual void internalCheckLayerConsistency();
-#endif
-
-#ifndef NDEBUG
- // Print this layer and its children to the console
- void printLayer(int indent) const;
-#endif
-
-private:
- static void layoutSublayersProc(CACFLayerRef);
-
- RetainPtr<CACFLayerRef> m_layer;
- WKCACFLayerLayoutClient* m_layoutClient;
- bool m_needsDisplayOnBoundsChange;
-};
-
-}
-
-#endif // USE(ACCELERATED_COMPOSITING)
-
-#endif // WKCACFLayer_h
diff --git a/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp b/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp
index 4c5e61d..7c83f86 100644
--- a/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp
+++ b/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.cpp
@@ -187,7 +187,6 @@ WKCACFLayerRenderer::WKCACFLayerRenderer(WKCACFLayerRendererClient* client)
, m_context(wkCACFContextCreate())
, m_hostWindow(0)
, m_renderTimer(this, &WKCACFLayerRenderer::renderTimerFired)
- , m_backingStoreDirty(false)
, m_mustResetLostDeviceBeforeRendering(false)
, m_syncLayerChanges(false)
{
@@ -224,32 +223,33 @@ WKCACFLayerRenderer::WKCACFLayerRenderer(WKCACFLayerRendererClient* client)
WKCACFLayerRenderer::~WKCACFLayerRenderer()
{
- destroyRenderer();
+ setHostWindow(0);
+ WKCACFContextFlusher::shared().removeContext(m_context);
wkCACFContextDestroy(m_context);
}
-PlatformCALayer* WKCACFLayerRenderer::rootLayer() const
+void WKCACFLayerRenderer::setHostWindow(HWND window)
{
- return m_rootLayer.get();
-}
+ if (window == m_hostWindow)
+ return;
-void WKCACFLayerRenderer::addPendingAnimatedLayer(PassRefPtr<PlatformCALayer> layer)
-{
- m_pendingAnimatedLayers.add(layer);
+ if (m_hostWindow)
+ destroyRenderer();
+
+ m_hostWindow = window;
+
+ if (m_hostWindow)
+ createRenderer();
}
-void WKCACFLayerRenderer::setRootContents(CGImageRef image)
+PlatformCALayer* WKCACFLayerRenderer::rootLayer() const
{
- ASSERT(m_rootLayer);
- m_rootLayer->setContents(image);
- renderSoon();
+ return m_rootLayer.get();
}
-void WKCACFLayerRenderer::setRootContentsAndDisplay(CGImageRef image)
+void WKCACFLayerRenderer::addPendingAnimatedLayer(PassRefPtr<PlatformCALayer> layer)
{
- ASSERT(m_rootLayer);
- m_rootLayer->setContents(image);
- paint();
+ m_pendingAnimatedLayers.add(layer);
}
void WKCACFLayerRenderer::setRootChildLayer(PlatformCALayer* layer)
@@ -266,16 +266,6 @@ void WKCACFLayerRenderer::layerTreeDidChange()
renderSoon();
}
-void WKCACFLayerRenderer::setNeedsDisplay(bool sync)
-{
- if (!m_syncLayerChanges && sync)
- m_syncLayerChanges = true;
-
- ASSERT(m_rootLayer);
- m_rootLayer->setNeedsDisplay(0);
- renderSoon();
-}
-
bool WKCACFLayerRenderer::createRenderer()
{
if (m_d3dDevice || !m_mightBeAbleToCreateDeviceLater)
@@ -340,7 +330,7 @@ bool WKCACFLayerRenderer::createRenderer()
initD3DGeometry();
- wkCACFContextInitializeD3DDevice(m_context, m_d3dDevice.get());
+ wkCACFContextSetD3DDevice(m_context, m_d3dDevice.get());
if (IsWindow(m_hostWindow))
m_rootLayer->setBounds(bounds());
@@ -352,6 +342,7 @@ void WKCACFLayerRenderer::destroyRenderer()
{
wkCACFContextSetLayer(m_context, m_rootLayer->platformLayer());
+ wkCACFContextSetD3DDevice(m_context, 0);
m_d3dDevice = 0;
if (s_d3d)
s_d3d->Release();
@@ -422,15 +413,6 @@ void WKCACFLayerRenderer::paint()
return;
}
- if (m_backingStoreDirty) {
- // If the backing store is still dirty when we are about to draw the
- // composited content, we need to force the window to paint into the
- // backing store. The paint will only paint the dirty region that
- // if being tracked in WebView.
- UpdateWindow(m_hostWindow);
- return;
- }
-
Vector<CGRect> dirtyRects;
getDirtyRects(m_hostWindow, dirtyRects);
render(dirtyRects);
@@ -545,6 +527,12 @@ void WKCACFLayerRenderer::renderSoon()
m_renderTimer.startOneShot(0);
}
+void WKCACFLayerRenderer::syncCompositingStateSoon()
+{
+ m_syncLayerChanges = true;
+ renderSoon();
+}
+
CGRect WKCACFLayerRenderer::bounds() const
{
RECT clientRect;
diff --git a/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h b/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
index aff1f83..02cdbdb 100644
--- a/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
+++ b/Source/WebCore/platform/graphics/win/WKCACFLayerRenderer.h
@@ -54,7 +54,6 @@ class WKCACFLayerRendererClient {
public:
virtual ~WKCACFLayerRendererClient() { }
virtual bool shouldRender() const = 0;
- virtual void animationsStarted(CFTimeInterval) { }
virtual void syncCompositingState() { }
};
@@ -70,17 +69,12 @@ public:
static bool acceleratedCompositingAvailable();
- void setRootContents(CGImageRef);
- void setRootContentsAndDisplay(CGImageRef);
void setRootChildLayer(PlatformCALayer*);
void layerTreeDidChange();
- void setNeedsDisplay(bool sync = false);
- void setHostWindow(HWND window) { m_hostWindow = window; }
- void setBackingStoreDirty(bool dirty) { m_backingStoreDirty = dirty; }
- bool createRenderer();
- void destroyRenderer();
+ void setHostWindow(HWND);
+ void paint();
void resize();
- void renderSoon();
+ void syncCompositingStateSoon();
protected:
PlatformCALayer* rootLayer() const;
@@ -89,6 +83,9 @@ protected:
private:
WKCACFLayerRenderer(WKCACFLayerRendererClient*);
+ bool createRenderer();
+ void destroyRenderer();
+ void renderSoon();
void renderTimerFired(Timer<WKCACFLayerRenderer>*);
CGRect bounds() const;
@@ -102,7 +99,6 @@ private:
bool resetDevice(ResetReason);
void render(const Vector<CGRect>& dirtyRects = Vector<CGRect>());
- void paint();
WKCACFLayerRendererClient* m_client;
bool m_mightBeAbleToCreateDeviceLater;
@@ -112,7 +108,6 @@ private:
WKCACFContext* m_context;
HWND m_hostWindow;
Timer<WKCACFLayerRenderer> m_renderTimer;
- bool m_backingStoreDirty;
bool m_mustResetLostDeviceBeforeRendering;
bool m_syncLayerChanges;
HashSet<RefPtr<PlatformCALayer> > m_pendingAnimatedLayers;
diff --git a/Source/WebCore/platform/graphics/wince/ImageWinCE.cpp b/Source/WebCore/platform/graphics/wince/ImageWinCE.cpp
index c0b2b53..cfcc487 100644
--- a/Source/WebCore/platform/graphics/wince/ImageWinCE.cpp
+++ b/Source/WebCore/platform/graphics/wince/ImageWinCE.cpp
@@ -41,7 +41,7 @@
namespace WebCore {
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
return SharedBitmap::create(m_backingStore, m_size, hasAlpha());
}
diff --git a/Source/WebCore/platform/graphics/wx/GraphicsContextWx.cpp b/Source/WebCore/platform/graphics/wx/GraphicsContextWx.cpp
index cee6aee..f1c09c5 100644
--- a/Source/WebCore/platform/graphics/wx/GraphicsContextWx.cpp
+++ b/Source/WebCore/platform/graphics/wx/GraphicsContextWx.cpp
@@ -31,7 +31,6 @@
#include "Font.h"
#include "IntRect.h"
#include "NotImplemented.h"
-#include "Pen.h"
#include <wtf/MathExtras.h>
#include <math.h>
diff --git a/Source/WebCore/platform/graphics/wx/PenWx.cpp b/Source/WebCore/platform/graphics/wx/PenWx.cpp
deleted file mode 100644
index 5a131e3..0000000
--- a/Source/WebCore/platform/graphics/wx/PenWx.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
- *
- * 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 "Pen.h"
-
-#include <wx/defs.h>
-#include <wx/pen.h>
-#include <wx/colour.h>
-
-namespace WebCore {
-
-// Pen style conversion functions
-static int penStyleToWxPenStyle(int p)
-{
- if (p == Pen::SolidLine)
- return wxSOLID;
- if (p == Pen::DotLine)
- return wxDOT;
- if (p == Pen::DashLine)
- return wxLONG_DASH;
- if (p == Pen::NoPen)
- return wxTRANSPARENT;
-
- return wxSOLID;
-}
-
-static Pen::PenStyle wxPenStyleToPenStyle(int p)
-{
- if (p == wxSOLID)
- return Pen::SolidLine;
- if (p == wxDOT)
- return Pen::DotLine;
- if (p == wxLONG_DASH || p == wxSHORT_DASH || p == wxDOT_DASH || p == wxUSER_DASH)
- return Pen::DashLine;
- if (p == wxTRANSPARENT)
- return Pen::NoPen;
-
- return Pen::SolidLine;
-}
-
-Pen::Pen(const wxPen& p)
-{
- wxColour color = p.GetColour();
- setColor(Color(color.Red(), color.Green(), color.Blue()));
- setWidth(p.GetWidth());
- setStyle(wxPenStyleToPenStyle(p.GetStyle()));
-}
-
-Pen::operator wxPen() const
-{
- return wxPen(wxColour(m_color.red(), m_color.blue(), m_color.green()), width(), penStyleToWxPenStyle(style()));
-}
-
-}
diff --git a/Source/WebCore/platform/gtk/ContextMenuGtk.cpp b/Source/WebCore/platform/gtk/ContextMenuGtk.cpp
index 423959a..b34631d 100644
--- a/Source/WebCore/platform/gtk/ContextMenuGtk.cpp
+++ b/Source/WebCore/platform/gtk/ContextMenuGtk.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2007 Holger Hans Peter Freyther
+ * Portions Copyright (c) 2010 Motorola Mobility, 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
@@ -19,6 +20,7 @@
#include "config.h"
#include "ContextMenu.h"
+#include "NotImplemented.h"
#include <gtk/gtk.h>
namespace WebCore {
@@ -26,14 +28,12 @@ namespace WebCore {
ContextMenu::ContextMenu()
{
m_platformDescription = GTK_MENU(gtk_menu_new());
-
- g_object_ref_sink(G_OBJECT(m_platformDescription));
}
ContextMenu::~ContextMenu()
{
if (m_platformDescription)
- g_object_unref(m_platformDescription);
+ gtk_widget_destroy(GTK_WIDGET(m_platformDescription));
}
void ContextMenu::appendItem(ContextMenuItem& item)
@@ -50,10 +50,9 @@ void ContextMenu::setPlatformDescription(PlatformMenuDescription menu)
{
ASSERT(menu);
if (m_platformDescription)
- g_object_unref(m_platformDescription);
+ gtk_widget_destroy(GTK_WIDGET(m_platformDescription));
m_platformDescription = menu;
- g_object_ref(m_platformDescription);
}
PlatformMenuDescription ContextMenu::platformDescription() const
@@ -69,4 +68,12 @@ PlatformMenuDescription ContextMenu::releasePlatformDescription()
return description;
}
+Vector<ContextMenuItem> contextMenuItemVector(const PlatformMenuDescription)
+{
+ notImplemented();
+
+ Vector<ContextMenuItem> menuItemVector;
+ return menuItemVector;
+}
+
}
diff --git a/Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp b/Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp
index 4d79f13..fee7a14 100644
--- a/Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp
+++ b/Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2007 Holger Hans Peter Freyther
* Copyright (C) 2010 Igalia S.L
+ * Portions Copyright (c) 2010 Motorola Mobility, 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
@@ -144,28 +145,42 @@ ContextMenuItem::ContextMenuItem(ContextMenuItemType type, ContextMenuAction act
m_platformDescription = GTK_MENU_ITEM(gtk_action_create_menu_item(platformAction));
g_object_unref(platformAction);
- g_object_set_data(G_OBJECT(m_platformDescription.get()), WEBKIT_CONTEXT_MENU_ACTION, GINT_TO_POINTER(action));
+ g_object_set_data(G_OBJECT(m_platformDescription), WEBKIT_CONTEXT_MENU_ACTION, GINT_TO_POINTER(action));
if (subMenu)
setSubMenu(subMenu);
}
+ContextMenuItem::ContextMenuItem(ContextMenuItemType, ContextMenuAction, const String&, bool, bool)
+{
+ // FIXME: Implement with WebKit2 ContextMenu changes.
+ notImplemented();
+}
+
+ContextMenuItem::ContextMenuItem(ContextMenuAction, const String&, bool, bool, Vector<ContextMenuItem>&)
+{
+ // FIXME: Implement with WebKit2 ContextMenu changes.
+ notImplemented();
+}
+
ContextMenuItem::~ContextMenuItem()
{
}
PlatformMenuItemDescription ContextMenuItem::releasePlatformDescription()
{
- return m_platformDescription.leakRef();
+ PlatformMenuItemDescription platformDescription = m_platformDescription;
+ m_platformDescription = 0;
+ return platformDescription;
}
ContextMenuItemType ContextMenuItem::type() const
{
- if (GTK_IS_SEPARATOR_MENU_ITEM(m_platformDescription.get()))
+ if (GTK_IS_SEPARATOR_MENU_ITEM(m_platformDescription))
return SeparatorType;
- if (GTK_IS_CHECK_MENU_ITEM(m_platformDescription.get()))
+ if (GTK_IS_CHECK_MENU_ITEM(m_platformDescription))
return CheckableActionType;
- if (gtk_menu_item_get_submenu(m_platformDescription.get()))
+ if (gtk_menu_item_get_submenu(m_platformDescription))
return SubmenuType;
return ActionType;
}
@@ -178,48 +193,62 @@ void ContextMenuItem::setType(ContextMenuItemType type)
ContextMenuAction ContextMenuItem::action() const
{
- return static_cast<ContextMenuAction>(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(m_platformDescription.get()), WEBKIT_CONTEXT_MENU_ACTION)));
+ return static_cast<ContextMenuAction>(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(m_platformDescription), WEBKIT_CONTEXT_MENU_ACTION)));
}
void ContextMenuItem::setAction(ContextMenuAction action)
{
- g_object_set_data(G_OBJECT(m_platformDescription.get()), WEBKIT_CONTEXT_MENU_ACTION, GINT_TO_POINTER(action));
+ g_object_set_data(G_OBJECT(m_platformDescription), WEBKIT_CONTEXT_MENU_ACTION, GINT_TO_POINTER(action));
}
String ContextMenuItem::title() const
{
- GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription.get()));
+ GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription));
return action ? String(gtk_action_get_label(action)) : String();
}
void ContextMenuItem::setTitle(const String& title)
{
- GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription.get()));
+ GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription));
if (action)
gtk_action_set_label(action, title.utf8().data());
}
PlatformMenuDescription ContextMenuItem::platformSubMenu() const
{
- GtkWidget* subMenu = gtk_menu_item_get_submenu(m_platformDescription.get());
+ GtkWidget* subMenu = gtk_menu_item_get_submenu(m_platformDescription);
return subMenu ? GTK_MENU(subMenu) : 0;
}
void ContextMenuItem::setSubMenu(ContextMenu* menu)
{
- gtk_menu_item_set_submenu(m_platformDescription.get(), GTK_WIDGET(menu->platformDescription()));
+ gtk_menu_item_set_submenu(m_platformDescription, GTK_WIDGET(menu->platformDescription()));
}
void ContextMenuItem::setChecked(bool shouldCheck)
{
- GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription.get()));
+ GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription));
if (action && GTK_IS_TOGGLE_ACTION(action))
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), shouldCheck);
}
+bool ContextMenuItem::checked() const
+{
+ // FIXME: Implement with WebKit2 ContextMenu changes.
+ notImplemented();
+ return false;
+}
+
+bool ContextMenuItem::enabled() const
+{
+ // FIXME: Implement with WebKit2 ContextMenu changes.
+ notImplemented();
+ return false;
+}
+
void ContextMenuItem::setEnabled(bool shouldEnable)
{
- GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription.get()));
+ GtkAction* action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(m_platformDescription));
if (action)
gtk_action_set_sensitive(action, shouldEnable);
}
diff --git a/Source/WebCore/platform/gtk/DragDataGtk.cpp b/Source/WebCore/platform/gtk/DragDataGtk.cpp
index 42ddb16..3a1daf1 100644
--- a/Source/WebCore/platform/gtk/DragDataGtk.cpp
+++ b/Source/WebCore/platform/gtk/DragDataGtk.cpp
@@ -21,6 +21,7 @@
#include "ClipboardGtk.h"
#include "Document.h"
#include "DocumentFragment.h"
+#include "Frame.h"
#include "markup.h"
namespace WebCore {
@@ -50,7 +51,7 @@ bool DragData::containsPlainText() const
return m_platformDragData->hasText();
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
return m_platformDragData->text();
}
@@ -62,15 +63,15 @@ Color DragData::asColor() const
bool DragData::containsCompatibleContent() const
{
- return containsPlainText() || containsURL() || m_platformDragData->hasMarkup() || containsColor() || containsFiles();
+ return containsPlainText() || containsURL(0) || m_platformDragData->hasMarkup() || containsColor() || containsFiles();
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return m_platformDragData->hasURL();
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
String url(m_platformDragData->url());
if (title)
@@ -79,12 +80,12 @@ String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) c
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document* document) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range>, bool, bool&) const
{
if (!m_platformDragData->hasMarkup())
return 0;
- return createFragmentFromMarkup(document, m_platformDragData->markup(), "");
+ return createFragmentFromMarkup(frame->document(), m_platformDragData->markup(), "");
}
}
diff --git a/Source/WebCore/platform/gtk/FileSystemGtk.cpp b/Source/WebCore/platform/gtk/FileSystemGtk.cpp
index b8aa102..b3c4c9f 100644
--- a/Source/WebCore/platform/gtk/FileSystemGtk.cpp
+++ b/Source/WebCore/platform/gtk/FileSystemGtk.cpp
@@ -2,6 +2,7 @@
* Copyright (C) 2007, 2009 Holger Hans Peter Freyther
* Copyright (C) 2008 Collabora, Ltd.
* Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Portions Copyright (c) 2010 Motorola Mobility, 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
@@ -45,10 +46,8 @@ String filenameToString(const char* filename)
#if OS(WINDOWS)
return String::fromUTF8(filename);
#else
- gchar* escapedString = g_uri_escape_string(filename, "/:", false);
- String string(escapedString);
- g_free(escapedString);
- return string;
+ GOwnPtr<gchar> escapedString(g_uri_escape_string(filename, "/:", false));
+ return escapedString.get();
#endif
}
@@ -57,10 +56,8 @@ CString fileSystemRepresentation(const String& path)
#if OS(WINDOWS)
return path.utf8();
#else
- char* filename = g_uri_unescape_string(path.utf8().data(), 0);
- CString cfilename(filename);
- g_free(filename);
- return cfilename;
+ GOwnPtr<gchar> filename(g_uri_unescape_string(path.utf8().data(), 0));
+ return filename.get();
#endif
}
@@ -71,14 +68,11 @@ String filenameForDisplay(const String& string)
return string;
#else
CString filename = fileSystemRepresentation(string);
- gchar* display = g_filename_to_utf8(filename.data(), 0, 0, 0, 0);
+ GOwnPtr<gchar> display(g_filename_to_utf8(filename.data(), 0, 0, 0, 0));
if (!display)
return string;
- String displayString = String::fromUTF8(display);
- g_free(display);
-
- return displayString;
+ return String::fromUTF8(display.get());
#endif
}
@@ -176,11 +170,31 @@ String pathGetFileName(const String& pathName)
return pathName;
CString tmpFilename = fileSystemRepresentation(pathName);
- char* baseName = g_path_get_basename(tmpFilename.data());
- String fileName = String::fromUTF8(baseName);
- g_free(baseName);
+ GOwnPtr<gchar> baseName(g_path_get_basename(tmpFilename.data()));
+ return String::fromUTF8(baseName.get());
+}
+
+CString applicationDirectoryPath()
+{
+#if OS(LINUX)
+ // Handle the /proc filesystem case.
+ char pathFromProc[PATH_MAX] = {0};
+ if (readlink("/proc/self/exe", pathFromProc, sizeof(pathFromProc) - 1) == -1)
+ return CString();
+
+ GOwnPtr<char> dirname(g_path_get_dirname(pathFromProc));
+ return dirname.get();
+#elif OS(UNIX)
+ // If the above fails, check the PATH env variable.
+ GOwnPtr<char> currentExePath(g_find_program_in_path(g_get_prgname()));
+ if (!currentExePath.get())
+ return CString();
- return fileName;
+ GOwnPtr<char> dirname(g_path_get_dirname(currentExePath.get()));
+ return dirname.get();
+#else
+ return CString();
+#endif
}
String directoryName(const String& path)
diff --git a/Source/WebCore/platform/gtk/GRefPtrGtk.cpp b/Source/WebCore/platform/gtk/GRefPtrGtk.cpp
index 6647b99..9a9d679 100644
--- a/Source/WebCore/platform/gtk/GRefPtrGtk.cpp
+++ b/Source/WebCore/platform/gtk/GRefPtrGtk.cpp
@@ -38,6 +38,7 @@ template <> void derefGPtr(GtkTargetList* ptr)
gtk_target_list_unref(ptr);
}
+#ifdef GTK_API_VERSION_2
template <> GdkCursor* refGPtr(GdkCursor* ptr)
{
if (ptr)
@@ -50,5 +51,6 @@ template <> void derefGPtr(GdkCursor* ptr)
if (ptr)
gdk_cursor_unref(ptr);
}
+#endif
}
diff --git a/Source/WebCore/platform/gtk/GRefPtrGtk.h b/Source/WebCore/platform/gtk/GRefPtrGtk.h
index 1fb9772..a9f491f 100644
--- a/Source/WebCore/platform/gtk/GRefPtrGtk.h
+++ b/Source/WebCore/platform/gtk/GRefPtrGtk.h
@@ -28,8 +28,10 @@ namespace WTF {
template <> GtkTargetList* refGPtr(GtkTargetList* ptr);
template <> void derefGPtr(GtkTargetList* ptr);
+#ifdef GTK_API_VERSION_2
template <> GdkCursor* refGPtr(GdkCursor* ptr);
template <> void derefGPtr(GdkCursor* ptr);
+#endif
}
diff --git a/Source/WebCore/platform/gtk/GtkVersioning.h b/Source/WebCore/platform/gtk/GtkVersioning.h
index 11d1f8a..7e9fcd1 100644
--- a/Source/WebCore/platform/gtk/GtkVersioning.h
+++ b/Source/WebCore/platform/gtk/GtkVersioning.h
@@ -37,12 +37,14 @@ GdkPixbuf* gdk_pixbuf_get_from_surface(cairo_surface_t* surface, int srcX, int s
int width, int height);
#endif
-#if !GTK_CHECK_VERSION(2, 24, 0)
+#if !GTK_CHECK_VERSION(2, 23, 4)
+#define gdk_pixmap_get_size gdk_drawable_get_size
+#endif // GTK_CHECK_VERSION(2, 23, 4)
+
+#if !GTK_CHECK_VERSION(2, 23, 0)
#define gdk_window_get_display(window) gdk_drawable_get_display(window)
-#ifdef GDK_DISABLE_DEPRECATED
#define gdk_window_get_visual gdk_drawable_get_visual
-#endif
-#endif // GTK_CHECK_VERSION(2, 24, 0)
+#endif // GTK_CHECK_VERSION(2, 23, 0)
#if !GTK_CHECK_VERSION(2, 21, 2)
#define gdk_visual_get_depth(visual) (visual)->depth
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
index c194946..97c966d 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk.cpp
@@ -33,6 +33,7 @@
#include "HTMLMediaElement.h"
#include "HTMLNames.h"
#include "MediaControlElements.h"
+#include "PaintInfo.h"
#include "RenderBox.h"
#include "RenderObject.h"
#include "TimeRanges.h"
@@ -101,73 +102,22 @@ PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page)
return rt;
}
-static int mozGtkRefCount = 0;
-
RenderThemeGtk::RenderThemeGtk()
- : m_gtkWindow(0)
- , m_gtkContainer(0)
- , m_gtkButton(0)
- , m_gtkEntry(0)
- , m_gtkTreeView(0)
- , m_gtkVScale(0)
- , m_gtkHScale(0)
- , m_panelColor(Color::white)
+ : m_panelColor(Color::white)
, m_sliderColor(Color::white)
, m_sliderThumbColor(Color::white)
, m_mediaIconSize(16)
, m_mediaSliderHeight(14)
, m_mediaSliderThumbWidth(12)
, m_mediaSliderThumbHeight(12)
-#ifdef GTK_API_VERSION_2
- , m_themePartsHaveRGBAColormap(true)
-#endif
{
-
- memset(&m_themeParts, 0, sizeof(GtkThemeParts));
-#ifdef GTK_API_VERSION_2
- GdkColormap* colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
- if (!colormap) {
- m_themePartsHaveRGBAColormap = false;
- colormap = gdk_screen_get_default_colormap(gdk_screen_get_default());
- }
- m_themeParts.colormap = colormap;
-#endif
-
- // Initialize the Mozilla theme drawing code.
- if (!mozGtkRefCount) {
- moz_gtk_init();
- moz_gtk_use_theme_parts(&m_themeParts);
- }
- ++mozGtkRefCount;
-
+ platformInit();
#if ENABLE(VIDEO)
initMediaColors();
initMediaButtons();
#endif
}
-RenderThemeGtk::~RenderThemeGtk()
-{
- --mozGtkRefCount;
-
- if (!mozGtkRefCount)
- moz_gtk_shutdown();
-
- gtk_widget_destroy(m_gtkWindow);
-}
-
-void RenderThemeGtk::getIndicatorMetrics(ControlPart part, int& indicatorSize, int& indicatorSpacing) const
-{
- ASSERT(part == CheckboxPart || part == RadioPart);
- if (part == CheckboxPart) {
- moz_gtk_checkbox_get_metrics(&indicatorSize, &indicatorSpacing);
- return;
- }
-
- // RadioPart
- moz_gtk_radio_get_metrics(&indicatorSize, &indicatorSpacing);
-}
-
static bool supportsFocus(ControlPart appearance)
{
switch (appearance) {
@@ -227,13 +177,13 @@ GtkTextDirection gtkTextDirection(TextDirection direction)
}
}
-GtkStateType RenderThemeGtk::gtkIconState(RenderObject* renderObject)
+static GtkStateType gtkIconState(RenderTheme* theme, RenderObject* renderObject)
{
- if (!isEnabled(renderObject))
+ if (!theme->isEnabled(renderObject))
return GTK_STATE_INSENSITIVE;
- if (isPressed(renderObject))
+ if (theme->isPressed(renderObject))
return GTK_STATE_ACTIVE;
- if (isHovered(renderObject))
+ if (theme->isHovered(renderObject))
return GTK_STATE_PRELIGHT;
return GTK_STATE_NORMAL;
@@ -318,7 +268,7 @@ bool RenderThemeGtk::paintSearchFieldResultsDecoration(RenderObject* renderObjec
{
GRefPtr<GdkPixbuf> icon = getStockIcon(GTK_TYPE_ENTRY, GTK_STOCK_FIND,
gtkTextDirection(renderObject->style()->direction()),
- gtkIconState(renderObject), GTK_ICON_SIZE_MENU);
+ gtkIconState(this, renderObject), GTK_ICON_SIZE_MENU);
paintGdkPixbuf(paintInfo.context, icon.get(), centerRectVerticallyInParentInputElement(renderObject, rect));
return false;
}
@@ -338,7 +288,7 @@ bool RenderThemeGtk::paintSearchFieldCancelButton(RenderObject* renderObject, co
{
GRefPtr<GdkPixbuf> icon = getStockIcon(GTK_TYPE_ENTRY, GTK_STOCK_CLEAR,
gtkTextDirection(renderObject->style()->direction()),
- gtkIconState(renderObject), GTK_ICON_SIZE_MENU);
+ gtkIconState(this, renderObject), GTK_ICON_SIZE_MENU);
paintGdkPixbuf(paintInfo.context, icon.get(), centerRectVerticallyInParentInputElement(renderObject, rect));
return false;
}
@@ -438,19 +388,16 @@ String RenderThemeGtk::extraMediaControlsStyleSheet()
void RenderThemeGtk::adjustMediaSliderThumbSize(RenderObject* renderObject) const
{
- ControlPart part = renderObject->style()->appearance();
-
- if (part == MediaSliderThumbPart) {
- renderObject->style()->setWidth(Length(m_mediaSliderThumbWidth, Fixed));
- renderObject->style()->setHeight(Length(m_mediaSliderThumbHeight, Fixed));
- }
+ ASSERT(renderObject->style()->appearance() == MediaSliderThumbPart);
+ renderObject->style()->setWidth(Length(m_mediaSliderThumbWidth, Fixed));
+ renderObject->style()->setHeight(Length(m_mediaSliderThumbHeight, Fixed));
}
bool RenderThemeGtk::paintMediaButton(RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, const char* iconName)
{
GRefPtr<GdkPixbuf> icon = getStockIcon(GTK_TYPE_CONTAINER, iconName,
gtkTextDirection(renderObject->style()->direction()),
- gtkIconState(renderObject),
+ gtkIconState(this, renderObject),
getMediaButtonIconSize(m_mediaIconSize));
IntPoint iconPoint(rect.x() + (rect.width() - m_mediaIconSize) / 2,
rect.y() + (rect.height() - m_mediaIconSize) / 2);
@@ -560,6 +507,23 @@ bool RenderThemeGtk::paintMediaSliderThumb(RenderObject* o, const PaintInfo& pai
return false;
}
+bool RenderThemeGtk::paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo& paintInfo, const IntRect& rect)
+{
+ GraphicsContext* context = paintInfo.context;
+ context->fillRect(FloatRect(rect), m_panelColor, ColorSpaceDeviceRGB);
+ return false;
+}
+
+bool RenderThemeGtk::paintMediaVolumeSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+{
+ return paintSliderTrack(renderObject, paintInfo, rect);
+}
+
+bool RenderThemeGtk::paintMediaVolumeSliderThumb(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+{
+ return paintSliderThumb(renderObject, paintInfo, rect);
+}
+
String RenderThemeGtk::formatMediaControlsCurrentTime(float currentTime, float duration) const
{
return formatMediaControlsTime(currentTime) + " / " + formatMediaControlsTime(duration);
@@ -575,20 +539,6 @@ bool RenderThemeGtk::paintMediaCurrentTime(RenderObject* renderObject, const Pai
#endif
#if ENABLE(PROGRESS_TAG)
-double RenderThemeGtk::animationRepeatIntervalForProgressBar(RenderProgress*) const
-{
- // FIXME: It doesn't look like there is a good way yet to support animated
- // progress bars with the Mozilla theme drawing code.
- return 0;
-}
-
-double RenderThemeGtk::animationDurationForProgressBar(RenderProgress*) const
-{
- // FIXME: It doesn't look like there is a good way yet to support animated
- // progress bars with the Mozilla theme drawing code.
- return 0;
-}
-
void RenderThemeGtk::adjustProgressBarStyle(CSSStyleSelector*, RenderStyle* style, Element*) const
{
style->setBoxShadow(0);
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk.h b/Source/WebCore/platform/gtk/RenderThemeGtk.h
index ef1df05..90113e5 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk.h
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk.h
@@ -29,9 +29,14 @@
#define RenderThemeGtk_h
#include "GRefPtr.h"
-#include "gtkdrawing.h"
#include "RenderTheme.h"
+#ifdef GTK_API_VERSION_2
+#include "gtkdrawing.h"
+#endif
+
+typedef gulong GType;
+
namespace WebCore {
class RenderThemeGtk : public RenderTheme {
@@ -86,10 +91,9 @@ public:
virtual String formatMediaControlsCurrentTime(float currentTime, float duration) const;
#endif
- void getIndicatorMetrics(ControlPart, int& indicatorSize, int& indicatorSpacing) const;
-
#ifdef GTK_API_VERSION_2
GtkWidget* gtkScrollbar();
+ static void getIndicatorMetrics(ControlPart, int& indicatorSize, int& indicatorSpacing);
#else
GtkStyleContext* gtkScrollbarStyle();
#endif
@@ -152,6 +156,9 @@ protected:
virtual bool paintMediaSeekForwardButton(RenderObject*, const PaintInfo&, const IntRect&);
virtual bool paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
virtual bool paintMediaSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
+ virtual bool paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&);
+ virtual bool paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
+ virtual bool paintMediaVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
virtual bool paintMediaCurrentTime(RenderObject*, const PaintInfo&, const IntRect&);
#endif
@@ -163,45 +170,41 @@ protected:
#endif
private:
- GtkWidget* gtkButton() const;
- GtkWidget* gtkEntry() const;
- GtkWidget* gtkTreeView() const;
- GtkWidget* gtkVScale() const;
- GtkWidget* gtkHScale() const;
- GtkWidget* gtkContainer() const;
-
- void setupWidgetAndAddToContainer(GtkWidget*, GtkWidget*) const;
- GtkStateType getGtkStateType(RenderObject* object);
- bool paintRenderObject(GtkThemeWidgetType, RenderObject*, GraphicsContext*, const IntRect& rect, int flags = 0);
+ void platformInit();
#if ENABLE(VIDEO)
bool paintMediaButton(RenderObject*, GraphicsContext*, const IntRect&, const char* iconName);
#endif
- GtkStateType gtkIconState(RenderObject*);
static void setTextInputBorders(RenderStyle*);
GRefPtr<GdkPixbuf> getStockIcon(GType, const char* iconName, gint direction, gint state, gint iconSize);
- mutable GtkWidget* m_gtkWindow;
- mutable GtkWidget* m_gtkContainer;
- mutable GtkWidget* m_gtkButton;
- mutable GtkWidget* m_gtkEntry;
- mutable GtkWidget* m_gtkTreeView;
- mutable GtkWidget* m_gtkVScale;
- mutable GtkWidget* m_gtkHScale;
-
mutable Color m_panelColor;
mutable Color m_sliderColor;
mutable Color m_sliderThumbColor;
-
const int m_mediaIconSize;
const int m_mediaSliderHeight;
const int m_mediaSliderThumbWidth;
const int m_mediaSliderThumbHeight;
- GtkThemeParts m_themeParts;
#ifdef GTK_API_VERSION_2
+ void setupWidgetAndAddToContainer(GtkWidget*, GtkWidget*) const;
+ bool paintRenderObject(GtkThemeWidgetType, RenderObject*, GraphicsContext*, const IntRect&, int flags = 0);
+ GtkThemeParts m_themeParts;
+ GtkWidget* gtkButton() const;
+ GtkWidget* gtkEntry() const;
+ GtkWidget* gtkTreeView() const;
+ GtkWidget* gtkVScale() const;
+ GtkWidget* gtkHScale() const;
+ GtkWidget* gtkContainer() const;
+ mutable GtkWidget* m_gtkWindow;
+ mutable GtkWidget* m_gtkContainer;
+ mutable GtkWidget* m_gtkButton;
+ mutable GtkWidget* m_gtkEntry;
+ mutable GtkWidget* m_gtkTreeView;
+ mutable GtkWidget* m_gtkVScale;
+ mutable GtkWidget* m_gtkHScale;
bool m_themePartsHaveRGBAColormap;
-#endif
friend class WidgetRenderingContext;
+#endif
};
}
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
index fd391b7..e01508e 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
@@ -32,6 +32,7 @@
#include "GtkVersioning.h"
#include "HTMLNames.h"
#include "MediaControlElements.h"
+#include "PaintInfo.h"
#include "RenderObject.h"
#include "TextDirection.h"
#include "UserAgentStyleSheets.h"
@@ -49,6 +50,45 @@ namespace WebCore {
// This is not a static method, because we want to avoid having GTK+ headers in RenderThemeGtk.h.
extern GtkTextDirection gtkTextDirection(TextDirection);
+static int mozGtkRefCount = 0;
+void RenderThemeGtk::platformInit()
+{
+ m_themePartsHaveRGBAColormap = true;
+ m_gtkWindow = 0;
+ m_gtkContainer = 0;
+ m_gtkButton = 0;
+ m_gtkEntry = 0;
+ m_gtkTreeView = 0;
+ m_gtkVScale = 0;
+ m_gtkHScale = 0;
+
+ memset(&m_themeParts, 0, sizeof(GtkThemeParts));
+ GdkColormap* colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
+ if (!colormap) {
+ m_themePartsHaveRGBAColormap = false;
+ colormap = gdk_screen_get_default_colormap(gdk_screen_get_default());
+ }
+ m_themeParts.colormap = colormap;
+
+ // Initialize the Mozilla theme drawing code.
+ if (!mozGtkRefCount) {
+ moz_gtk_init();
+ moz_gtk_use_theme_parts(&m_themeParts);
+ }
+ ++mozGtkRefCount;
+}
+
+RenderThemeGtk::~RenderThemeGtk()
+{
+ --mozGtkRefCount;
+
+ if (!mozGtkRefCount)
+ moz_gtk_shutdown();
+
+ if (m_gtkWindow)
+ gtk_widget_destroy(m_gtkWindow);
+}
+
#if ENABLE(VIDEO)
void RenderThemeGtk::initMediaColors()
{
@@ -63,13 +103,13 @@ void RenderThemeGtk::adjustRepaintRect(const RenderObject*, IntRect&)
{
}
-GtkStateType RenderThemeGtk::getGtkStateType(RenderObject* object)
+static GtkStateType getGtkStateType(RenderThemeGtk* theme, RenderObject* object)
{
- if (!isEnabled(object) || isReadOnlyControl(object))
+ if (!theme->isEnabled(object) || theme->isReadOnlyControl(object))
return GTK_STATE_INSENSITIVE;
- if (isPressed(object))
+ if (theme->isPressed(object))
return GTK_STATE_ACTIVE;
- if (isHovered(object))
+ if (theme->isHovered(object))
return GTK_STATE_PRELIGHT;
return GTK_STATE_NORMAL;
}
@@ -102,6 +142,18 @@ bool RenderThemeGtk::paintRenderObject(GtkThemeWidgetType type, RenderObject* re
gtkTextDirection(renderObject->style()->direction()));
}
+void RenderThemeGtk::getIndicatorMetrics(ControlPart part, int& indicatorSize, int& indicatorSpacing)
+{
+ ASSERT(part == CheckboxPart || part == RadioPart);
+ if (part == CheckboxPart) {
+ moz_gtk_checkbox_get_metrics(&indicatorSize, &indicatorSpacing);
+ return;
+ }
+
+ // RadioPart
+ moz_gtk_radio_get_metrics(&indicatorSize, &indicatorSpacing);
+}
+
static void setToggleSize(const RenderThemeGtk* theme, RenderStyle* style, ControlPart appearance)
{
// The width and height are both specified, so we shouldn't change them.
@@ -110,7 +162,7 @@ static void setToggleSize(const RenderThemeGtk* theme, RenderStyle* style, Contr
// FIXME: This is probably not correct use of indicatorSize and indicatorSpacing.
gint indicatorSize, indicatorSpacing;
- theme->getIndicatorMetrics(appearance, indicatorSize, indicatorSpacing);
+ RenderThemeGtk::getIndicatorMetrics(appearance, indicatorSize, indicatorSpacing);
// Other ports hard-code this to 13, but GTK+ users tend to demand the native look.
// It could be made a configuration option values other than 13 actually break site compatibility.
@@ -151,7 +203,7 @@ bool RenderThemeGtk::paintButton(RenderObject* object, const PaintInfo& info, co
IntRect buttonRect(IntPoint(), rect.size());
IntRect focusRect(buttonRect);
- GtkStateType state = getGtkStateType(object);
+ GtkStateType state = getGtkStateType(this, object);
gtk_widget_set_state(widget, state);
gtk_widget_set_direction(widget, gtkTextDirection(object->style()->direction()));
@@ -248,24 +300,24 @@ bool RenderThemeGtk::paintSliderTrack(RenderObject* object, const PaintInfo& inf
return false;
ControlPart part = object->style()->appearance();
- ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart);
+ ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart || part == MediaVolumeSliderPart);
// We shrink the trough rect slightly to make room for the focus indicator.
IntRect troughRect(IntPoint(), rect.size()); // This is relative to rect.
GtkWidget* widget = 0;
- if (part == SliderVerticalPart) {
- widget = gtkVScale();
- troughRect.inflateY(-gtk_widget_get_style(widget)->ythickness);
- } else {
+ if (part == SliderHorizontalPart) {
widget = gtkHScale();
troughRect.inflateX(-gtk_widget_get_style(widget)->xthickness);
+ } else {
+ widget = gtkVScale();
+ troughRect.inflateY(-gtk_widget_get_style(widget)->ythickness);
}
gtk_widget_set_direction(widget, gtkTextDirection(object->style()->direction()));
WidgetRenderingContext widgetContext(info.context, rect);
widgetContext.gtkPaintBox(troughRect, widget, GTK_STATE_ACTIVE, GTK_SHADOW_OUT, "trough");
if (isFocused(object))
- widgetContext.gtkPaintFocus(IntRect(IntPoint(), rect.size()), widget, getGtkStateType(object), "trough");
+ widgetContext.gtkPaintFocus(IntRect(IntPoint(), rect.size()), widget, getGtkStateType(this, object), "trough");
return false;
}
@@ -276,19 +328,19 @@ bool RenderThemeGtk::paintSliderThumb(RenderObject* object, const PaintInfo& inf
return false;
ControlPart part = object->style()->appearance();
- ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart);
+ ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
GtkWidget* widget = 0;
const char* detail = 0;
GtkOrientation orientation;
- if (part == SliderThumbVerticalPart) {
- widget = gtkVScale();
- detail = "vscale";
- orientation = GTK_ORIENTATION_VERTICAL;
- } else {
+ if (part == SliderThumbHorizontalPart) {
widget = gtkHScale();
detail = "hscale";
orientation = GTK_ORIENTATION_HORIZONTAL;
+ } else {
+ widget = gtkVScale();
+ detail = "vscale";
+ orientation = GTK_ORIENTATION_VERTICAL;
}
gtk_widget_set_direction(widget, gtkTextDirection(object->style()->direction()));
@@ -298,7 +350,7 @@ bool RenderThemeGtk::paintSliderThumb(RenderObject* object, const PaintInfo& inf
// on them.
IntRect thumbRect(IntPoint(), rect.size());
WidgetRenderingContext widgetContext(info.context, rect);
- widgetContext.gtkPaintSlider(thumbRect, widget, getGtkStateType(object), GTK_SHADOW_OUT, detail, orientation);
+ widgetContext.gtkPaintSlider(thumbRect, widget, getGtkStateType(this, object), GTK_SHADOW_OUT, detail, orientation);
return false;
}
@@ -306,7 +358,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* o) const
{
ControlPart part = o->style()->appearance();
#if ENABLE(VIDEO)
- if (part == MediaSliderThumbPart || part == MediaVolumeSliderThumbPart) {
+ if (part == MediaSliderThumbPart) {
adjustMediaSliderThumbSize(o);
return;
}
@@ -324,12 +376,26 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* o) const
o->style()->setHeight(Length(width, Fixed));
return;
}
- ASSERT(part == SliderThumbVerticalPart);
+ ASSERT(part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
o->style()->setWidth(Length(width, Fixed));
o->style()->setHeight(Length(length, Fixed));
}
#if ENABLE(PROGRESS_TAG)
+double RenderThemeGtk::animationRepeatIntervalForProgressBar(RenderProgress*) const
+{
+ // FIXME: It doesn't look like there is a good way yet to support animated
+ // progress bars with the Mozilla theme drawing code.
+ return 0;
+}
+
+double RenderThemeGtk::animationDurationForProgressBar(RenderProgress*) const
+{
+ // FIXME: It doesn't look like there is a good way yet to support animated
+ // progress bars with the Mozilla theme drawing code.
+ return 0;
+}
+
bool RenderThemeGtk::paintProgressBar(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
if (!renderObject->isProgress())
diff --git a/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
index 663404d..212e29d 100644
--- a/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk3.cpp
@@ -33,11 +33,11 @@
#include "HTMLNames.h"
#include "MediaControlElements.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderObject.h"
#include "TextDirection.h"
#include "UserAgentStyleSheets.h"
-#include "WidgetRenderingContext.h"
-#include "gtkdrawing.h"
+#include <cmath>
#include <gdk/gdk.h>
#include <gtk/gtk.h>
@@ -47,6 +47,9 @@
namespace WebCore {
+// This is the default value defined by GTK+, where it was defined as MIN_ARROW_SIZE in gtkarrow.c.
+static const int minArrowSize = 15;
+
typedef HashMap<GType, GRefPtr<GtkStyleContext> > StyleContextMap;
static StyleContextMap& styleContextMap();
@@ -90,16 +93,36 @@ static GtkStyleContext* getStyleContext(GType widgetType)
return context.get();
}
+GtkStyleContext* RenderThemeGtk::gtkScrollbarStyle()
+{
+ return getStyleContext(GTK_TYPE_SCROLLBAR);
+}
+
// This is not a static method, because we want to avoid having GTK+ headers in RenderThemeGtk.h.
extern GtkTextDirection gtkTextDirection(TextDirection);
+void RenderThemeGtk::platformInit()
+{
+}
+
+RenderThemeGtk::~RenderThemeGtk()
+{
+}
+
+#if ENABLE(VIDEO)
void RenderThemeGtk::initMediaColors()
{
- GtkStyle* style = gtk_widget_get_style(GTK_WIDGET(gtkContainer()));
- m_panelColor = style->bg[GTK_STATE_NORMAL];
- m_sliderColor = style->bg[GTK_STATE_ACTIVE];
- m_sliderThumbColor = style->bg[GTK_STATE_SELECTED];
+ GdkRGBA color;
+ GtkStyleContext* containerContext = getStyleContext(GTK_TYPE_CONTAINER);
+
+ gtk_style_context_get_background_color(containerContext, GTK_STATE_FLAG_NORMAL, &color);
+ m_panelColor = color;
+ gtk_style_context_get_background_color(containerContext, GTK_STATE_FLAG_ACTIVE, &color);
+ m_sliderColor = color;
+ gtk_style_context_get_background_color(containerContext, GTK_STATE_FLAG_SELECTED, &color);
+ m_sliderThumbColor = color;
}
+#endif
static void adjustRectForFocus(GtkStyleContext* context, IntRect& rect)
{
@@ -113,119 +136,140 @@ static void adjustRectForFocus(GtkStyleContext* context, IntRect& rect)
void RenderThemeGtk::adjustRepaintRect(const RenderObject* renderObject, IntRect& rect)
{
GtkStyleContext* context = 0;
+ bool checkInteriorFocus = false;
ControlPart part = renderObject->style()->appearance();
switch (part) {
+ case CheckboxPart:
+ case RadioPart:
+ context = getStyleContext(part == CheckboxPart ? GTK_TYPE_CHECK_BUTTON : GTK_TYPE_RADIO_BUTTON);
+
+ gint indicatorSpacing;
+ gtk_style_context_get_style(context, "indicator-spacing", &indicatorSpacing, NULL);
+ rect.inflate(indicatorSpacing);
+
+ return;
case SliderVerticalPart:
case SliderHorizontalPart:
context = getStyleContext(part == SliderThumbHorizontalPart ? GTK_TYPE_HSCALE : GTK_TYPE_VSCALE);
break;
case ButtonPart:
+ case MenulistButtonPart:
+ case MenulistPart:
context = getStyleContext(GTK_TYPE_BUTTON);
-
- gboolean interiorFocus;
- gtk_style_context_get_style(context, "interior-focus", &interiorFocus, NULL);
- if (interiorFocus)
- return;
-
+ checkInteriorFocus = true;
+ break;
+ case TextFieldPart:
+ case TextAreaPart:
+ context = getStyleContext(GTK_TYPE_ENTRY);
+ checkInteriorFocus = true;
break;
default:
return;
}
ASSERT(context);
+ if (checkInteriorFocus) {
+ gboolean interiorFocus;
+ gtk_style_context_get_style(context, "interior-focus", &interiorFocus, NULL);
+ if (interiorFocus)
+ return;
+ }
adjustRectForFocus(context, rect);
}
-GtkStateType RenderThemeGtk::getGtkStateType(RenderObject* object)
+static void setToggleSize(GtkStyleContext* context, RenderStyle* style)
{
- if (!isEnabled(object) || isReadOnlyControl(object))
- return GTK_STATE_INSENSITIVE;
- if (isPressed(object))
- return GTK_STATE_ACTIVE;
- if (isHovered(object))
- return GTK_STATE_PRELIGHT;
- return GTK_STATE_NORMAL;
-}
-
-bool RenderThemeGtk::paintRenderObject(GtkThemeWidgetType type, RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, int flags)
-{
- // Painting is disabled so just claim to have succeeded
- if (context->paintingDisabled())
- return false;
-
- GtkWidgetState widgetState;
- widgetState.active = isPressed(renderObject);
- widgetState.focused = isFocused(renderObject);
+ // The width and height are both specified, so we shouldn't change them.
+ if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto())
+ return;
- // https://bugs.webkit.org/show_bug.cgi?id=18364
- // The Mozilla theme drawing code, only paints a button as pressed when it's pressed
- // while hovered. Until we move away from the Mozila code, work-around the issue by
- // forcing a pressed button into the hovered state. This ensures that buttons activated
- // via the keyboard have the proper rendering.
- widgetState.inHover = isHovered(renderObject) || (type == MOZ_GTK_BUTTON && isPressed(renderObject));
+ // Other ports hard-code this to 13 which is also the default value defined by GTK+.
+ // GTK+ users tend to demand the native look.
+ // It could be made a configuration option values other than 13 actually break site compatibility.
+ gint indicatorSize;
+ gtk_style_context_get_style(context, "indicator-size", &indicatorSize, NULL);
- // FIXME: Disabled does not always give the correct appearance for ReadOnly
- widgetState.disabled = !isEnabled(renderObject) || isReadOnlyControl(renderObject);
- widgetState.isDefault = false;
- widgetState.canDefault = false;
- widgetState.depressed = false;
+ if (style->width().isIntrinsicOrAuto())
+ style->setWidth(Length(indicatorSize, Fixed));
- WidgetRenderingContext widgetContext(context, rect);
- return !widgetContext.paintMozillaWidget(type, &widgetState, flags,
- gtkTextDirection(renderObject->style()->direction()));
+ if (style->height().isAuto())
+ style->setHeight(Length(indicatorSize, Fixed));
}
-static void setToggleSize(const RenderThemeGtk* theme, RenderStyle* style, ControlPart appearance)
+static void paintToggle(const RenderThemeGtk* theme, GType widgetType, RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- // The width and height are both specified, so we shouldn't change them.
- if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto())
- return;
+ GtkStyleContext* context = getStyleContext(widgetType);
+ gtk_style_context_save(context);
- // FIXME: This is probably not correct use of indicatorSize and indicatorSpacing.
- gint indicatorSize, indicatorSpacing;
- theme->getIndicatorMetrics(appearance, indicatorSize, indicatorSpacing);
+ gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(gtkTextDirection(renderObject->style()->direction())));
+ gtk_style_context_add_class(context, widgetType == GTK_TYPE_CHECK_BUTTON ? GTK_STYLE_CLASS_CHECK : GTK_STYLE_CLASS_RADIO);
- // Other ports hard-code this to 13, but GTK+ users tend to demand the native look.
- // It could be made a configuration option values other than 13 actually break site compatibility.
- int length = indicatorSize + indicatorSpacing;
- if (style->width().isIntrinsicOrAuto())
- style->setWidth(Length(length, Fixed));
+ guint flags = 0;
+ if (!theme->isEnabled(renderObject) || theme->isReadOnlyControl(renderObject))
+ flags |= GTK_STATE_FLAG_INSENSITIVE;
+ else if (theme->isHovered(renderObject))
+ flags |= GTK_STATE_FLAG_PRELIGHT;
+ if (theme->isIndeterminate(renderObject))
+ flags |= GTK_STATE_FLAG_INCONSISTENT;
+ else if (theme->isChecked(renderObject))
+ flags |= GTK_STATE_FLAG_ACTIVE;
+ if (theme->isPressed(renderObject))
+ flags |= GTK_STATE_FLAG_SELECTED;
+ gtk_style_context_set_state(context, static_cast<GtkStateFlags>(flags));
- if (style->height().isAuto())
- style->setHeight(Length(length, Fixed));
+ if (widgetType == GTK_TYPE_CHECK_BUTTON)
+ gtk_render_check(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+ else
+ gtk_render_option(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+
+ if (theme->isFocused(renderObject)) {
+ IntRect indicatorRect(rect);
+ gint indicatorSpacing;
+ gtk_style_context_get_style(context, "indicator-spacing", &indicatorSpacing, NULL);
+ indicatorRect.inflate(indicatorSpacing);
+ gtk_render_focus(context, paintInfo.context->platformContext(), indicatorRect.x(), indicatorRect.y(),
+ indicatorRect.width(), indicatorRect.height());
+ }
+
+ gtk_style_context_restore(context);
}
void RenderThemeGtk::setCheckboxSize(RenderStyle* style) const
{
- setToggleSize(this, style, RadioPart);
+ setToggleSize(getStyleContext(GTK_TYPE_CHECK_BUTTON), style);
}
-bool RenderThemeGtk::paintCheckbox(RenderObject* object, const PaintInfo& info, const IntRect& rect)
+bool RenderThemeGtk::paintCheckbox(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- return paintRenderObject(MOZ_GTK_CHECKBUTTON, object, info.context, rect, isChecked(object));
+ paintToggle(this, GTK_TYPE_CHECK_BUTTON, renderObject, paintInfo, rect);
+ return false;
}
void RenderThemeGtk::setRadioSize(RenderStyle* style) const
{
- setToggleSize(this, style, RadioPart);
+ setToggleSize(getStyleContext(GTK_TYPE_RADIO_BUTTON), style);
}
-bool RenderThemeGtk::paintRadio(RenderObject* object, const PaintInfo& info, const IntRect& rect)
+bool RenderThemeGtk::paintRadio(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- return paintRenderObject(MOZ_GTK_RADIOBUTTON, object, info.context, rect, isChecked(object));
+ paintToggle(this, GTK_TYPE_RADIO_BUTTON, renderObject, paintInfo, rect);
+ return false;
}
-bool RenderThemeGtk::paintButton(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+static void renderButton(RenderTheme* theme, GtkStyleContext* context, RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- GtkStyleContext* context = getStyleContext(GTK_TYPE_BUTTON);
- gtk_style_context_save(context);
-
- gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(gtkTextDirection(renderObject->style()->direction())));
- gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
-
IntRect buttonRect(rect);
- if (isDefault(renderObject)) {
+ guint flags = 0;
+ if (!theme->isEnabled(renderObject) || theme->isReadOnlyControl(renderObject))
+ flags |= GTK_STATE_FLAG_INSENSITIVE;
+ else if (theme->isHovered(renderObject))
+ flags |= GTK_STATE_FLAG_PRELIGHT;
+ if (theme->isPressed(renderObject))
+ flags |= GTK_STATE_FLAG_ACTIVE;
+ gtk_style_context_set_state(context, static_cast<GtkStateFlags>(flags));
+
+ if (theme->isDefault(renderObject)) {
GtkBorder* borderPtr = 0;
GtkBorder border = { 1, 1, 1, 1 };
@@ -242,19 +286,10 @@ bool RenderThemeGtk::paintButton(RenderObject* renderObject, const PaintInfo& pa
gtk_style_context_add_class(context, GTK_STYLE_CLASS_DEFAULT);
}
- guint flags = 0;
- if (!isEnabled(renderObject) || isReadOnlyControl(renderObject))
- flags |= GTK_STATE_FLAG_INSENSITIVE;
- else if (isHovered(renderObject))
- flags |= GTK_STATE_FLAG_PRELIGHT;
- if (isPressed(renderObject))
- flags |= GTK_STATE_FLAG_ACTIVE;
- gtk_style_context_set_state(context, static_cast<GtkStateFlags>(flags));
-
gtk_render_background(context, paintInfo.context->platformContext(), buttonRect.x(), buttonRect.y(), buttonRect.width(), buttonRect.height());
gtk_render_frame(context, paintInfo.context->platformContext(), buttonRect.x(), buttonRect.y(), buttonRect.width(), buttonRect.height());
- if (isFocused(renderObject)) {
+ if (theme->isFocused(renderObject)) {
gint focusWidth, focusPad;
gboolean displaceFocus, interiorFocus;
gtk_style_context_get_style(context,
@@ -274,7 +309,7 @@ bool RenderThemeGtk::paintButton(RenderObject* renderObject, const PaintInfo& pa
} else
buttonRect.inflate(focusWidth + focusPad);
- if (displaceFocus && isPressed(renderObject)) {
+ if (displaceFocus && theme->isPressed(renderObject)) {
gint childDisplacementX;
gint childDisplacementY;
gtk_style_context_get_style(context,
@@ -286,64 +321,283 @@ bool RenderThemeGtk::paintButton(RenderObject* renderObject, const PaintInfo& pa
gtk_render_focus(context, paintInfo.context->platformContext(), buttonRect.x(), buttonRect.y(), buttonRect.width(), buttonRect.height());
}
+}
+bool RenderThemeGtk::paintButton(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
+{
+ GtkStyleContext* context = getStyleContext(GTK_TYPE_BUTTON);
+ gtk_style_context_save(context);
+
+ gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(gtkTextDirection(renderObject->style()->direction())));
+ gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
+
+ renderButton(this, context, renderObject, paintInfo, rect);
gtk_style_context_restore(context);
return false;
}
-static void getComboBoxPadding(RenderStyle* style, int& left, int& top, int& right, int& bottom)
+static void getComboBoxMetrics(RenderStyle* style, GtkBorder& border, int& focus, int& separator)
{
// If this menu list button isn't drawn using the native theme, we
// don't add any extra padding beyond what WebCore already uses.
if (style->appearance() == NoControlPart)
return;
- moz_gtk_get_widget_border(MOZ_GTK_DROPDOWN, &left, &top, &right, &bottom,
- gtkTextDirection(style->direction()), TRUE);
+
+ GtkStyleContext* context = getStyleContext(GTK_TYPE_BUTTON);
+ gtk_style_context_save(context);
+
+ gtk_style_context_add_class(context, GTK_STYLE_CLASS_BUTTON);
+ gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(gtkTextDirection(style->direction())));
+
+ gtk_style_context_get_border(context, static_cast<GtkStateFlags>(0), &border);
+
+ gboolean interiorFocus;
+ gint focusWidth, focusPad;
+ gtk_style_context_get_style(context,
+ "interior-focus", &interiorFocus,
+ "focus-line-width", &focusWidth,
+ "focus-padding", &focusPad, NULL);
+ focus = interiorFocus ? focusWidth + focusPad : 0;
+
+ gtk_style_context_restore(context);
+
+ context = getStyleContext(GTK_TYPE_SEPARATOR);
+ gtk_style_context_save(context);
+
+ GtkTextDirection direction = static_cast<GtkTextDirection>(gtkTextDirection(style->direction()));
+ gtk_style_context_set_direction(context, direction);
+ gtk_style_context_add_class(context, "separator");
+
+ gboolean wideSeparators;
+ gint separatorWidth;
+ gtk_style_context_get_style(context,
+ "wide-separators", &wideSeparators,
+ "separator-width", &separatorWidth,
+ NULL);
+
+ // GTK+ always uses border.left, regardless of text direction. See gtkseperator.c.
+ if (!wideSeparators)
+ separatorWidth = border.left;
+
+ separator = separatorWidth;
+
+ gtk_style_context_restore(context);
}
int RenderThemeGtk::popupInternalPaddingLeft(RenderStyle* style) const
{
- int left = 0, top = 0, right = 0, bottom = 0;
- getComboBoxPadding(style, left, top, right, bottom);
+ GtkBorder borderWidth = { 0, 0, 0, 0 };
+ int focusWidth = 0, separatorWidth = 0;
+ getComboBoxMetrics(style, borderWidth, focusWidth, separatorWidth);
+ int left = borderWidth.left + focusWidth;
+ if (style->direction() == RTL)
+ left += separatorWidth + minArrowSize;
return left;
}
int RenderThemeGtk::popupInternalPaddingRight(RenderStyle* style) const
{
- int left = 0, top = 0, right = 0, bottom = 0;
- getComboBoxPadding(style, left, top, right, bottom);
+ GtkBorder borderWidth = { 0, 0, 0, 0 };
+ int focusWidth = 0, separatorWidth = 0;
+ getComboBoxMetrics(style, borderWidth, focusWidth, separatorWidth);
+ int right = borderWidth.right + focusWidth;
+ if (style->direction() == LTR)
+ right += separatorWidth + minArrowSize;
return right;
}
int RenderThemeGtk::popupInternalPaddingTop(RenderStyle* style) const
{
- int left = 0, top = 0, right = 0, bottom = 0;
- getComboBoxPadding(style, left, top, right, bottom);
- return top;
+ GtkBorder borderWidth = { 0, 0, 0, 0 };
+ int focusWidth = 0, separatorWidth = 0;
+ getComboBoxMetrics(style, borderWidth, focusWidth, separatorWidth);
+ return borderWidth.top + focusWidth;
}
int RenderThemeGtk::popupInternalPaddingBottom(RenderStyle* style) const
{
- int left = 0, top = 0, right = 0, bottom = 0;
- getComboBoxPadding(style, left, top, right, bottom);
- return bottom;
+ GtkBorder borderWidth = { 0, 0, 0, 0 };
+ int focusWidth = 0, separatorWidth = 0;
+ getComboBoxMetrics(style, borderWidth, focusWidth, separatorWidth);
+ return borderWidth.bottom + focusWidth;
}
-bool RenderThemeGtk::paintMenuList(RenderObject* object, const PaintInfo& info, const IntRect& rect)
+bool RenderThemeGtk::paintMenuList(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- return paintRenderObject(MOZ_GTK_DROPDOWN, object, info.context, rect);
+ cairo_t* cairoContext = paintInfo.context->platformContext();
+ GtkTextDirection direction = static_cast<GtkTextDirection>(gtkTextDirection(renderObject->style()->direction()));
+
+ // Paint the button.
+ GtkStyleContext* buttonStyleContext = getStyleContext(GTK_TYPE_BUTTON);
+ gtk_style_context_save(buttonStyleContext);
+ gtk_style_context_set_direction(buttonStyleContext, direction);
+ gtk_style_context_add_class(buttonStyleContext, GTK_STYLE_CLASS_BUTTON);
+ renderButton(this, buttonStyleContext, renderObject, paintInfo, rect);
+
+ // Get the inner rectangle.
+ gint focusWidth, focusPad;
+ GtkBorder* innerBorderPtr = 0;
+ GtkBorder innerBorder = { 1, 1, 1, 1 };
+ gtk_style_context_get_style(buttonStyleContext,
+ "inner-border", &innerBorderPtr,
+ "focus-line-width", &focusWidth,
+ "focus-padding", &focusPad,
+ NULL);
+ if (innerBorderPtr) {
+ innerBorder = *innerBorderPtr;
+ gtk_border_free(innerBorderPtr);
+ }
+
+ GtkBorder borderWidth;
+ GtkStateFlags state = gtk_style_context_get_state(buttonStyleContext);
+ gtk_style_context_get_border(buttonStyleContext, state, &borderWidth);
+
+ focusWidth += focusPad;
+ IntRect innerRect(rect.x() + innerBorder.left + borderWidth.left + focusWidth,
+ rect.y() + innerBorder.top + borderWidth.top + focusWidth,
+ rect.width() - borderWidth.left - borderWidth.right - innerBorder.left - innerBorder.right - (2 * focusWidth),
+ rect.height() - borderWidth.top - borderWidth.bottom - innerBorder.top - innerBorder.bottom - (2 * focusWidth));
+
+ if (isPressed(renderObject)) {
+ gint childDisplacementX;
+ gint childDisplacementY;
+ gtk_style_context_get_style(buttonStyleContext,
+ "child-displacement-x", &childDisplacementX,
+ "child-displacement-y", &childDisplacementY,
+ NULL);
+ innerRect.move(childDisplacementX, childDisplacementY);
+ }
+ innerRect.setWidth(max(1, innerRect.width()));
+ innerRect.setHeight(max(1, innerRect.height()));
+
+ gtk_style_context_restore(buttonStyleContext);
+
+ // Paint the arrow.
+ GtkStyleContext* arrowStyleContext = getStyleContext(GTK_TYPE_ARROW);
+ gtk_style_context_save(arrowStyleContext);
+
+ gtk_style_context_set_direction(arrowStyleContext, direction);
+ gtk_style_context_add_class(arrowStyleContext, "arrow");
+ gtk_style_context_add_class(arrowStyleContext, GTK_STYLE_CLASS_BUTTON);
+
+ gfloat arrowScaling;
+ gtk_style_context_get_style(arrowStyleContext, "arrow-scaling", &arrowScaling, NULL);
+
+ IntSize arrowSize(minArrowSize, innerRect.height());
+ IntPoint arrowPosition = innerRect.location();
+ if (direction == GTK_TEXT_DIR_LTR)
+ arrowPosition.move(innerRect.width() - arrowSize.width(), 0);
+
+ // GTK+ actually fetches the xalign and valign values from the widget, but since we
+ // don't have a widget here, we are just using the default xalign and valign values of 0.5.
+ gint extent = std::min(arrowSize.width(), arrowSize.height()) * arrowScaling;
+ arrowPosition.move(std::floor((arrowSize.width() - extent) / 2), std::floor((arrowSize.height() - extent) / 2));
+
+ gtk_style_context_set_state(arrowStyleContext, state);
+ gtk_render_arrow(arrowStyleContext, cairoContext, G_PI, arrowPosition.x(), arrowPosition.y(), extent);
+
+ gtk_style_context_restore(arrowStyleContext);
+
+ // Paint the separator if needed.
+ GtkStyleContext* separatorStyleContext = getStyleContext(GTK_TYPE_SEPARATOR);
+ gtk_style_context_save(separatorStyleContext);
+
+ gtk_style_context_set_direction(separatorStyleContext, direction);
+ gtk_style_context_add_class(separatorStyleContext, "separator");
+ gtk_style_context_add_class(separatorStyleContext, GTK_STYLE_CLASS_BUTTON);
+
+ gboolean wideSeparators;
+ gint separatorWidth;
+ gtk_style_context_get_style(separatorStyleContext,
+ "wide-separators", &wideSeparators,
+ "separator-width", &separatorWidth,
+ NULL);
+ if (wideSeparators && !separatorWidth) {
+ gtk_style_context_restore(separatorStyleContext);
+ return false;
+ }
+
+ gtk_style_context_set_state(separatorStyleContext, state);
+ IntPoint separatorPosition(arrowPosition.x(), innerRect.y());
+ if (wideSeparators) {
+ if (direction == GTK_TEXT_DIR_LTR)
+ separatorPosition.move(-separatorWidth, 0);
+ else
+ separatorPosition.move(arrowSize.width(), 0);
+
+ gtk_render_frame(separatorStyleContext, cairoContext,
+ separatorPosition.x(), separatorPosition.y(),
+ separatorWidth, innerRect.height());
+ } else {
+ GtkBorder padding;
+ gtk_style_context_get_padding(separatorStyleContext, state, &padding);
+ GtkBorder border;
+ gtk_style_context_get_border(separatorStyleContext, state, &border);
+
+ if (direction == GTK_TEXT_DIR_LTR)
+ separatorPosition.move(-(padding.left + border.left), 0);
+ else
+ separatorPosition.move(arrowSize.width(), 0);
+
+ cairo_save(cairoContext);
+
+ // An extra clip prevents the separator bleeding outside of the specified rectangle because of subpixel positioning.
+ cairo_rectangle(cairoContext, separatorPosition.x(), separatorPosition.y(), border.left, innerRect.height());
+ cairo_clip(cairoContext);
+ gtk_render_line(separatorStyleContext, cairoContext,
+ separatorPosition.x(), separatorPosition.y(),
+ separatorPosition.x(), innerRect.bottom());
+ cairo_restore(cairoContext);
+ }
+
+ gtk_style_context_restore(separatorStyleContext);
+ return false;
}
-bool RenderThemeGtk::paintTextField(RenderObject* object, const PaintInfo& info, const IntRect& rect)
+bool RenderThemeGtk::paintTextField(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
- return paintRenderObject(MOZ_GTK_ENTRY, object, info.context, rect);
+ GtkStyleContext* context = getStyleContext(GTK_TYPE_ENTRY);
+ gtk_style_context_save(context);
+
+ gtk_style_context_set_direction(context, static_cast<GtkTextDirection>(gtkTextDirection(renderObject->style()->direction())));
+ gtk_style_context_add_class(context, GTK_STYLE_CLASS_ENTRY);
+
+ guint flags = 0;
+ if (!isEnabled(renderObject) || isReadOnlyControl(renderObject))
+ flags |= GTK_STATE_FLAG_INSENSITIVE;
+ else if (isFocused(renderObject))
+ flags |= GTK_STATE_FLAG_FOCUSED;
+ gtk_style_context_set_state(context, static_cast<GtkStateFlags>(flags));
+
+ gtk_render_background(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+ gtk_render_frame(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+
+ if (isFocused(renderObject) && isEnabled(renderObject)) {
+ gboolean interiorFocus;
+ gint focusWidth, focusPad;
+ gtk_style_context_get_style(context,
+ "interior-focus", &interiorFocus,
+ "focus-line-width", &focusWidth,
+ "focus-padding", &focusPad,
+ NULL);
+ if (!interiorFocus) {
+ IntRect focusRect(rect);
+ focusRect.inflate(focusWidth + focusPad);
+ gtk_render_focus(context, paintInfo.context->platformContext(),
+ focusRect.x(), focusRect.y(), focusRect.width(), focusRect.height());
+ }
+ }
+
+ gtk_style_context_restore(context);
+
+ return false;
}
bool RenderThemeGtk::paintSliderTrack(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
ControlPart part = renderObject->style()->appearance();
- ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart);
+ ASSERT(part == SliderHorizontalPart || part == SliderVerticalPart || part == MediaVolumeSliderPart);
GtkStyleContext* context = getStyleContext(part == SliderThumbHorizontalPart ? GTK_TYPE_HSCALE : GTK_TYPE_VSCALE);
gtk_style_context_save(context);
@@ -378,7 +632,7 @@ bool RenderThemeGtk::paintSliderTrack(RenderObject* renderObject, const PaintInf
bool RenderThemeGtk::paintSliderThumb(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
ControlPart part = renderObject->style()->appearance();
- ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart);
+ ASSERT(part == SliderThumbHorizontalPart || part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
GtkStyleContext* context = getStyleContext(part == SliderThumbHorizontalPart ? GTK_TYPE_HSCALE : GTK_TYPE_VSCALE);
gtk_style_context_save(context);
@@ -414,7 +668,7 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* renderObject) const
{
ControlPart part = renderObject->style()->appearance();
#if ENABLE(VIDEO)
- if (part == MediaSliderThumbPart || part == MediaVolumeSliderThumbPart) {
+ if (part == MediaSliderThumbPart) {
adjustMediaSliderThumbSize(renderObject);
return;
}
@@ -430,37 +684,73 @@ void RenderThemeGtk::adjustSliderThumbSize(RenderObject* renderObject) const
renderObject->style()->setHeight(Length(sliderWidth, Fixed));
return;
}
- ASSERT(part == SliderThumbVerticalPart);
+ ASSERT(part == SliderThumbVerticalPart || part == MediaVolumeSliderThumbPart);
renderObject->style()->setWidth(Length(sliderWidth, Fixed));
renderObject->style()->setHeight(Length(sliderLength, Fixed));
}
#if ENABLE(PROGRESS_TAG)
+// These values have been copied from RenderThemeChromiumSkia.cpp
+static const int progressActivityBlocks = 5;
+static const int progressAnimationFrames = 10;
+static const double progressAnimationInterval = 0.125;
+double RenderThemeGtk::animationRepeatIntervalForProgressBar(RenderProgress*) const
+{
+ return progressAnimationInterval;
+}
+
+double RenderThemeGtk::animationDurationForProgressBar(RenderProgress*) const
+{
+ return progressAnimationInterval * progressAnimationFrames * 2; // "2" for back and forth;
+}
+
bool RenderThemeGtk::paintProgressBar(RenderObject* renderObject, const PaintInfo& paintInfo, const IntRect& rect)
{
if (!renderObject->isProgress())
return true;
- GtkWidget* progressBarWidget = moz_gtk_get_progress_widget();
- if (!progressBarWidget)
- return true;
+ GtkStyleContext* context = getStyleContext(GTK_TYPE_PROGRESS_BAR);
+ gtk_style_context_save(context);
- if (paintRenderObject(MOZ_GTK_PROGRESSBAR, renderObject, paintInfo.context, rect))
- return true;
+ gtk_style_context_add_class(context, GTK_STYLE_CLASS_TROUGH);
+
+ gtk_render_background(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+ gtk_render_frame(context, paintInfo.context->platformContext(), rect.x(), rect.y(), rect.width(), rect.height());
+
+ gtk_style_context_restore(context);
+
+ gtk_style_context_save(context);
+ gtk_style_context_add_class(context, GTK_STYLE_CLASS_PROGRESSBAR);
- IntRect chunkRect(rect);
RenderProgress* renderProgress = toRenderProgress(renderObject);
- GtkStyle* style = gtk_widget_get_style(progressBarWidget);
- chunkRect.setHeight(chunkRect.height() - (2 * style->ythickness));
- chunkRect.setY(chunkRect.y() + style->ythickness);
- chunkRect.setWidth((chunkRect.width() - (2 * style->xthickness)) * renderProgress->position());
- if (renderObject->style()->direction() == RTL)
- chunkRect.setX(rect.x() + rect.width() - chunkRect.width() - style->xthickness);
- else
- chunkRect.setX(chunkRect.x() + style->xthickness);
+ GtkBorder padding;
+ gtk_style_context_get_padding(context, static_cast<GtkStateFlags>(0), &padding);
+ IntRect progressRect(rect.x() + padding.left, rect.y() + padding.top,
+ rect.width() - (padding.left + padding.right),
+ rect.height() - (padding.top + padding.bottom));
+
+ if (renderProgress->isDeterminate()) {
+ progressRect.setWidth(progressRect.width() * renderProgress->position());
+ if (renderObject->style()->direction() == RTL)
+ progressRect.setX(rect.x() + rect.width() - progressRect.width() - padding.right);
+ } else {
+ double animationProgress = renderProgress->animationProgress();
+
+ progressRect.setWidth(max(2, progressRect.width() / progressActivityBlocks));
+ int movableWidth = rect.width() - progressRect.width();
+ if (animationProgress < 0.5)
+ progressRect.setX(progressRect.x() + (animationProgress * 2 * movableWidth));
+ else
+ progressRect.setX(progressRect.x() + ((1.0 - animationProgress) * 2 * movableWidth));
+ }
+
+ if (!progressRect.isEmpty())
+ gtk_render_activity(context, paintInfo.context->platformContext(), progressRect.x(), progressRect.y(), progressRect.width(), progressRect.height());
+
+ gtk_style_context_restore(context);
- return paintRenderObject(MOZ_GTK_PROGRESS_CHUNK, renderObject, paintInfo.context, chunkRect);
+ return false;
}
#endif
@@ -558,86 +848,6 @@ Color RenderThemeGtk::systemColor(int cssValueId) const
}
}
-static void gtkStyleSetCallback(GtkWidget* widget, GtkStyle* previous, RenderTheme* renderTheme)
-{
- // FIXME: Make sure this function doesn't get called many times for a single GTK+ style change signal.
- renderTheme->platformColorsDidChange();
-}
-
-void RenderThemeGtk::setupWidgetAndAddToContainer(GtkWidget* widget, GtkWidget* window) const
-{
- gtk_container_add(GTK_CONTAINER(window), widget);
- gtk_widget_realize(widget);
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
-
- // FIXME: Perhaps this should only be called for the containing window or parent container.
- g_signal_connect(widget, "style-set", G_CALLBACK(gtkStyleSetCallback), const_cast<RenderThemeGtk*>(this));
-}
-
-GtkWidget* RenderThemeGtk::gtkContainer() const
-{
- if (m_gtkContainer)
- return m_gtkContainer;
-
- m_gtkWindow = gtk_window_new(GTK_WINDOW_POPUP);
- gtk_widget_realize(m_gtkWindow);
- gtk_widget_set_name(m_gtkWindow, "MozillaGtkWidget");
-
- m_gtkContainer = gtk_fixed_new();
- setupWidgetAndAddToContainer(m_gtkContainer, m_gtkWindow);
- return m_gtkContainer;
-}
-
-GtkWidget* RenderThemeGtk::gtkButton() const
-{
- if (m_gtkButton)
- return m_gtkButton;
- m_gtkButton = gtk_button_new();
- setupWidgetAndAddToContainer(m_gtkButton, gtkContainer());
- return m_gtkButton;
-}
-
-GtkWidget* RenderThemeGtk::gtkEntry() const
-{
- if (m_gtkEntry)
- return m_gtkEntry;
- m_gtkEntry = gtk_entry_new();
- setupWidgetAndAddToContainer(m_gtkEntry, gtkContainer());
- return m_gtkEntry;
-}
-
-GtkWidget* RenderThemeGtk::gtkTreeView() const
-{
- if (m_gtkTreeView)
- return m_gtkTreeView;
- m_gtkTreeView = gtk_tree_view_new();
- setupWidgetAndAddToContainer(m_gtkTreeView, gtkContainer());
- return m_gtkTreeView;
-}
-
-GtkWidget* RenderThemeGtk::gtkVScale() const
-{
- if (m_gtkVScale)
- return m_gtkVScale;
- m_gtkVScale = gtk_vscale_new(0);
- setupWidgetAndAddToContainer(m_gtkVScale, gtkContainer());
- return m_gtkVScale;
-}
-
-GtkWidget* RenderThemeGtk::gtkHScale() const
-{
- if (m_gtkHScale)
- return m_gtkHScale;
- m_gtkHScale = gtk_hscale_new(0);
- setupWidgetAndAddToContainer(m_gtkHScale, gtkContainer());
- return m_gtkHScale;
-}
-
-GtkStyleContext* RenderThemeGtk::gtkScrollbarStyle()
-{
- return getStyleContext(GTK_TYPE_SCROLLBAR);
-}
-
} // namespace WebCore
#endif // !GTK_API_VERSION_2
diff --git a/Source/WebCore/platform/gtk/WidgetRenderingContextGtk2.cpp b/Source/WebCore/platform/gtk/WidgetRenderingContext.cpp
index e85c570..6d1be31 100644
--- a/Source/WebCore/platform/gtk/WidgetRenderingContextGtk2.cpp
+++ b/Source/WebCore/platform/gtk/WidgetRenderingContext.cpp
@@ -32,6 +32,7 @@
#include "WidgetRenderingContext.h"
#include "GraphicsContext.h"
+#include "GtkVersioning.h"
#include "RefPtrCairo.h"
#include "RenderThemeGtk.h"
#include "Timer.h"
@@ -107,7 +108,7 @@ WidgetRenderingContext::WidgetRenderingContext(GraphicsContext* graphicsContext,
int scratchWidth = 0;
int scratchHeight = 0;
if (gScratchBuffer)
- gdk_drawable_get_size(gScratchBuffer, &scratchWidth, &scratchHeight);
+ gdk_pixmap_get_size(gScratchBuffer, &scratchWidth, &scratchHeight);
// We do not need to recreate the buffer if the current buffer is large enough.
if (!gScratchBuffer || scratchWidth < width || scratchHeight < height) {
diff --git a/Source/WebCore/platform/gtk/WidgetRenderingContext.h b/Source/WebCore/platform/gtk/WidgetRenderingContext.h
index 7334656..8b2a0e2 100644
--- a/Source/WebCore/platform/gtk/WidgetRenderingContext.h
+++ b/Source/WebCore/platform/gtk/WidgetRenderingContext.h
@@ -22,6 +22,8 @@
#ifndef WidgetRenderingContext_h
#define WidgetRenderingContext_h
+#ifdef GTK_API_VERSION_2
+
#include "IntRect.h"
#include "gtkdrawing.h"
@@ -46,15 +48,11 @@ private:
GdkRectangle m_paintRect;
IntSize m_extraSpace;
bool m_hadError;
-
-#ifdef GTK_API_VERSION_2
GdkDrawable* m_target;
-#else
- cairo_t* m_target;
-#endif
};
}
-#endif
+#endif // GTK_API_VERSION_2
+#endif // WidgetRenderingContext_h
diff --git a/Source/WebCore/platform/gtk/WidgetRenderingContextGtk3.cpp b/Source/WebCore/platform/gtk/WidgetRenderingContextGtk3.cpp
deleted file mode 100644
index 69c4af5..0000000
--- a/Source/WebCore/platform/gtk/WidgetRenderingContextGtk3.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.
- *
- */
-
-#include "config.h"
-#include "WidgetRenderingContext.h"
-
-#include "GraphicsContext.h"
-#include "IntRect.h"
-
-#ifndef GTK_API_VERSION_2
-
-namespace WebCore {
-
-WidgetRenderingContext::WidgetRenderingContext(GraphicsContext* context, const IntRect& targetRect)
- : m_graphicsContext(context)
- , m_targetRect(targetRect)
- , m_paintRect(targetRect)
- , m_hadError(false)
- , m_target(context->platformContext())
-{
-}
-
-WidgetRenderingContext::~WidgetRenderingContext()
-{
-}
-
-bool WidgetRenderingContext::paintMozillaWidget(GtkThemeWidgetType type, GtkWidgetState* state, int flags, GtkTextDirection textDirection)
-{
- m_hadError = moz_gtk_widget_paint(type, m_target, &m_paintRect, state, flags, textDirection) != MOZ_GTK_SUCCESS;
- return !m_hadError;
-}
-
-void WidgetRenderingContext::gtkPaintBox(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, GtkShadowType shadowType, const gchar* detail)
-{
- GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
- gtk_paint_box(gtk_widget_get_style(widget), m_target, stateType, shadowType, widget,
- detail, paintRect.x, paintRect.y, paintRect.width, paintRect.height);
-}
-
-void WidgetRenderingContext::gtkPaintFocus(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, const gchar* detail)
-{
- GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
- gtk_paint_focus(gtk_widget_get_style(widget), m_target, stateType, widget,
- detail, paintRect.x, paintRect.y, paintRect.width, paintRect.height);
-}
-
-void WidgetRenderingContext::gtkPaintSlider(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, GtkShadowType shadowType, const gchar* detail, GtkOrientation orientation)
-{
- GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
- gtk_paint_slider(gtk_widget_get_style(widget), m_target, stateType, shadowType, widget,
- detail, paintRect.x, paintRect.y, paintRect.width, paintRect.height, orientation);
-}
-
-}
-
-#endif // !GTK_API_VERSION_2
diff --git a/Source/WebCore/platform/gtk/gtk3drawing.c b/Source/WebCore/platform/gtk/gtk3drawing.c
deleted file mode 100644
index d3bdd56..0000000
--- a/Source/WebCore/platform/gtk/gtk3drawing.c
+++ /dev/null
@@ -1,1288 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2002
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * Brian Ryner <bryner@brianryner.com> (Original Author)
- * Pierre Chanial <p_ch@verizon.net>
- * Michael Ventnor <m.ventnor@gmail.com>
- * Alp Toker <alp@nuanti.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/*
- * This file contains painting functions for each of the gtk2 widgets.
- * Adapted from the gtkdrawing.c, and gtk+2.0 source.
- */
-
-#ifndef GTK_API_VERSION_2
-
-#include <gdk/gdkprivate.h>
-#include "gtkdrawing.h"
-#include "GtkVersioning.h"
-#include <math.h>
-#include <string.h>
-
-#define XTHICKNESS(style) (style->xthickness)
-#define YTHICKNESS(style) (style->ythickness)
-
-static GtkThemeParts *gParts = NULL;
-static style_prop_t style_prop_func;
-static gboolean have_arrow_scaling;
-static gboolean is_initialized;
-
-void
-moz_gtk_use_theme_parts(GtkThemeParts* parts)
-{
- gParts = parts;
-}
-
-/* Because we have such an unconventional way of drawing widgets, signal to the GTK theme engine
- that they are drawing for Mozilla instead of a conventional GTK app so they can do any specific
- things they may want to do. */
-static void
-moz_gtk_set_widget_name(GtkWidget* widget)
-{
- gtk_widget_set_name(widget, "MozillaGtkWidget");
-}
-
-gint
-moz_gtk_enable_style_props(style_prop_t styleGetProp)
-{
- style_prop_func = styleGetProp;
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_window_widget()
-{
- if (!gParts->protoWindow) {
- gParts->protoWindow = gtk_window_new(GTK_WINDOW_POPUP);
- gtk_widget_realize(gParts->protoWindow);
- moz_gtk_set_widget_name(gParts->protoWindow);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-setup_widget_prototype(GtkWidget* widget)
-{
- ensure_window_widget();
- if (!gParts->protoLayout) {
- gParts->protoLayout = gtk_fixed_new();
- gtk_container_add(GTK_CONTAINER(gParts->protoWindow), gParts->protoLayout);
- }
-
- gtk_container_add(GTK_CONTAINER(gParts->protoLayout), widget);
- gtk_widget_realize(widget);
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_button_widget()
-{
- if (!gParts->buttonWidget) {
- gParts->buttonWidget = gtk_button_new_with_label("M");
- setup_widget_prototype(gParts->buttonWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_toggle_button_widget()
-{
- if (!gParts->toggleButtonWidget) {
- gParts->toggleButtonWidget = gtk_toggle_button_new();
- setup_widget_prototype(gParts->toggleButtonWidget);
- /* toggle button must be set active to get the right style on hover. */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gParts->toggleButtonWidget), TRUE);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_button_arrow_widget()
-{
- if (!gParts->buttonArrowWidget) {
- ensure_toggle_button_widget();
-
- gParts->buttonArrowWidget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
- gtk_container_add(GTK_CONTAINER(gParts->toggleButtonWidget), gParts->buttonArrowWidget);
- gtk_widget_realize(gParts->buttonArrowWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_checkbox_widget()
-{
- if (!gParts->checkboxWidget) {
- gParts->checkboxWidget = gtk_check_button_new_with_label("M");
- setup_widget_prototype(gParts->checkboxWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_radiobutton_widget()
-{
- if (!gParts->radiobuttonWidget) {
- gParts->radiobuttonWidget = gtk_radio_button_new_with_label(NULL, "M");
- setup_widget_prototype(gParts->radiobuttonWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_scrollbar_widget()
-{
- if (!gParts->vertScrollbarWidget) {
- gParts->vertScrollbarWidget = gtk_vscrollbar_new(NULL);
- setup_widget_prototype(gParts->vertScrollbarWidget);
- }
- if (!gParts->horizScrollbarWidget) {
- gParts->horizScrollbarWidget = gtk_hscrollbar_new(NULL);
- setup_widget_prototype(gParts->horizScrollbarWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_entry_widget()
-{
- if (!gParts->entryWidget) {
- gParts->entryWidget = gtk_entry_new();
- setup_widget_prototype(gParts->entryWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-/* We need to have pointers to the inner widgets (button, separator, arrow)
- * of the ComboBox to get the correct rendering from theme engines which
- * special cases their look. Since the inner layout can change, we ask GTK
- * to NULL our pointers when they are about to become invalid because the
- * corresponding widgets don't exist anymore. It's the role of
- * g_object_add_weak_pointer().
- * Note that if we don't find the inner widgets (which shouldn't happen), we
- * fallback to use generic "non-inner" widgets, and they don't need that kind
- * of weak pointer since they are explicit children of gParts->protoWindow and as
- * such GTK holds a strong reference to them. */
-static void
-moz_gtk_get_combo_box_inner_button(GtkWidget *widget, gpointer client_data)
-{
- if (GTK_IS_TOGGLE_BUTTON(widget)) {
- gParts->comboBoxButtonWidget = widget;
- g_object_add_weak_pointer(G_OBJECT(widget),
- (gpointer) &gParts->comboBoxButtonWidget);
- gtk_widget_realize(widget);
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
- }
-}
-
-static void
-moz_gtk_get_combo_box_button_inner_widgets(GtkWidget *widget,
- gpointer client_data)
-{
- if (GTK_IS_SEPARATOR(widget)) {
- gParts->comboBoxSeparatorWidget = widget;
- g_object_add_weak_pointer(G_OBJECT(widget),
- (gpointer) &gParts->comboBoxSeparatorWidget);
- } else if (GTK_IS_ARROW(widget)) {
- gParts->comboBoxArrowWidget = widget;
- g_object_add_weak_pointer(G_OBJECT(widget),
- (gpointer) &gParts->comboBoxArrowWidget);
- } else
- return;
- gtk_widget_realize(widget);
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
-}
-
-static gint
-ensure_combo_box_widgets()
-{
- GtkWidget* buttonChild;
-
- if (gParts->comboBoxButtonWidget && gParts->comboBoxArrowWidget)
- return MOZ_GTK_SUCCESS;
-
- /* Create a ComboBox if needed */
- if (!gParts->comboBoxWidget) {
- gParts->comboBoxWidget = gtk_combo_box_new();
- setup_widget_prototype(gParts->comboBoxWidget);
- }
-
- /* Get its inner Button */
- gtk_container_forall(GTK_CONTAINER(gParts->comboBoxWidget),
- moz_gtk_get_combo_box_inner_button,
- NULL);
-
- if (gParts->comboBoxButtonWidget) {
- /* Get the widgets inside the Button */
- buttonChild = gtk_bin_get_child(GTK_BIN(gParts->comboBoxButtonWidget));
- if (GTK_IS_HBOX(buttonChild)) {
- /* appears-as-list = FALSE, cell-view = TRUE; the button
- * contains an hbox. This hbox is there because the ComboBox
- * needs to place a cell renderer, a separator, and an arrow in
- * the button when appears-as-list is FALSE. */
- gtk_container_forall(GTK_CONTAINER(buttonChild),
- moz_gtk_get_combo_box_button_inner_widgets,
- NULL);
- } else if(GTK_IS_ARROW(buttonChild)) {
- /* appears-as-list = TRUE, or cell-view = FALSE;
- * the button only contains an arrow */
- gParts->comboBoxArrowWidget = buttonChild;
- g_object_add_weak_pointer(G_OBJECT(buttonChild), (gpointer)
- &gParts->comboBoxArrowWidget);
- gtk_widget_realize(gParts->comboBoxArrowWidget);
- g_object_set_data(G_OBJECT(gParts->comboBoxArrowWidget),
- "transparent-bg-hint", GINT_TO_POINTER(TRUE));
- }
- } else {
- /* Shouldn't be reached with current internal gtk implementation; we
- * use a generic toggle button as last resort fallback to avoid
- * crashing. */
- ensure_toggle_button_widget();
- gParts->comboBoxButtonWidget = gParts->toggleButtonWidget;
- }
-
- if (!gParts->comboBoxArrowWidget) {
- /* Shouldn't be reached with current internal gtk implementation;
- * we gParts->buttonArrowWidget as last resort fallback to avoid
- * crashing. */
- ensure_button_arrow_widget();
- gParts->comboBoxArrowWidget = gParts->buttonArrowWidget;
- }
-
- /* We don't test the validity of gParts->comboBoxSeparatorWidget since there
- * is none when "appears-as-list" = TRUE or "cell-view" = FALSE; if it
- * is invalid we just won't paint it. */
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_progress_widget()
-{
- if (!gParts->progresWidget) {
- gParts->progresWidget = gtk_progress_bar_new();
- setup_widget_prototype(gParts->progresWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_scrolled_window_widget()
-{
- if (!gParts->scrolledWindowWidget) {
- gParts->scrolledWindowWidget = gtk_scrolled_window_new(NULL, NULL);
- setup_widget_prototype(gParts->scrolledWindowWidget);
- }
- return MOZ_GTK_SUCCESS;
-}
-
-static GtkStateType
-ConvertGtkState(GtkWidgetState* state)
-{
- if (state->disabled)
- return GTK_STATE_INSENSITIVE;
- else if (state->depressed)
- return (state->inHover ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE);
- else if (state->inHover)
- return (state->active ? GTK_STATE_ACTIVE : GTK_STATE_PRELIGHT);
- else
- return GTK_STATE_NORMAL;
-}
-
-static gint
-moz_gtk_button_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state, GtkReliefStyle relief,
- GtkWidget* widget, GtkTextDirection direction)
-{
- GtkShadowType shadow_type;
- GtkStyle* style = gtk_widget_get_style(widget);
- GtkStateType button_state = ConvertGtkState(state);
- gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
- GdkWindow* window = gtk_widget_get_window(widget);
-
- gboolean interior_focus;
- gint focus_width, focus_pad;
-
- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
-
- if (window && gdk_window_is_visible(window)) {
- gdk_window_set_background_pattern(window, NULL);
- }
-
- gtk_widget_set_state(widget, button_state);
- gtk_widget_set_direction(widget, direction);
- gtk_button_set_relief(GTK_BUTTON(widget), relief);
-
- if (!interior_focus && state->focused) {
- x += focus_width + focus_pad;
- y += focus_width + focus_pad;
- width -= 2 * (focus_width + focus_pad);
- height -= 2 * (focus_width + focus_pad);
- }
-
- shadow_type = button_state == GTK_STATE_ACTIVE ||
- state->depressed ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
-
- if (state->isDefault && relief == GTK_RELIEF_NORMAL) {
- gtk_paint_box(style, cr, button_state, shadow_type,
- widget, "buttondefault", x, y, width, height);
- }
-
- if (relief != GTK_RELIEF_NONE || state->depressed ||
- (button_state != GTK_STATE_NORMAL &&
- button_state != GTK_STATE_INSENSITIVE)) {
- /* the following line can trigger an assertion (Crux theme)
- file ../../gdk/gdkwindow.c: line 1846 (gdk_window_clear_area):
- assertion `GDK_IS_WINDOW (window)' failed */
- gtk_paint_box(style, cr, button_state, shadow_type,
- widget, "button", x, y, width, height);
- }
-
- if (state->focused) {
- if (interior_focus) {
- GtkStyle* style = gtk_widget_get_style(widget);
- x += style->xthickness + focus_pad;
- y += style->ythickness + focus_pad;
- width -= 2 * (style->xthickness + focus_pad);
- height -= 2 * (style->ythickness + focus_pad);
- } else {
- x -= focus_width + focus_pad;
- y -= focus_width + focus_pad;
- width += 2 * (focus_width + focus_pad);
- height += 2 * (focus_width + focus_pad);
- }
-
- gtk_paint_focus(style, cr, button_state,
- widget, "button", x, y, width, height);
- }
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_init()
-{
- GtkWidgetClass *entry_class;
-
- is_initialized = TRUE;
- have_arrow_scaling = (gtk_major_version > 2 ||
- (gtk_major_version == 2 && gtk_minor_version >= 12));
-
- /* Add style property to GtkEntry.
- * Adding the style property to the normal GtkEntry class means that it
- * will work without issues inside GtkComboBox and for Spinbuttons. */
- entry_class = g_type_class_ref(GTK_TYPE_ENTRY);
- gtk_widget_class_install_style_property(entry_class,
- g_param_spec_boolean("honors-transparent-bg-hint",
- "Transparent BG enabling flag",
- "If TRUE, the theme is able to draw the GtkEntry on non-prefilled background.",
- FALSE,
- G_PARAM_READWRITE));
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_checkbox_get_metrics(gint* indicator_size, gint* indicator_spacing)
-{
- ensure_checkbox_widget();
-
- gtk_widget_style_get (gParts->checkboxWidget,
- "indicator_size", indicator_size,
- "indicator_spacing", indicator_spacing,
- NULL);
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing)
-{
- ensure_radiobutton_widget();
-
- gtk_widget_style_get (gParts->radiobuttonWidget,
- "indicator_size", indicator_size,
- "indicator_spacing", indicator_spacing,
- NULL);
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
- gint* focus_width, gint* focus_pad)
-{
- gtk_widget_style_get (widget,
- "interior-focus", interior_focus,
- "focus-line-width", focus_width,
- "focus-padding", focus_pad,
- NULL);
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
-{
- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
- GtkBorder *tmp_border;
-
- gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
-
- if (tmp_border) {
- *inner_border = *tmp_border;
- gtk_border_free(tmp_border);
- }
- else
- *inner_border = default_inner_border;
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_toggle_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state, gboolean selected,
- gboolean inconsistent, gboolean isradio,
- GtkTextDirection direction)
-{
- GtkStateType state_type = ConvertGtkState(state);
- GtkShadowType shadow_type = (selected)?GTK_SHADOW_IN:GTK_SHADOW_OUT;
- gint indicator_size, indicator_spacing;
- gint x, y, width, height;
- gint focus_x, focus_y, focus_width, focus_height;
- GtkWidget *w;
- GtkStyle *style;
-
- if (isradio) {
- moz_gtk_radio_get_metrics(&indicator_size, &indicator_spacing);
- w = gParts->radiobuttonWidget;
- } else {
- moz_gtk_checkbox_get_metrics(&indicator_size, &indicator_spacing);
- w = gParts->checkboxWidget;
- }
-
- // "GetMinimumWidgetSize was ignored"
- // FIXME: This assert causes a build failure in WebKitGTK+ debug
- // builds, because it uses 'false' in its definition. We may want
- // to force this file to be built with g++, by renaming it.
- // ASSERT(rect->width == indicator_size);
-
- /*
- * vertically center in the box, since XUL sometimes ignores our
- * GetMinimumWidgetSize in the vertical dimension
- */
- x = rect->x;
- y = rect->y + (rect->height - indicator_size) / 2;
- width = indicator_size;
- height = indicator_size;
-
- focus_x = x - indicator_spacing;
- focus_y = y - indicator_spacing;
- focus_width = width + 2 * indicator_spacing;
- focus_height = height + 2 * indicator_spacing;
-
- style = gtk_widget_get_style(w);
-
- gtk_widget_set_sensitive(w, !state->disabled);
- gtk_widget_set_direction(w, direction);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), selected);
-
- if (isradio) {
- gtk_paint_option(style, cr, state_type, shadow_type,
- gParts->radiobuttonWidget, "radiobutton", x, y,
- width, height);
- if (state->focused) {
- gtk_paint_focus(style, cr, GTK_STATE_ACTIVE,
- gParts->radiobuttonWidget, "radiobutton", focus_x, focus_y,
- focus_width, focus_height);
- }
- }
- else {
- /*
- * 'indeterminate' type on checkboxes. In GTK, the shadow type
- * must also be changed for the state to be drawn.
- */
- if (inconsistent) {
- gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gParts->checkboxWidget), TRUE);
- shadow_type = GTK_SHADOW_ETCHED_IN;
- } else {
- gtk_toggle_button_set_inconsistent(GTK_TOGGLE_BUTTON(gParts->checkboxWidget), FALSE);
- }
-
- gtk_paint_check(style, cr, state_type, shadow_type,
- gParts->checkboxWidget, "checkbutton", x, y, width, height);
- if (state->focused) {
- gtk_paint_focus(style, cr, GTK_STATE_ACTIVE,
- gParts->checkboxWidget, "checkbutton", focus_x, focus_y,
- focus_width, focus_height);
- }
- }
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
- GdkRectangle* inner_rect,
- GtkTextDirection direction,
- gboolean ignore_focus)
-{
- GtkBorder inner_border;
- gboolean interior_focus;
- gint focus_width, focus_pad;
- GtkStyle* style;
-
- style = gtk_widget_get_style(button);
-
- /* This mirrors gtkbutton's child positioning */
- moz_gtk_button_get_inner_border(button, &inner_border);
- moz_gtk_widget_get_focus(button, &interior_focus,
- &focus_width, &focus_pad);
-
- if (ignore_focus)
- focus_width = focus_pad = 0;
-
- inner_rect->x = rect->x + XTHICKNESS(style) + focus_width + focus_pad;
- inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
- inner_border.left : inner_border.right;
- inner_rect->y = rect->y + inner_border.top + YTHICKNESS(style) +
- focus_width + focus_pad;
- inner_rect->width = MAX(1, rect->width - inner_border.left -
- inner_border.right - (XTHICKNESS(style) + focus_pad + focus_width) * 2);
- inner_rect->height = MAX(1, rect->height - inner_border.top -
- inner_border.bottom - (YTHICKNESS(style) + focus_pad + focus_width) * 2);
-
- return MOZ_GTK_SUCCESS;
-}
-
-
-static gint
-calculate_arrow_rect(GtkWidget* arrow, GdkRectangle* rect,
- GdkRectangle* arrow_rect, GtkTextDirection direction)
-{
- /* defined in gtkarrow.c */
- gfloat arrow_scaling = 0.7;
- gfloat xalign, xpad;
- gint extent;
- GtkMisc* misc = GTK_MISC(arrow);
- gfloat misc_xalign, misc_yalign;
- gint misc_xpad, misc_ypad;
-
- if (have_arrow_scaling)
- gtk_widget_style_get(arrow, "arrow_scaling", &arrow_scaling, NULL);
-
- gtk_misc_get_padding(misc, &misc_xpad, &misc_ypad);
- gtk_misc_get_alignment(misc, &misc_xalign, &misc_yalign);
-
- extent = MIN((rect->width - misc_xpad * 2),
- (rect->height - misc_ypad * 2)) * arrow_scaling;
-
- xalign = direction == GTK_TEXT_DIR_LTR ? misc_xalign : 1.0 - misc_xalign;
- xpad = misc_xpad + (rect->width - extent) * xalign;
-
- arrow_rect->x = direction == GTK_TEXT_DIR_LTR ?
- floor(rect->x + xpad) : ceil(rect->x + xpad);
- arrow_rect->y = floor(rect->y + misc_ypad +
- ((rect->height - extent) * misc_yalign));
-
- arrow_rect->width = arrow_rect->height = extent;
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrolled_window_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state)
-{
- GtkStyle* style;
- GtkAllocation allocation;
- GtkWidget* widget;
-
- ensure_scrolled_window_widget();
- widget = gParts->scrolledWindowWidget;
-
- gtk_widget_get_allocation(widget, &allocation);
- allocation.x = rect->x;
- allocation.y = rect->y;
- allocation.width = rect->width;
- allocation.height = rect->height;
- gtk_widget_set_allocation(widget, &allocation);
-
- style = gtk_widget_get_style(widget);
- gtk_paint_shadow(style, cr, GTK_STATE_NORMAL, GTK_SHADOW_IN,
- widget, "scrolled_window", rect->x , rect->y,
- rect->width, rect->height);
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_button_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state,
- GtkScrollbarButtonFlags flags,
- GtkTextDirection direction)
-{
- GtkStateType state_type = ConvertGtkState(state);
- GtkShadowType shadow_type = (state->active) ?
- GTK_SHADOW_IN : GTK_SHADOW_OUT;
- GdkRectangle arrow_rect;
- GtkStyle* style;
- GtkWidget *scrollbar;
- GtkAllocation allocation;
- GtkArrowType arrow_type;
- gint arrow_displacement_x, arrow_displacement_y;
- const char* detail = (flags & MOZ_GTK_STEPPER_VERTICAL) ?
- "vscrollbar" : "hscrollbar";
-
- ensure_scrollbar_widget();
-
- if (flags & MOZ_GTK_STEPPER_VERTICAL)
- scrollbar = gParts->vertScrollbarWidget;
- else
- scrollbar = gParts->horizScrollbarWidget;
-
- gtk_widget_set_direction(scrollbar, direction);
-
- /* Some theme engines (i.e., ClearLooks) check the scrollbar's allocation
- to determine where it should paint rounded corners on the buttons.
- We need to trick them into drawing the buttons the way we want them. */
-
- gtk_widget_get_allocation(scrollbar, &allocation);
- allocation.x = rect->x;
- allocation.y = rect->y;
- allocation.width = rect->width;
- allocation.height = rect->height;
-
- if (flags & MOZ_GTK_STEPPER_VERTICAL) {
- allocation.height *= 5;
- if (flags & MOZ_GTK_STEPPER_DOWN) {
- arrow_type = GTK_ARROW_DOWN;
- if (flags & MOZ_GTK_STEPPER_BOTTOM)
- allocation.y -= 4 * rect->height;
- else
- allocation.y -= rect->height;
-
- } else {
- arrow_type = GTK_ARROW_UP;
- if (flags & MOZ_GTK_STEPPER_BOTTOM)
- allocation.y -= 3 * rect->height;
- }
- } else {
- allocation.width *= 5;
- if (flags & MOZ_GTK_STEPPER_DOWN) {
- arrow_type = GTK_ARROW_RIGHT;
- if (flags & MOZ_GTK_STEPPER_BOTTOM)
- allocation.x -= 4 * rect->width;
- else
- allocation.x -= rect->width;
- } else {
- arrow_type = GTK_ARROW_LEFT;
- if (flags & MOZ_GTK_STEPPER_BOTTOM)
- allocation.x -= 3 * rect->width;
- }
- }
-
- gtk_widget_set_allocation(scrollbar, &allocation);
- style = gtk_widget_get_style(scrollbar);
-
- gtk_paint_box(style, cr, state_type, shadow_type,
- scrollbar, detail, rect->x, rect->y,
- rect->width, rect->height);
-
- arrow_rect.width = rect->width / 2;
- arrow_rect.height = rect->height / 2;
- arrow_rect.x = rect->x + (rect->width - arrow_rect.width) / 2;
- arrow_rect.y = rect->y + (rect->height - arrow_rect.height) / 2;
-
- if (state_type == GTK_STATE_ACTIVE) {
- gtk_widget_style_get(scrollbar,
- "arrow-displacement-x", &arrow_displacement_x,
- "arrow-displacement-y", &arrow_displacement_y,
- NULL);
-
- arrow_rect.x += arrow_displacement_x;
- arrow_rect.y += arrow_displacement_y;
- }
-
- gtk_paint_arrow(style, cr, state_type, shadow_type,
- scrollbar, detail, arrow_type, TRUE, arrow_rect.x,
- arrow_rect.y, arrow_rect.width, arrow_rect.height);
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_trough_paint(GtkThemeWidgetType widget,
- cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state,
- GtkTextDirection direction)
-{
- GtkStyle* style;
- GtkScrollbar *scrollbar;
-
- ensure_scrollbar_widget();
-
- if (widget == MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL)
- scrollbar = GTK_SCROLLBAR(gParts->horizScrollbarWidget);
- else
- scrollbar = GTK_SCROLLBAR(gParts->vertScrollbarWidget);
-
- gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
-
- style = gtk_widget_get_style(GTK_WIDGET(scrollbar));
-
- gtk_paint_box(style, cr, GTK_STATE_ACTIVE, GTK_SHADOW_IN,
- GTK_WIDGET(scrollbar), "trough", rect->x, rect->y,
- rect->width, rect->height);
-
- if (state->focused) {
- gtk_paint_focus(style, cr, GTK_STATE_ACTIVE,
- GTK_WIDGET(scrollbar), "trough",
- rect->x, rect->y, rect->width, rect->height);
- }
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
- cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state,
- GtkTextDirection direction)
-{
- GtkStateType state_type = (state->inHover || state->active) ?
- GTK_STATE_PRELIGHT : GTK_STATE_NORMAL;
- GtkShadowType shadow_type = GTK_SHADOW_OUT;
- GtkStyle* style;
- GtkScrollbar *scrollbar;
- GtkAdjustment *adj;
-
- ensure_scrollbar_widget();
-
- if (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL)
- scrollbar = GTK_SCROLLBAR(gParts->horizScrollbarWidget);
- else
- scrollbar = GTK_SCROLLBAR(gParts->vertScrollbarWidget);
-
- gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
-
- /* Make sure to set the scrollbar range before painting so that
- everything is drawn properly. At least the bluecurve (and
- maybe other) themes don't draw the top or bottom black line
- surrounding the scrollbar if the theme thinks that it's butted
- up against the scrollbar arrows. Note the increases of the
- clip rect below. */
- adj = gtk_range_get_adjustment(GTK_RANGE(scrollbar));
-
- if (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) {
- gtk_adjustment_set_page_size(adj, rect->width);
- }
- else {
- gtk_adjustment_set_page_size(adj, rect->height);
- }
-
- gtk_adjustment_configure(adj,
- state->curpos,
- 0,
- state->maxpos,
- gtk_adjustment_get_step_increment(adj),
- gtk_adjustment_get_page_increment(adj),
- gtk_adjustment_get_page_size(adj));
-
- style = gtk_widget_get_style(GTK_WIDGET(scrollbar));
-
- gtk_paint_slider(style, cr, state_type, shadow_type,
- GTK_WIDGET(scrollbar), "slider", rect->x, rect->y,
- rect->width, rect->height,
- (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
- GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_entry_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state, GtkWidget* widget,
- GtkTextDirection direction)
-{
- GtkStateType bg_state = state->disabled ?
- GTK_STATE_INSENSITIVE : GTK_STATE_NORMAL;
- gint x, y, width = rect->width, height = rect->height;
- GtkStyle* style;
- gboolean interior_focus;
- gboolean theme_honors_transparency = FALSE;
- gint focus_width;
-
- gtk_widget_set_direction(widget, direction);
-
- style = gtk_widget_get_style(widget);
-
- gtk_widget_style_get(widget,
- "interior-focus", &interior_focus,
- "focus-line-width", &focus_width,
- "honors-transparent-bg-hint", &theme_honors_transparency,
- NULL);
-
- /* gtkentry.c uses two windows, one for the entire widget and one for the
- * text area inside it. The background of both windows is set to the "base"
- * color of the new state in gtk_entry_state_changed, but only the inner
- * textarea window uses gtk_paint_flat_box when exposed */
-
- /* This gets us a lovely greyish disabledish look */
- gtk_widget_set_sensitive(widget, !state->disabled);
-
- /* GTK fills the outer widget window with the base color before drawing the widget.
- * Some older themes rely on this behavior, but many themes nowadays use rounded
- * corners on their widgets. While most GTK apps are blissfully unaware of this
- * problem due to their use of the default window background, we render widgets on
- * many kinds of backgrounds on the web.
- * If the theme is able to cope with transparency, then we can skip pre-filling
- * and notify the theme it will paint directly on the canvas. */
- if (theme_honors_transparency) {
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
- } else {
- cairo_save(cr);
- gdk_cairo_set_source_color(cr, (const GdkColor*)&style->base[bg_state]);
- cairo_pattern_set_extend(cairo_get_source(cr), CAIRO_EXTEND_REPEAT);
- cairo_fill(cr);
- cairo_restore(cr);
- g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(FALSE));
- }
-
- /* Get the position of the inner window, see _gtk_entry_get_borders */
- x = XTHICKNESS(style);
- y = YTHICKNESS(style);
-
- if (!interior_focus) {
- x += focus_width;
- y += focus_width;
- }
-
- /* Simulate an expose of the inner window */
- gtk_paint_flat_box(style, cr, bg_state, GTK_SHADOW_NONE,
- widget, "entry_bg", rect->x + x,
- rect->y + y, rect->width - 2*x, rect->height - 2*y);
-
- /* Now paint the shadow and focus border.
- * We do like in gtk_entry_draw_frame, we first draw the shadow, a tad
- * smaller when focused if the focus is not interior, then the focus. */
- x = rect->x;
- y = rect->y;
-
- if (state->focused && !state->disabled) {
- /* This will get us the lit borders that focused textboxes enjoy on
- * some themes. */
- if (!interior_focus) {
- /* Indent the border a little bit if we have exterior focus
- (this is what GTK does to draw native entries) */
- x += focus_width;
- y += focus_width;
- width -= 2 * focus_width;
- height -= 2 * focus_width;
- }
- }
-
- gtk_paint_shadow(style, cr, GTK_STATE_NORMAL, GTK_SHADOW_IN,
- widget, "entry", x, y, width, height);
-
- if (state->focused && !state->disabled) {
- if (!interior_focus) {
- gtk_paint_focus(style, cr, GTK_STATE_NORMAL,
- widget, "entry",
- rect->x, rect->y, rect->width, rect->height);
- }
- }
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_combo_box_paint(cairo_t* cr, GdkRectangle* rect,
- GtkWidgetState* state, gboolean ishtml,
- GtkTextDirection direction)
-{
- GdkRectangle arrow_rect, real_arrow_rect;
- gint /* arrow_size, */ separator_width;
- gboolean wide_separators;
- GtkStateType state_type = ConvertGtkState(state);
- GtkShadowType shadow_type = state->active ? GTK_SHADOW_IN : GTK_SHADOW_OUT;
- GtkStyle* style;
- GtkRequisition arrow_req;
-
- ensure_combo_box_widgets();
-
- /* Also sets the direction on gParts->comboBoxButtonWidget, which is then
- * inherited by the separator and arrow */
- moz_gtk_button_paint(cr, rect, state, GTK_RELIEF_NORMAL,
- gParts->comboBoxButtonWidget, direction);
-
- calculate_button_inner_rect(gParts->comboBoxButtonWidget,
- rect, &arrow_rect, direction, ishtml);
- /* Now arrow_rect contains the inner rect ; we want to correct the width
- * to what the arrow needs (see gtk_combo_box_size_allocate) */
- gtk_widget_get_preferred_size(gParts->comboBoxArrowWidget, &arrow_req, NULL);
- if (direction == GTK_TEXT_DIR_LTR)
- arrow_rect.x += arrow_rect.width - arrow_req.width;
- arrow_rect.width = arrow_req.width;
-
- calculate_arrow_rect(gParts->comboBoxArrowWidget,
- &arrow_rect, &real_arrow_rect, direction);
-
- style = gtk_widget_get_style(gParts->comboBoxArrowWidget);
-
- gtk_widget_size_allocate(gParts->comboBoxWidget, rect);
-
- gtk_paint_arrow(style, cr, state_type, shadow_type,
- gParts->comboBoxArrowWidget, "arrow", GTK_ARROW_DOWN, TRUE,
- real_arrow_rect.x, real_arrow_rect.y,
- real_arrow_rect.width, real_arrow_rect.height);
-
-
- /* If there is no separator in the theme, there's nothing left to do. */
- if (!gParts->comboBoxSeparatorWidget)
- return MOZ_GTK_SUCCESS;
-
- style = gtk_widget_get_style(gParts->comboBoxSeparatorWidget);
-
- gtk_widget_style_get(gParts->comboBoxSeparatorWidget,
- "wide-separators", &wide_separators,
- "separator-width", &separator_width,
- NULL);
-
- if (wide_separators) {
- if (direction == GTK_TEXT_DIR_LTR)
- arrow_rect.x -= separator_width;
- else
- arrow_rect.x += arrow_rect.width;
-
- gtk_paint_box(style, cr,
- GTK_STATE_NORMAL, GTK_SHADOW_ETCHED_OUT,
- gParts->comboBoxSeparatorWidget, "vseparator",
- arrow_rect.x, arrow_rect.y,
- separator_width, arrow_rect.height);
- } else {
- if (direction == GTK_TEXT_DIR_LTR)
- arrow_rect.x -= XTHICKNESS(style);
- else
- arrow_rect.x += arrow_rect.width;
-
- gtk_paint_vline(style, cr, GTK_STATE_NORMAL,
- gParts->comboBoxSeparatorWidget, "vseparator",
- arrow_rect.y, arrow_rect.y + arrow_rect.height,
- arrow_rect.x);
- }
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_progressbar_paint(cairo_t* cr, GdkRectangle* rect,
- GtkTextDirection direction)
-{
- GtkStyle* style;
-
- ensure_progress_widget();
- gtk_widget_set_direction(gParts->progresWidget, direction);
-
- style = gtk_widget_get_style(gParts->progresWidget);
-
- gtk_paint_box(style, cr, GTK_STATE_NORMAL, GTK_SHADOW_IN,
- gParts->progresWidget, "trough", rect->x, rect->y,
- rect->width, rect->height);
-
- return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_progress_chunk_paint(cairo_t* cr, GdkRectangle* rect,
- GtkTextDirection direction)
-{
- GtkStyle* style;
-
- ensure_progress_widget();
- gtk_widget_set_direction(gParts->progresWidget, direction);
-
- style = gtk_widget_get_style(gParts->progresWidget);
-
- gtk_paint_box(style, cr, GTK_STATE_PRELIGHT, GTK_SHADOW_OUT,
- gParts->progresWidget, "bar", rect->x, rect->y,
- rect->width, rect->height);
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- gint* right, gint* bottom, GtkTextDirection direction,
- gboolean inhtml)
-{
- GtkWidget* w;
- GtkStyle *style;
-
- switch (widget) {
- case MOZ_GTK_BUTTON:
- {
- GtkBorder inner_border;
- gboolean interior_focus;
- gint focus_width, focus_pad;
- GtkStyle *style;
-
- ensure_button_widget();
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gParts->buttonWidget));
-
- /* Don't add this padding in HTML, otherwise the buttons will
- become too big and stuff the layout. */
- if (!inhtml) {
- moz_gtk_widget_get_focus(gParts->buttonWidget, &interior_focus, &focus_width, &focus_pad);
- moz_gtk_button_get_inner_border(gParts->buttonWidget, &inner_border);
- *left += focus_width + focus_pad + inner_border.left;
- *right += focus_width + focus_pad + inner_border.right;
- *top += focus_width + focus_pad + inner_border.top;
- *bottom += focus_width + focus_pad + inner_border.bottom;
- }
-
- style = gtk_widget_get_style(gParts->buttonWidget);
- *left += style->xthickness;
- *right += style->xthickness;
- *top += style->ythickness;
- *bottom += style->ythickness;
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_ENTRY:
- ensure_entry_widget();
- w = gParts->entryWidget;
- break;
- case MOZ_GTK_DROPDOWN:
- {
- /* We need to account for the arrow on the dropdown, so text
- * doesn't come too close to the arrow, or in some cases spill
- * into the arrow. */
- gboolean ignored_interior_focus, wide_separators;
- gint focus_width, focus_pad, separator_width;
- GtkRequisition arrow_req;
- GtkStyle* style;
-
- ensure_combo_box_widgets();
-
- *left = gtk_container_get_border_width(GTK_CONTAINER(gParts->comboBoxButtonWidget));
-
- if (!inhtml) {
- moz_gtk_widget_get_focus(gParts->comboBoxButtonWidget,
- &ignored_interior_focus,
- &focus_width, &focus_pad);
- *left += focus_width + focus_pad;
- }
-
- style = gtk_widget_get_style(gParts->comboBoxButtonWidget);
- *top = *left + style->ythickness;
- *left += style->xthickness;
-
- *right = *left; *bottom = *top;
-
- /* If there is no separator, don't try to count its width. */
- separator_width = 0;
- if (gParts->comboBoxSeparatorWidget) {
- gtk_widget_style_get(gParts->comboBoxSeparatorWidget,
- "wide-separators", &wide_separators,
- "separator-width", &separator_width,
- NULL);
-
- if (!wide_separators)
- separator_width =
- XTHICKNESS(style);
- }
-
- gtk_widget_get_preferred_size(gParts->comboBoxArrowWidget, &arrow_req, NULL);
- if (direction == GTK_TEXT_DIR_RTL)
- *left += separator_width + arrow_req.width;
- else
- *right += separator_width + arrow_req.width;
-
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_PROGRESSBAR:
- ensure_progress_widget();
- w = gParts->progresWidget;
- break;
- /* These widgets have no borders, since they are not containers. */
- case MOZ_GTK_CHECKBUTTON:
- case MOZ_GTK_RADIOBUTTON:
- case MOZ_GTK_SCROLLBAR_BUTTON:
- case MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL:
- case MOZ_GTK_SCROLLBAR_TRACK_VERTICAL:
- case MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL:
- case MOZ_GTK_SCROLLBAR_THUMB_VERTICAL:
- case MOZ_GTK_PROGRESS_CHUNK:
- *left = *top = *right = *bottom = 0;
- return MOZ_GTK_SUCCESS;
- default:
- g_warning("Unsupported widget type: %d", widget);
- return MOZ_GTK_UNKNOWN_WIDGET;
- }
-
- style = gtk_widget_get_style(w);
- *right = *left = XTHICKNESS(style);
- *bottom = *top = YTHICKNESS(style);
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_get_scrollbar_metrics(MozGtkScrollbarMetrics *metrics)
-{
- ensure_scrollbar_widget();
-
- gtk_widget_style_get (gParts->horizScrollbarWidget,
- "slider_width", &metrics->slider_width,
- "trough_border", &metrics->trough_border,
- "stepper_size", &metrics->stepper_size,
- "stepper_spacing", &metrics->stepper_spacing,
- "trough_under_steppers", &metrics->trough_under_steppers,
- "has_secondary_forward_stepper", &metrics->has_secondary_forward_stepper,
- "has_secondary_backward_stepper", &metrics->has_secondary_backward_stepper,
- NULL);
-
- metrics->min_slider_size = gtk_range_get_min_slider_size(GTK_RANGE(gParts->horizScrollbarWidget));
-
- return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_widget_paint(GtkThemeWidgetType widget, cairo_t* cr,
- GdkRectangle* rect, GtkWidgetState* state,
- gint flags, GtkTextDirection direction)
-{
- switch (widget) {
- case MOZ_GTK_BUTTON:
- if (state->depressed) {
- ensure_toggle_button_widget();
- return moz_gtk_button_paint(cr, rect, state,
- (GtkReliefStyle) flags,
- gParts->toggleButtonWidget, direction);
- }
- ensure_button_widget();
- return moz_gtk_button_paint(cr, rect, state,
- (GtkReliefStyle) flags, gParts->buttonWidget,
- direction);
- break;
- case MOZ_GTK_CHECKBUTTON:
- case MOZ_GTK_RADIOBUTTON:
- return moz_gtk_toggle_paint(cr, rect, state,
- !!(flags & MOZ_GTK_WIDGET_CHECKED),
- !!(flags & MOZ_GTK_WIDGET_INCONSISTENT),
- (widget == MOZ_GTK_RADIOBUTTON),
- direction);
- break;
- case MOZ_GTK_SCROLLBAR_BUTTON:
- return moz_gtk_scrollbar_button_paint(cr, rect, state,
- (GtkScrollbarButtonFlags) flags,
- direction);
- break;
- case MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL:
- case MOZ_GTK_SCROLLBAR_TRACK_VERTICAL:
- return moz_gtk_scrollbar_trough_paint(widget, cr, rect,
- state, direction);
- break;
- case MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL:
- case MOZ_GTK_SCROLLBAR_THUMB_VERTICAL:
- return moz_gtk_scrollbar_thumb_paint(widget, cr, rect,
- state, direction);
- break;
- case MOZ_GTK_SCROLLED_WINDOW:
- return moz_gtk_scrolled_window_paint(cr, rect, state);
- break;
- case MOZ_GTK_ENTRY:
- ensure_entry_widget();
- return moz_gtk_entry_paint(cr, rect, state,
- gParts->entryWidget, direction);
- break;
- case MOZ_GTK_DROPDOWN:
- return moz_gtk_combo_box_paint(cr, rect, state,
- (gboolean) flags, direction);
- break;
- case MOZ_GTK_PROGRESSBAR:
- return moz_gtk_progressbar_paint(cr, rect, direction);
- break;
- case MOZ_GTK_PROGRESS_CHUNK:
- return moz_gtk_progress_chunk_paint(cr, rect, direction);
- break;
- default:
- g_warning("Unknown widget type: %d", widget);
- }
-
- return MOZ_GTK_UNKNOWN_WIDGET;
-}
-
-GtkWidget* moz_gtk_get_scrollbar_widget(void)
-{
- if (!is_initialized)
- return NULL;
- ensure_scrollbar_widget();
- return gParts->horizScrollbarWidget;
-}
-
-gint
-moz_gtk_shutdown()
-{
- GtkWidgetClass *entry_class;
- entry_class = g_type_class_peek(GTK_TYPE_ENTRY);
- g_type_class_unref(entry_class);
-
- is_initialized = FALSE;
-
- return MOZ_GTK_SUCCESS;
-}
-
-void moz_gtk_destroy_theme_parts_widgets(GtkThemeParts* parts)
-{
- if (!parts)
- return;
-
- if (parts->protoWindow) {
- gtk_widget_destroy(parts->protoWindow);
- parts->protoWindow = NULL;
- }
-}
-
-GtkWidget* moz_gtk_get_progress_widget()
-{
- if (!is_initialized)
- return NULL;
- ensure_progress_widget();
- return gParts->progresWidget;
-}
-
-#endif // GTK_API_VERSION_2
diff --git a/Source/WebCore/platform/gtk/gtkdrawing.h b/Source/WebCore/platform/gtk/gtkdrawing.h
index 9d13a07..412a1f7 100644
--- a/Source/WebCore/platform/gtk/gtkdrawing.h
+++ b/Source/WebCore/platform/gtk/gtkdrawing.h
@@ -81,9 +81,7 @@ typedef struct {
} MozGtkScrollbarMetrics;
typedef struct _GtkThemeParts {
-#ifdef GTK_API_VERSION_2
GdkColormap* colormap;
-#endif // GTK_API_VERSION_2
GtkWidget* protoWindow;
GtkWidget* protoLayout;
GtkWidget* buttonWidget;
@@ -205,18 +203,11 @@ void moz_gtk_destroy_theme_parts_widgets(GtkThemeParts* parts);
* flags: widget-dependant flags; see the GtkThemeWidgetType definition.
* direction: the text direction, to draw the widget correctly LTR and RTL.
*/
-#ifdef GTK_API_VERSION_2
gint
moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
GdkRectangle* rect, GdkRectangle* cliprect,
GtkWidgetState* state, gint flags,
GtkTextDirection direction);
-#else
-gint
-moz_gtk_widget_paint(GtkThemeWidgetType widget, cairo_t* cr,
- GdkRectangle* rect, GtkWidgetState* state,
- gint flags, GtkTextDirection direction);
-#endif
/*** Widget metrics ***/
/**
diff --git a/Source/WebCore/platform/haiku/DragDataHaiku.cpp b/Source/WebCore/platform/haiku/DragDataHaiku.cpp
index 7c2dc9c..5069c6f 100644
--- a/Source/WebCore/platform/haiku/DragDataHaiku.cpp
+++ b/Source/WebCore/platform/haiku/DragDataHaiku.cpp
@@ -63,7 +63,7 @@ bool DragData::containsPlainText() const
return false;
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
notImplemented();
return String();
@@ -80,19 +80,19 @@ bool DragData::containsCompatibleContent() const
return containsColor() || containsURL() || containsPlainText();
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
notImplemented();
return false;
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
notImplemented();
return String();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame*, PassRefPtr<Range>, bool, bool&) const
{
notImplemented();
return 0;
diff --git a/Source/WebCore/platform/image-decoders/ImageDecoder.cpp b/Source/WebCore/platform/image-decoders/ImageDecoder.cpp
index 8491da9..17208b5 100644
--- a/Source/WebCore/platform/image-decoders/ImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/ImageDecoder.cpp
@@ -108,7 +108,7 @@ ImageDecoder* ImageDecoder::create(const SharedBuffer& data, ImageSource::AlphaO
#if !PLATFORM(SKIA)
-RGBA32Buffer::RGBA32Buffer()
+ImageFrame::ImageFrame()
: m_hasAlpha(false)
, m_status(FrameEmpty)
, m_duration(0)
@@ -117,7 +117,7 @@ RGBA32Buffer::RGBA32Buffer()
{
}
-RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
+ImageFrame& ImageFrame::operator=(const ImageFrame& other)
{
if (this == &other)
return *this;
@@ -131,7 +131,7 @@ RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
return *this;
}
-void RGBA32Buffer::clear()
+void ImageFrame::clear()
{
m_backingStore.clear();
m_bytes = 0;
@@ -142,7 +142,7 @@ void RGBA32Buffer::clear()
// later.
}
-void RGBA32Buffer::zeroFill()
+void ImageFrame::zeroFill()
{
memset(m_bytes, 0, m_size.width() * m_size.height() * sizeof(PixelData));
m_hasAlpha = true;
@@ -150,13 +150,13 @@ void RGBA32Buffer::zeroFill()
#if !PLATFORM(CG)
-void RGBA32Buffer::copyReferenceToBitmapData(const RGBA32Buffer& other)
+void ImageFrame::copyReferenceToBitmapData(const ImageFrame& other)
{
ASSERT(this != &other);
copyBitmapData(other);
}
-bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
+bool ImageFrame::copyBitmapData(const ImageFrame& other)
{
if (this == &other)
return true;
@@ -168,7 +168,7 @@ bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
return true;
}
-bool RGBA32Buffer::setSize(int newWidth, int newHeight)
+bool ImageFrame::setSize(int newWidth, int newHeight)
{
// NOTE: This has no way to check for allocation failure if the requested
// size was too big...
@@ -184,32 +184,32 @@ bool RGBA32Buffer::setSize(int newWidth, int newHeight)
#endif
-bool RGBA32Buffer::hasAlpha() const
+bool ImageFrame::hasAlpha() const
{
return m_hasAlpha;
}
-void RGBA32Buffer::setHasAlpha(bool alpha)
+void ImageFrame::setHasAlpha(bool alpha)
{
m_hasAlpha = alpha;
}
-void RGBA32Buffer::setColorProfile(const ColorProfile& colorProfile)
+void ImageFrame::setColorProfile(const ColorProfile& colorProfile)
{
m_colorProfile = colorProfile;
}
-void RGBA32Buffer::setStatus(FrameStatus status)
+void ImageFrame::setStatus(FrameStatus status)
{
m_status = status;
}
-int RGBA32Buffer::width() const
+int ImageFrame::width() const
{
return m_size.width();
}
-int RGBA32Buffer::height() const
+int ImageFrame::height() const
{
return m_size.height();
}
diff --git a/Source/WebCore/platform/image-decoders/ImageDecoder.h b/Source/WebCore/platform/image-decoders/ImageDecoder.h
index c3d73c0..13069de 100644
--- a/Source/WebCore/platform/image-decoders/ImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/ImageDecoder.h
@@ -50,10 +50,10 @@ namespace WebCore {
// FIXME: Do we want better encapsulation?
typedef Vector<char> ColorProfile;
- // The RGBA32Buffer object represents the decoded image data in RGBA32
+ // The ImageFrame object represents the decoded image data in RGBA32
// format. This buffer is what all decoders write a single frame into.
// Frames are then instantiated for drawing by being handed this buffer.
- class RGBA32Buffer {
+ class ImageFrame {
public:
enum FrameStatus { FrameEmpty, FramePartial, FrameComplete };
enum FrameDisposalMethod {
@@ -72,13 +72,13 @@ namespace WebCore {
typedef unsigned PixelData;
#endif
- RGBA32Buffer();
+ ImageFrame();
- RGBA32Buffer(const RGBA32Buffer& other) { operator=(other); }
+ ImageFrame(const ImageFrame& other) { operator=(other); }
// For backends which refcount their data, this operator doesn't need to
// create a new copy of the image data, only increase the ref count.
- RGBA32Buffer& operator=(const RGBA32Buffer& other);
+ ImageFrame& operator=(const ImageFrame& other);
// Deletes the pixel data entirely; used by ImageDecoder to save memory
// when we no longer need to display a frame and only need its metadata.
@@ -89,11 +89,11 @@ namespace WebCore {
// Creates a new copy of the image data in |other|, so the two images
// can be modified independently. Returns whether the copy succeeded.
- bool copyBitmapData(const RGBA32Buffer&);
+ bool copyBitmapData(const ImageFrame&);
// Creates a new reference to the image data in |other|. The two images
// share a common backing store.
- void copyReferenceToBitmapData(const RGBA32Buffer&);
+ void copyReferenceToBitmapData(const ImageFrame&);
// Copies the pixel data at [(startX, startY), (endX, startY)) to the
// same X-coordinates on each subsequent row up to but not including
@@ -317,10 +317,10 @@ namespace WebCore {
// The number of repetitions to perform for an animation loop.
virtual int repetitionCount() const { return cAnimationNone; }
- // Called to obtain the RGBA32Buffer full of decoded data for rendering.
+ // Called to obtain the ImageFrame full of decoded data for rendering.
// The decoder plugin will decode as much of the frame as it can before
// handing back the buffer.
- virtual RGBA32Buffer* frameBufferAtIndex(size_t) = 0;
+ virtual ImageFrame* frameBufferAtIndex(size_t) = 0;
// Whether or not the underlying image format even supports alpha
// transparency.
@@ -364,7 +364,7 @@ namespace WebCore {
int scaledY(int origY, int searchStart = 0);
RefPtr<SharedBuffer> m_data; // The encoded data.
- Vector<RGBA32Buffer> m_frameBufferCache;
+ Vector<ImageFrame> m_frameBufferCache;
ColorProfile m_colorProfile;
bool m_scaled;
Vector<int> m_scaledColumns;
diff --git a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
index 220a1ed..0d0e8a7 100644
--- a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp
@@ -65,7 +65,7 @@ bool BMPImageDecoder::isSizeAvailable()
return ImageDecoder::isSizeAvailable();
}
-RGBA32Buffer* BMPImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* BMPImageDecoder::frameBufferAtIndex(size_t index)
{
if (index)
return 0;
@@ -75,8 +75,8 @@ RGBA32Buffer* BMPImageDecoder::frameBufferAtIndex(size_t index)
m_frameBufferCache.first().setPremultiplyAlpha(m_premultiplyAlpha);
}
- RGBA32Buffer* buffer = &m_frameBufferCache.first();
- if (buffer->status() != RGBA32Buffer::FrameComplete)
+ ImageFrame* buffer = &m_frameBufferCache.first();
+ if (buffer->status() != ImageFrame::FrameComplete)
decode(false);
return buffer;
}
@@ -98,7 +98,7 @@ void BMPImageDecoder::decode(bool onlySize)
setFailed();
// If we're done decoding the image, we don't need the BMPImageReader
// anymore. (If we failed, |m_reader| has already been cleared.)
- else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache.first().status() == RGBA32Buffer::FrameComplete))
+ else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache.first().status() == ImageFrame::FrameComplete))
m_reader.clear();
}
diff --git a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h
index 5f4ed82..f5b9d5e 100644
--- a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.h
@@ -45,7 +45,7 @@ namespace WebCore {
virtual String filenameExtension() const { return "bmp"; }
virtual void setData(SharedBuffer*, bool allDataReceived);
virtual bool isSizeAvailable();
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
// CAUTION: setFailed() deletes |m_reader|. Be careful to avoid
// accessing deleted memory, especially when calling this from inside
// BMPImageReader!
diff --git a/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.cpp b/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.cpp
index 93bedf3..1805bc7 100644
--- a/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.cpp
+++ b/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.cpp
@@ -77,10 +77,10 @@ bool BMPImageReader::decodeBMP(bool onlySize)
// Initialize the framebuffer if needed.
ASSERT(m_buffer); // Parent should set this before asking us to decode!
- if (m_buffer->status() == RGBA32Buffer::FrameEmpty) {
+ if (m_buffer->status() == ImageFrame::FrameEmpty) {
if (!m_buffer->setSize(m_parent->size().width(), m_parent->size().height()))
return m_parent->setFailed(); // Unable to allocate.
- m_buffer->setStatus(RGBA32Buffer::FramePartial);
+ m_buffer->setStatus(ImageFrame::FramePartial);
// setSize() calls eraseARGB(), which resets the alpha flag, so we force
// it back to false here. We'll set it true below in all cases where
// these 0s could actually show through.
@@ -122,7 +122,7 @@ bool BMPImageReader::decodeBMP(bool onlySize)
}
// Done!
- m_buffer->setStatus(RGBA32Buffer::FrameComplete);
+ m_buffer->setStatus(ImageFrame::FrameComplete);
return true;
}
diff --git a/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h b/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h
index 0a6dc84..dfaa9ec 100644
--- a/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h
+++ b/Source/WebCore/platform/image-decoders/bmp/BMPImageReader.h
@@ -64,11 +64,11 @@ namespace WebCore {
// |parent| is the decoder that owns us.
// |startOffset| points to the start of the BMP within the file.
- // |buffer| points at an empty RGBA32Buffer that we'll initialize and
+ // |buffer| points at an empty ImageFrame that we'll initialize and
// fill with decoded data.
BMPImageReader(ImageDecoder* parent, size_t decodedAndHeaderOffset, size_t imgDataOffset, bool usesAndMask);
- void setBuffer(RGBA32Buffer* buffer) { m_buffer = buffer; }
+ void setBuffer(ImageFrame* buffer) { m_buffer = buffer; }
void setData(SharedBuffer* data) { m_data = data; }
// Does the actual decoding. If |onlySize| is true, decoding only
@@ -274,7 +274,7 @@ namespace WebCore {
ImageDecoder* m_parent;
// The destination for the pixel data.
- RGBA32Buffer* m_buffer;
+ ImageFrame* m_buffer;
// The file to decode.
RefPtr<SharedBuffer> m_data;
diff --git a/Source/WebCore/platform/image-decoders/cairo/ImageDecoderCairo.cpp b/Source/WebCore/platform/image-decoders/cairo/ImageDecoderCairo.cpp
index d741882..618c1d0 100644
--- a/Source/WebCore/platform/image-decoders/cairo/ImageDecoderCairo.cpp
+++ b/Source/WebCore/platform/image-decoders/cairo/ImageDecoderCairo.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
return cairo_image_surface_create_for_data(
reinterpret_cast<unsigned char*>(const_cast<PixelData*>(
diff --git a/Source/WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp b/Source/WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp
index 03b4c8f..0b90107 100644
--- a/Source/WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp
+++ b/Source/WebCore/platform/image-decoders/cg/ImageDecoderCG.cpp
@@ -33,22 +33,22 @@
namespace WebCore {
-static RGBA32Buffer::PixelData* getPtrAsPixelData(CFMutableDataRef data)
+static ImageFrame::PixelData* getPtrAsPixelData(CFMutableDataRef data)
{
- return data ? reinterpret_cast<RGBA32Buffer::PixelData*>(CFDataGetMutableBytePtr(data)) : 0;
+ return data ? reinterpret_cast<ImageFrame::PixelData*>(CFDataGetMutableBytePtr(data)) : 0;
}
-void RGBA32Buffer::copyReferenceToBitmapData(const RGBA32Buffer& other)
+void ImageFrame::copyReferenceToBitmapData(const ImageFrame& other)
{
ASSERT(this != &other);
m_backingStore = other.m_backingStore;
m_bytes = getPtrAsPixelData(m_backingStore.get());
- // FIXME: The rest of this function seems redundant with RGBA32Buffer::copyBitmapData.
+ // FIXME: The rest of this function seems redundant with ImageFrame::copyBitmapData.
m_size = other.m_size;
setHasAlpha(other.m_hasAlpha);
}
-bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
+bool ImageFrame::copyBitmapData(const ImageFrame& other)
{
if (this == &other)
return true;
@@ -60,7 +60,7 @@ bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
return true;
}
-bool RGBA32Buffer::setSize(int newWidth, int newHeight)
+bool ImageFrame::setSize(int newWidth, int newHeight)
{
ASSERT(!m_backingStore);
size_t backingStoreSize = newWidth * newHeight * sizeof(PixelData);
@@ -91,7 +91,7 @@ static CGColorSpaceRef createColorSpace(const ColorProfile& colorProfile)
#endif
}
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
RetainPtr<CGColorSpaceRef> colorSpace(AdoptCF, createColorSpace(m_colorProfile));
RetainPtr<CGDataProviderRef> dataProvider(AdoptCF, CGDataProviderCreateWithCFData(m_backingStore.get()));
diff --git a/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp b/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
index e92f264..e6de597 100644
--- a/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
@@ -118,13 +118,13 @@ int GIFImageDecoder::repetitionCount() const
return m_repetitionCount;
}
-RGBA32Buffer* GIFImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* GIFImageDecoder::frameBufferAtIndex(size_t index)
{
if (index >= frameCount())
return 0;
- RGBA32Buffer& frame = m_frameBufferCache[index];
- if (frame.status() != RGBA32Buffer::FrameComplete)
+ ImageFrame& frame = m_frameBufferCache[index];
+ if (frame.status() != ImageFrame::FrameComplete)
decode(index + 1, GIFFullQuery);
return &frame;
}
@@ -151,7 +151,7 @@ void GIFImageDecoder::clearFrameBufferCache(size_t clearBeforeFrame)
// always use ImageSource::clear(true, ...) to completely free the memory in
// this case.
clearBeforeFrame = std::min(clearBeforeFrame, m_frameBufferCache.size() - 1);
- const Vector<RGBA32Buffer>::iterator end(m_frameBufferCache.begin() + clearBeforeFrame);
+ const Vector<ImageFrame>::iterator end(m_frameBufferCache.begin() + clearBeforeFrame);
// We need to preserve frames such that:
// * We don't clear |end|
@@ -171,16 +171,16 @@ void GIFImageDecoder::clearFrameBufferCache(size_t clearBeforeFrame)
// * If the frame is partial, we're decoding it, so don't clear it; if it
// has a disposal method other than DisposeOverwritePrevious, stop
// scanning, as we'll only need this frame when decoding the next one.
- Vector<RGBA32Buffer>::iterator i(end);
- for (; (i != m_frameBufferCache.begin()) && ((i->status() == RGBA32Buffer::FrameEmpty) || (i->disposalMethod() == RGBA32Buffer::DisposeOverwritePrevious)); --i) {
- if ((i->status() == RGBA32Buffer::FrameComplete) && (i != end))
+ Vector<ImageFrame>::iterator i(end);
+ for (; (i != m_frameBufferCache.begin()) && ((i->status() == ImageFrame::FrameEmpty) || (i->disposalMethod() == ImageFrame::DisposeOverwritePrevious)); --i) {
+ if ((i->status() == ImageFrame::FrameComplete) && (i != end))
i->clear();
}
// Now |i| holds the last frame we need to preserve; clear prior frames.
- for (Vector<RGBA32Buffer>::iterator j(m_frameBufferCache.begin()); j != i; ++j) {
- ASSERT(j->status() != RGBA32Buffer::FramePartial);
- if (j->status() != RGBA32Buffer::FrameEmpty)
+ for (Vector<ImageFrame>::iterator j(m_frameBufferCache.begin()); j != i; ++j) {
+ ASSERT(j->status() != ImageFrame::FramePartial);
+ if (j->status() != ImageFrame::FrameEmpty)
j->clear();
}
}
@@ -220,8 +220,8 @@ bool GIFImageDecoder::haveDecodedRow(unsigned frameIndex, unsigned char* rowBuff
return true;
// Initialize the frame if necessary.
- RGBA32Buffer& buffer = m_frameBufferCache[frameIndex];
- if ((buffer.status() == RGBA32Buffer::FrameEmpty) && !initFrameBuffer(frameIndex))
+ ImageFrame& buffer = m_frameBufferCache[frameIndex];
+ if ((buffer.status() == ImageFrame::FrameEmpty) && !initFrameBuffer(frameIndex))
return false;
// Write one row's worth of data into the frame.
@@ -251,15 +251,15 @@ bool GIFImageDecoder::haveDecodedRow(unsigned frameIndex, unsigned char* rowBuff
return true;
}
-bool GIFImageDecoder::frameComplete(unsigned frameIndex, unsigned frameDuration, RGBA32Buffer::FrameDisposalMethod disposalMethod)
+bool GIFImageDecoder::frameComplete(unsigned frameIndex, unsigned frameDuration, ImageFrame::FrameDisposalMethod disposalMethod)
{
// Initialize the frame if necessary. Some GIFs insert do-nothing frames,
// in which case we never reach haveDecodedRow() before getting here.
- RGBA32Buffer& buffer = m_frameBufferCache[frameIndex];
- if ((buffer.status() == RGBA32Buffer::FrameEmpty) && !initFrameBuffer(frameIndex))
+ ImageFrame& buffer = m_frameBufferCache[frameIndex];
+ if ((buffer.status() == ImageFrame::FrameEmpty) && !initFrameBuffer(frameIndex))
return false; // initFrameBuffer() has already called setFailed().
- buffer.setStatus(RGBA32Buffer::FrameComplete);
+ buffer.setStatus(ImageFrame::FrameComplete);
buffer.setDuration(frameDuration);
buffer.setDisposalMethod(disposalMethod);
@@ -277,8 +277,8 @@ bool GIFImageDecoder::frameComplete(unsigned frameIndex, unsigned frameDuration,
// First skip over prior DisposeOverwritePrevious frames (since they
// don't affect the start state of this frame) the same way we do in
// initFrameBuffer().
- const RGBA32Buffer* prevBuffer = &m_frameBufferCache[--frameIndex];
- while (frameIndex && (prevBuffer->disposalMethod() == RGBA32Buffer::DisposeOverwritePrevious))
+ const ImageFrame* prevBuffer = &m_frameBufferCache[--frameIndex];
+ while (frameIndex && (prevBuffer->disposalMethod() == ImageFrame::DisposeOverwritePrevious))
prevBuffer = &m_frameBufferCache[--frameIndex];
// Now, if we're at a DisposeNotSpecified or DisposeKeep frame, then
@@ -289,7 +289,7 @@ bool GIFImageDecoder::frameComplete(unsigned frameIndex, unsigned frameDuration,
// The only remaining case is a DisposeOverwriteBgcolor frame. If
// it had no alpha, and its rect is contained in the current frame's
// rect, we know the current frame has no alpha.
- if ((prevBuffer->disposalMethod() == RGBA32Buffer::DisposeOverwriteBgcolor) && !prevBuffer->hasAlpha() && buffer.rect().contains(prevBuffer->rect()))
+ if ((prevBuffer->disposalMethod() == ImageFrame::DisposeOverwriteBgcolor) && !prevBuffer->hasAlpha() && buffer.rect().contains(prevBuffer->rect()))
buffer.setHasAlpha(false);
}
}
@@ -332,7 +332,7 @@ bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex)
if (frameRect.bottom() > size().height())
frameRect.setHeight(size().height() - frameReader->y_offset);
- RGBA32Buffer* const buffer = &m_frameBufferCache[frameIndex];
+ ImageFrame* const buffer = &m_frameBufferCache[frameIndex];
int left = upperBoundScaledX(frameRect.x());
int right = lowerBoundScaledX(frameRect.right(), left);
int top = upperBoundScaledY(frameRect.y());
@@ -352,15 +352,15 @@ bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex)
// the starting state of the previous frame, so skip over them. (If the
// first frame specifies this method, it will get treated like
// DisposeOverwriteBgcolor below and reset to a completely empty image.)
- const RGBA32Buffer* prevBuffer = &m_frameBufferCache[--frameIndex];
- RGBA32Buffer::FrameDisposalMethod prevMethod = prevBuffer->disposalMethod();
- while (frameIndex && (prevMethod == RGBA32Buffer::DisposeOverwritePrevious)) {
+ const ImageFrame* prevBuffer = &m_frameBufferCache[--frameIndex];
+ ImageFrame::FrameDisposalMethod prevMethod = prevBuffer->disposalMethod();
+ while (frameIndex && (prevMethod == ImageFrame::DisposeOverwritePrevious)) {
prevBuffer = &m_frameBufferCache[--frameIndex];
prevMethod = prevBuffer->disposalMethod();
}
- ASSERT(prevBuffer->status() == RGBA32Buffer::FrameComplete);
+ ASSERT(prevBuffer->status() == ImageFrame::FrameComplete);
- if ((prevMethod == RGBA32Buffer::DisposeNotSpecified) || (prevMethod == RGBA32Buffer::DisposeKeep)) {
+ if ((prevMethod == ImageFrame::DisposeNotSpecified) || (prevMethod == ImageFrame::DisposeKeep)) {
// Preserve the last frame as the starting state for this frame.
if (!buffer->copyBitmapData(*prevBuffer))
return setFailed();
@@ -389,7 +389,7 @@ bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex)
}
// Update our status to be partially complete.
- buffer->setStatus(RGBA32Buffer::FramePartial);
+ buffer->setStatus(ImageFrame::FramePartial);
// Reset the alpha pixel tracker for this frame.
m_currentBufferSawAlpha = false;
diff --git a/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h b/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
index 64240d4..dd401b8 100644
--- a/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
@@ -48,7 +48,7 @@ namespace WebCore {
virtual bool setSize(int width, int height);
virtual size_t frameCount();
virtual int repetitionCount() const;
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
// CAUTION: setFailed() deletes |m_reader|. Be careful to avoid
// accessing deleted memory, especially when calling this from inside
// GIFImageReader!
@@ -58,7 +58,7 @@ namespace WebCore {
// Callbacks from the GIF reader.
void decodingHalted(unsigned bytesLeft);
bool haveDecodedRow(unsigned frameIndex, unsigned char* rowBuffer, unsigned char* rowEnd, unsigned rowNumber, unsigned repeatCount, bool writeTransparentPixels);
- bool frameComplete(unsigned frameIndex, unsigned frameDuration, RGBA32Buffer::FrameDisposalMethod disposalMethod);
+ bool frameComplete(unsigned frameIndex, unsigned frameDuration, ImageFrame::FrameDisposalMethod disposalMethod);
void gifComplete();
private:
diff --git a/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp b/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
index 1e033a3..420b355 100644
--- a/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
+++ b/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
@@ -638,11 +638,11 @@ bool GIFImageReader::read(const unsigned char *buf, unsigned len,
}
// NOTE: This relies on the values in the FrameDisposalMethod enum
// matching those in the GIF spec!
- frame_reader->disposal_method = (WebCore::RGBA32Buffer::FrameDisposalMethod)(((*q) >> 2) & 0x7);
+ frame_reader->disposal_method = (WebCore::ImageFrame::FrameDisposalMethod)(((*q) >> 2) & 0x7);
// Some specs say 3rd bit (value 4), other specs say value 3
// Let's choose 3 (the more popular)
if (frame_reader->disposal_method == 4)
- frame_reader->disposal_method = WebCore::RGBA32Buffer::DisposeOverwritePrevious;
+ frame_reader->disposal_method = WebCore::ImageFrame::DisposeOverwritePrevious;
frame_reader->delay_time = GETINT16(q + 1) * 10;
}
GETN(1, gif_consume_block);
diff --git a/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h b/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h
index be5be19..b6eb943 100644
--- a/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h
+++ b/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h
@@ -101,7 +101,7 @@ struct GIFFrameReader {
unsigned int x_offset, y_offset; /* With respect to "screen" origin */
unsigned int height, width;
int tpixel; /* Index of transparent pixel */
- WebCore::RGBA32Buffer::FrameDisposalMethod disposal_method; /* Restore to background, leave in place, etc.*/
+ WebCore::ImageFrame::FrameDisposalMethod disposal_method; /* Restore to background, leave in place, etc.*/
unsigned char *local_colormap; /* Per-image colormap */
int local_colormap_size; /* Size of local colormap array. */
@@ -130,7 +130,7 @@ struct GIFFrameReader {
x_offset = y_offset = width = height = 0;
tpixel = 0;
- disposal_method = WebCore::RGBA32Buffer::DisposeNotSpecified;
+ disposal_method = WebCore::ImageFrame::DisposeNotSpecified;
local_colormap = 0;
local_colormap_size = 0;
diff --git a/Source/WebCore/platform/image-decoders/haiku/ImageDecoderHaiku.cpp b/Source/WebCore/platform/image-decoders/haiku/ImageDecoderHaiku.cpp
index 47302f7..21c0e1f 100644
--- a/Source/WebCore/platform/image-decoders/haiku/ImageDecoderHaiku.cpp
+++ b/Source/WebCore/platform/image-decoders/haiku/ImageDecoderHaiku.cpp
@@ -31,7 +31,7 @@
namespace WebCore {
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
int bytesPerRow = width() * sizeof(PixelData);
OwnPtr<BBitmap> bitmap(new BBitmap(BRect(0, 0, width() - 1, height() - 1), 0, B_RGBA32, bytesPerRow));
diff --git a/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp b/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp
index 92a7dcf..55e1dcb 100644
--- a/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.cpp
@@ -109,14 +109,14 @@ size_t ICOImageDecoder::frameCount()
return m_frameBufferCache.size();
}
-RGBA32Buffer* ICOImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* ICOImageDecoder::frameBufferAtIndex(size_t index)
{
// Ensure |index| is valid.
if (index >= frameCount())
return 0;
- RGBA32Buffer* buffer = &m_frameBufferCache[index];
- if (buffer->status() != RGBA32Buffer::FrameComplete)
+ ImageFrame* buffer = &m_frameBufferCache[index];
+ if (buffer->status() != ImageFrame::FrameComplete)
decode(index, false);
return buffer;
}
@@ -162,7 +162,7 @@ void ICOImageDecoder::decode(size_t index, bool onlySize)
// If we're done decoding this frame, we don't need the BMPImageReader or
// PNGImageDecoder anymore. (If we failed, these have already been
// cleared.)
- else if ((m_frameBufferCache.size() > index) && (m_frameBufferCache[index].status() == RGBA32Buffer::FrameComplete)) {
+ else if ((m_frameBufferCache.size() > index) && (m_frameBufferCache[index].status() == ImageFrame::FrameComplete)) {
m_bmpReaders[index].clear();
m_pngDecoders[index].clear();
}
diff --git a/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h b/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h
index c2af6a3..31d91c8 100644
--- a/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/ico/ICOImageDecoder.h
@@ -51,7 +51,7 @@ namespace WebCore {
virtual IntSize frameSizeAtIndex(size_t) const;
virtual bool setSize(unsigned width, unsigned height);
virtual size_t frameCount();
- virtual RGBA32Buffer* frameBufferAtIndex(size_t);
+ virtual ImageFrame* frameBufferAtIndex(size_t);
// CAUTION: setFailed() deletes all readers and decoders. Be careful to
// avoid accessing deleted memory, especially when calling this from
// inside BMPImageReader!
diff --git a/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp b/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
index 632d428..a255c25 100644
--- a/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
@@ -425,7 +425,7 @@ bool JPEGImageDecoder::setSize(unsigned width, unsigned height)
return true;
}
-RGBA32Buffer* JPEGImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* JPEGImageDecoder::frameBufferAtIndex(size_t index)
{
if (index)
return 0;
@@ -435,8 +435,8 @@ RGBA32Buffer* JPEGImageDecoder::frameBufferAtIndex(size_t index)
m_frameBufferCache[0].setPremultiplyAlpha(m_premultiplyAlpha);
}
- RGBA32Buffer& frame = m_frameBufferCache[0];
- if (frame.status() != RGBA32Buffer::FrameComplete)
+ ImageFrame& frame = m_frameBufferCache[0];
+ if (frame.status() != ImageFrame::FrameComplete)
decode(false);
return &frame;
}
@@ -453,11 +453,11 @@ bool JPEGImageDecoder::outputScanlines()
return false;
// Initialize the framebuffer if needed.
- RGBA32Buffer& buffer = m_frameBufferCache[0];
- if (buffer.status() == RGBA32Buffer::FrameEmpty) {
+ ImageFrame& buffer = m_frameBufferCache[0];
+ if (buffer.status() == ImageFrame::FrameEmpty) {
if (!buffer.setSize(scaledSize().width(), scaledSize().height()))
return setFailed();
- buffer.setStatus(RGBA32Buffer::FramePartial);
+ buffer.setStatus(ImageFrame::FramePartial);
buffer.setHasAlpha(false);
buffer.setColorProfile(m_colorProfile);
@@ -513,7 +513,7 @@ void JPEGImageDecoder::jpegComplete()
// Hand back an appropriately sized buffer, even if the image ended up being
// empty.
- m_frameBufferCache[0].setStatus(RGBA32Buffer::FrameComplete);
+ m_frameBufferCache[0].setStatus(ImageFrame::FrameComplete);
}
void JPEGImageDecoder::decode(bool onlySize)
@@ -530,7 +530,7 @@ void JPEGImageDecoder::decode(bool onlySize)
setFailed();
// If we're done decoding the image, we don't need the JPEGImageReader
// anymore. (If we failed, |m_reader| has already been cleared.)
- else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache[0].status() == RGBA32Buffer::FrameComplete))
+ else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache[0].status() == ImageFrame::FrameComplete))
m_reader.clear();
}
diff --git a/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h b/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h
index 63f29ab..801f1ab 100644
--- a/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.h
@@ -44,7 +44,7 @@ namespace WebCore {
virtual String filenameExtension() const { return "jpg"; }
virtual bool isSizeAvailable();
virtual bool setSize(unsigned width, unsigned height);
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
virtual bool supportsAlpha() const { return false; }
// CAUTION: setFailed() deletes |m_reader|. Be careful to avoid
// accessing deleted memory, especially when calling this from inside
diff --git a/Source/WebCore/platform/image-decoders/openvg/ImageDecoderOpenVG.cpp b/Source/WebCore/platform/image-decoders/openvg/ImageDecoderOpenVG.cpp
index 061c5ab..d29317a 100644
--- a/Source/WebCore/platform/image-decoders/openvg/ImageDecoderOpenVG.cpp
+++ b/Source/WebCore/platform/image-decoders/openvg/ImageDecoderOpenVG.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
static const VGImageFormat bufferFormat = VG_sARGB_8888_PRE;
// Save memory by using 16-bit images for fully opaque images.
diff --git a/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp b/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
index 3fe4d3c..755d704 100644
--- a/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
@@ -197,7 +197,7 @@ bool PNGImageDecoder::setSize(unsigned width, unsigned height)
return true;
}
-RGBA32Buffer* PNGImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* PNGImageDecoder::frameBufferAtIndex(size_t index)
{
if (index)
return 0;
@@ -207,8 +207,8 @@ RGBA32Buffer* PNGImageDecoder::frameBufferAtIndex(size_t index)
m_frameBufferCache[0].setPremultiplyAlpha(m_premultiplyAlpha);
}
- RGBA32Buffer& frame = m_frameBufferCache[0];
- if (frame.status() != RGBA32Buffer::FrameComplete)
+ ImageFrame& frame = m_frameBufferCache[0];
+ if (frame.status() != ImageFrame::FrameComplete)
decode(false);
return &frame;
}
@@ -330,13 +330,13 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer, unsigned rowIndex,
return;
// Initialize the framebuffer if needed.
- RGBA32Buffer& buffer = m_frameBufferCache[0];
- if (buffer.status() == RGBA32Buffer::FrameEmpty) {
+ ImageFrame& buffer = m_frameBufferCache[0];
+ if (buffer.status() == ImageFrame::FrameEmpty) {
if (!buffer.setSize(scaledSize().width(), scaledSize().height())) {
longjmp(JMPBUF(m_reader->pngPtr()), 1);
return;
}
- buffer.setStatus(RGBA32Buffer::FramePartial);
+ buffer.setStatus(ImageFrame::FramePartial);
buffer.setHasAlpha(false);
buffer.setColorProfile(m_colorProfile);
@@ -410,7 +410,7 @@ void PNGImageDecoder::rowAvailable(unsigned char* rowBuffer, unsigned rowIndex,
void PNGImageDecoder::pngComplete()
{
if (!m_frameBufferCache.isEmpty())
- m_frameBufferCache.first().setStatus(RGBA32Buffer::FrameComplete);
+ m_frameBufferCache.first().setStatus(ImageFrame::FrameComplete);
}
void PNGImageDecoder::decode(bool onlySize)
diff --git a/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h b/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h
index 1e8902f..ec2e857 100644
--- a/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.h
@@ -43,7 +43,7 @@ namespace WebCore {
virtual String filenameExtension() const { return "png"; }
virtual bool isSizeAvailable();
virtual bool setSize(unsigned width, unsigned height);
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
// CAUTION: setFailed() deletes |m_reader|. Be careful to avoid
// accessing deleted memory, especially when calling this from inside
// PNGImageReader!
@@ -56,7 +56,7 @@ namespace WebCore {
bool isComplete() const
{
- return !m_frameBufferCache.isEmpty() && (m_frameBufferCache.first().status() == RGBA32Buffer::FrameComplete);
+ return !m_frameBufferCache.isEmpty() && (m_frameBufferCache.first().status() == ImageFrame::FrameComplete);
}
private:
diff --git a/Source/WebCore/platform/image-decoders/qt/RGBA32BufferQt.cpp b/Source/WebCore/platform/image-decoders/qt/ImageFrameQt.cpp
index 998234f..81c22cf 100644
--- a/Source/WebCore/platform/image-decoders/qt/RGBA32BufferQt.cpp
+++ b/Source/WebCore/platform/image-decoders/qt/ImageFrameQt.cpp
@@ -35,7 +35,7 @@
namespace WebCore {
-RGBA32Buffer::RGBA32Buffer()
+ImageFrame::ImageFrame()
: m_hasAlpha(false)
, m_size()
, m_status(FrameEmpty)
@@ -44,7 +44,7 @@ RGBA32Buffer::RGBA32Buffer()
{
}
-RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
+ImageFrame& ImageFrame::operator=(const ImageFrame& other)
{
if (this == &other)
return *this;
@@ -57,7 +57,7 @@ RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
return *this;
}
-void RGBA32Buffer::clear()
+void ImageFrame::clear()
{
m_pixmap = QPixmap();
m_image = QImage();
@@ -68,7 +68,7 @@ void RGBA32Buffer::clear()
// other metadata out of this frame later.
}
-void RGBA32Buffer::zeroFill()
+void ImageFrame::zeroFill()
{
if (m_pixmap.isNull() && !m_image.isNull()) {
m_pixmap = QPixmap(m_image.width(), m_image.height());
@@ -77,7 +77,7 @@ void RGBA32Buffer::zeroFill()
m_pixmap.fill(QColor(0, 0, 0, 0));
}
-bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
+bool ImageFrame::copyBitmapData(const ImageFrame& other)
{
if (this == &other)
return true;
@@ -89,7 +89,7 @@ bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
return true;
}
-bool RGBA32Buffer::setSize(int newWidth, int newHeight)
+bool ImageFrame::setSize(int newWidth, int newHeight)
{
// This function should only be called once, it will leak memory
// otherwise.
@@ -107,7 +107,7 @@ bool RGBA32Buffer::setSize(int newWidth, int newHeight)
return true;
}
-QPixmap* RGBA32Buffer::asNewNativeImage() const
+QPixmap* ImageFrame::asNewNativeImage() const
{
if (m_pixmap.isNull() && !m_image.isNull()) {
m_pixmap = QPixmap::fromImage(m_image);
@@ -116,28 +116,28 @@ QPixmap* RGBA32Buffer::asNewNativeImage() const
return new QPixmap(m_pixmap);
}
-bool RGBA32Buffer::hasAlpha() const
+bool ImageFrame::hasAlpha() const
{
return m_hasAlpha;
}
-void RGBA32Buffer::setHasAlpha(bool alpha)
+void ImageFrame::setHasAlpha(bool alpha)
{
m_hasAlpha = alpha;
}
-void RGBA32Buffer::setColorProfile(const ColorProfile& colorProfile)
+void ImageFrame::setColorProfile(const ColorProfile& colorProfile)
{
notImplemented();
}
-void RGBA32Buffer::setStatus(FrameStatus status)
+void ImageFrame::setStatus(FrameStatus status)
{
m_status = status;
}
// The image must not have format 8888 pre multiplied...
-void RGBA32Buffer::setPixmap(const QPixmap& pixmap)
+void ImageFrame::setPixmap(const QPixmap& pixmap)
{
m_pixmap = pixmap;
m_image = QImage();
@@ -145,12 +145,12 @@ void RGBA32Buffer::setPixmap(const QPixmap& pixmap)
m_hasAlpha = pixmap.hasAlphaChannel();
}
-int RGBA32Buffer::width() const
+int ImageFrame::width() const
{
return m_size.width();
}
-int RGBA32Buffer::height() const
+int ImageFrame::height() const
{
return m_size.height();
}
diff --git a/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp b/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp
index 50e2106..a1c8261 100644
--- a/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp
+++ b/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-RGBA32Buffer::RGBA32Buffer()
+ImageFrame::ImageFrame()
: m_status(FrameEmpty)
, m_duration(0)
, m_disposalMethod(DisposeNotSpecified)
@@ -42,7 +42,7 @@ RGBA32Buffer::RGBA32Buffer()
{
}
-RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
+ImageFrame& ImageFrame::operator=(const ImageFrame& other)
{
if (this == &other)
return *this;
@@ -59,7 +59,7 @@ RGBA32Buffer& RGBA32Buffer::operator=(const RGBA32Buffer& other)
return *this;
}
-void RGBA32Buffer::clear()
+void ImageFrame::clear()
{
m_bitmap.reset();
m_status = FrameEmpty;
@@ -69,12 +69,12 @@ void RGBA32Buffer::clear()
// other metadata out of this frame later.
}
-void RGBA32Buffer::zeroFill()
+void ImageFrame::zeroFill()
{
m_bitmap.eraseARGB(0, 0, 0, 0);
}
-bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
+bool ImageFrame::copyBitmapData(const ImageFrame& other)
{
if (this == &other)
return true;
@@ -84,7 +84,7 @@ bool RGBA32Buffer::copyBitmapData(const RGBA32Buffer& other)
return otherBitmap.copyTo(&m_bitmap, otherBitmap.config());
}
-bool RGBA32Buffer::setSize(int newWidth, int newHeight)
+bool ImageFrame::setSize(int newWidth, int newHeight)
{
// This function should only be called once, it will leak memory
// otherwise.
@@ -99,7 +99,7 @@ bool RGBA32Buffer::setSize(int newWidth, int newHeight)
return true;
}
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
#if PLATFORM(ANDROID)
return new SkBitmapRef(m_bitmap);
@@ -108,34 +108,34 @@ NativeImagePtr RGBA32Buffer::asNewNativeImage() const
#endif
}
-bool RGBA32Buffer::hasAlpha() const
+bool ImageFrame::hasAlpha() const
{
return !m_bitmap.isOpaque();
}
-void RGBA32Buffer::setHasAlpha(bool alpha)
+void ImageFrame::setHasAlpha(bool alpha)
{
m_bitmap.setIsOpaque(!alpha);
}
-void RGBA32Buffer::setColorProfile(const ColorProfile& colorProfile)
+void ImageFrame::setColorProfile(const ColorProfile& colorProfile)
{
notImplemented();
}
-void RGBA32Buffer::setStatus(FrameStatus status)
+void ImageFrame::setStatus(FrameStatus status)
{
m_status = status;
if (m_status == FrameComplete)
m_bitmap.setDataComplete(); // Tell the bitmap it's done.
}
-int RGBA32Buffer::width() const
+int ImageFrame::width() const
{
return m_bitmap.width();
}
-int RGBA32Buffer::height() const
+int ImageFrame::height() const
{
return m_bitmap.height();
}
diff --git a/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp b/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp
index a988d9c..8045ada 100644
--- a/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.cpp
@@ -53,7 +53,7 @@ bool WEBPImageDecoder::isSizeAvailable()
return ImageDecoder::isSizeAvailable();
}
-RGBA32Buffer* WEBPImageDecoder::frameBufferAtIndex(size_t index)
+ImageFrame* WEBPImageDecoder::frameBufferAtIndex(size_t index)
{
if (index)
return 0;
@@ -63,8 +63,8 @@ RGBA32Buffer* WEBPImageDecoder::frameBufferAtIndex(size_t index)
m_frameBufferCache[0].setPremultiplyAlpha(m_premultiplyAlpha);
}
- RGBA32Buffer& frame = m_frameBufferCache[0];
- if (frame.status() != RGBA32Buffer::FrameComplete)
+ ImageFrame& frame = m_frameBufferCache[0];
+ if (frame.status() != ImageFrame::FrameComplete)
decode(false);
return &frame;
}
@@ -96,8 +96,8 @@ bool WEBPImageDecoder::decode(bool onlySize)
if (!isAllDataReceived())
return true;
ASSERT(!m_frameBufferCache.isEmpty());
- RGBA32Buffer& buffer = m_frameBufferCache[0];
- if (buffer.status() == RGBA32Buffer::FrameEmpty) {
+ ImageFrame& buffer = m_frameBufferCache[0];
+ if (buffer.status() == ImageFrame::FrameEmpty) {
ASSERT(width == size().width());
ASSERT(height == size().height());
if (!buffer.setSize(width, height))
@@ -114,7 +114,7 @@ bool WEBPImageDecoder::decode(bool onlySize)
for (int x = 0; x < width; ++x)
buffer.setRGBA(x, y, src[bytesPerPixel * x + 2], src[bytesPerPixel * x + 1], src[bytesPerPixel * x + 0], 0xff);
}
- buffer.setStatus(RGBA32Buffer::FrameComplete);
+ buffer.setStatus(ImageFrame::FrameComplete);
buffer.setHasAlpha(false);
buffer.setRect(IntRect(IntPoint(), size()));
return true;
diff --git a/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h b/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h
index 6cf8870..cde1bbf 100644
--- a/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h
+++ b/Source/WebCore/platform/image-decoders/webp/WEBPImageDecoder.h
@@ -41,7 +41,7 @@ public:
virtual ~WEBPImageDecoder();
virtual String filenameExtension() const { return "vp8"; }
virtual bool isSizeAvailable();
- virtual RGBA32Buffer* frameBufferAtIndex(size_t index);
+ virtual ImageFrame* frameBufferAtIndex(size_t index);
virtual bool supportsAlpha() const { return false; }
private:
diff --git a/Source/WebCore/platform/image-decoders/wx/ImageDecoderWx.cpp b/Source/WebCore/platform/image-decoders/wx/ImageDecoderWx.cpp
index 966eb90..9314bbe 100644
--- a/Source/WebCore/platform/image-decoders/wx/ImageDecoderWx.cpp
+++ b/Source/WebCore/platform/image-decoders/wx/ImageDecoderWx.cpp
@@ -37,7 +37,7 @@
namespace WebCore {
-NativeImagePtr RGBA32Buffer::asNewNativeImage() const
+NativeImagePtr ImageFrame::asNewNativeImage() const
{
wxBitmap* bmp = new wxBitmap(width(), height(), 32);
diff --git a/Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp b/Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp
index b675ab5..be3c92a 100644
--- a/Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp
+++ b/Source/WebCore/platform/image-encoders/skia/JPEGImageEncoder.cpp
@@ -79,23 +79,12 @@ static void handleError(j_common_ptr common)
longjmp(*jumpBufferPtr, -1);
}
-// FIXME: is alpha unpremultiplication correct, or should the alpha channel
-// be ignored? See bug http://webkit.org/b/40147.
-void preMultipliedBGRAtoRGB(const SkPMColor* input, unsigned int pixels, unsigned char* output)
+static void preMultipliedBGRAtoRGB(const SkPMColor* input, unsigned int pixels, unsigned char* output)
{
- static const SkUnPreMultiply::Scale* scale = SkUnPreMultiply::GetScaleTable();
-
for (; pixels-- > 0; ++input) {
- const unsigned alpha = SkGetPackedA32(*input);
- if ((alpha != 0) && (alpha != 255)) {
- *output++ = SkUnPreMultiply::ApplyScale(scale[alpha], SkGetPackedR32(*input));
- *output++ = SkUnPreMultiply::ApplyScale(scale[alpha], SkGetPackedG32(*input));
- *output++ = SkUnPreMultiply::ApplyScale(scale[alpha], SkGetPackedB32(*input));
- } else {
- *output++ = SkGetPackedR32(*input);
- *output++ = SkGetPackedG32(*input);
- *output++ = SkGetPackedB32(*input);
- }
+ *output++ = SkGetPackedR32(*input);
+ *output++ = SkGetPackedG32(*input);
+ *output++ = SkGetPackedB32(*input);
}
}
diff --git a/Source/WebCore/platform/mac/DragDataMac.mm b/Source/WebCore/platform/mac/DragDataMac.mm
index 9cb4836..64376b1 100644
--- a/Source/WebCore/platform/mac/DragDataMac.mm
+++ b/Source/WebCore/platform/mac/DragDataMac.mm
@@ -33,41 +33,52 @@
#import "DOMDocumentFragmentInternal.h"
#import "MIMETypeRegistry.h"
#import "Pasteboard.h"
-#import "PasteboardHelper.h"
+#import "Range.h"
namespace WebCore {
DragData::DragData(DragDataRef data, const IntPoint& clientPosition, const IntPoint& globalPosition,
- DragOperation sourceOperationMask, PasteboardHelper* pasteboardHelper)
+ DragOperation sourceOperationMask, DragApplicationFlags flags)
: m_clientPosition(clientPosition)
, m_globalPosition(globalPosition)
, m_platformDragData(data)
, m_draggingSourceOperationMask(sourceOperationMask)
- , m_pasteboardHelper(pasteboardHelper)
+ , m_applicationFlags(flags)
+ , m_pasteboard([m_platformDragData draggingPasteboard])
+{
+}
+
+DragData::DragData(const String& dragStorageName, const IntPoint& clientPosition, const IntPoint& globalPosition,
+ DragOperation sourceOperationMask, DragApplicationFlags flags)
+ : m_clientPosition(clientPosition)
+ , m_globalPosition(globalPosition)
+ , m_platformDragData(0)
+ , m_draggingSourceOperationMask(sourceOperationMask)
+ , m_applicationFlags(flags)
+ , m_pasteboard([NSPasteboard pasteboardWithName:dragStorageName])
{
- ASSERT(pasteboardHelper);
}
bool DragData::canSmartReplace() const
{
//Need to call this so that the various Pasteboard type strings are intialised
Pasteboard::generalPasteboard();
- return [[[m_platformDragData draggingPasteboard] types] containsObject:WebSmartPastePboardType];
+ return [[m_pasteboard.get() types] containsObject:WebSmartPastePboardType];
}
bool DragData::containsColor() const
{
- return [[[m_platformDragData draggingPasteboard] types] containsObject:NSColorPboardType];
+ return [[m_pasteboard.get() types] containsObject:NSColorPboardType];
}
bool DragData::containsFiles() const
{
- return [[[m_platformDragData draggingPasteboard] types] containsObject:NSFilenamesPboardType];
+ return [[m_pasteboard.get() types] containsObject:NSFilenamesPboardType];
}
void DragData::asFilenames(Vector<String>& result) const
{
- NSArray *filenames = [[m_platformDragData draggingPasteboard] propertyListForType:NSFilenamesPboardType];
+ NSArray *filenames = [m_pasteboard.get() propertyListForType:NSFilenamesPboardType];
NSEnumerator *fileEnumerator = [filenames objectEnumerator];
while (NSString *filename = [fileEnumerator nextObject])
@@ -76,19 +87,19 @@ void DragData::asFilenames(Vector<String>& result) const
bool DragData::containsPlainText() const
{
- NSPasteboard *pasteboard = [m_platformDragData draggingPasteboard];
- NSArray *types = [pasteboard types];
+ NSArray *types = [m_pasteboard.get() types];
return [types containsObject:NSStringPboardType]
|| [types containsObject:NSRTFDPboardType]
|| [types containsObject:NSRTFPboardType]
|| [types containsObject:NSFilenamesPboardType]
- || [NSURL URLFromPasteboard:pasteboard];
+ || [NSURL URLFromPasteboard:m_pasteboard.get()];
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame *frame) const
{
- return m_pasteboardHelper->plainTextFromPasteboard([m_platformDragData draggingPasteboard]);
+ Pasteboard pasteboard(m_pasteboard.get());
+ return pasteboard.plainText(frame);
}
Color DragData::asColor() const
@@ -98,29 +109,50 @@ Color DragData::asColor() const
(int)([color blueComponent] * 255.0 + 0.5), (int)([color alphaComponent] * 255.0 + 0.5));
}
+static NSArray *insertablePasteboardTypes()
+{
+ static NSArray *types = nil;
+ if (!types) {
+ types = [[NSArray alloc] initWithObjects:WebArchivePboardType, NSHTMLPboardType, NSFilenamesPboardType, NSTIFFPboardType, NSPDFPboardType,
+#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD)
+ NSPICTPboardType,
+#endif
+ NSURLPboardType, NSRTFDPboardType, NSRTFPboardType, NSStringPboardType, NSColorPboardType, kUTTypePNG, nil];
+ CFRetain(types);
+ }
+ return types;
+}
+
bool DragData::containsCompatibleContent() const
{
- NSPasteboard *pasteboard = [m_platformDragData draggingPasteboard];
- NSMutableSet *types = [NSMutableSet setWithArray:[pasteboard types]];
- [types intersectSet:[NSSet setWithArray:m_pasteboardHelper->insertablePasteboardTypes()]];
+ NSMutableSet *types = [NSMutableSet setWithArray:[m_pasteboard.get() types]];
+ [types intersectSet:[NSSet setWithArray:insertablePasteboardTypes()]];
return [types count] != 0;
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame* frame, FilenameConversionPolicy filenamePolicy) const
{
- return !asURL(filenamePolicy).isEmpty();
+ return !asURL(frame, filenamePolicy).isEmpty();
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame* frame, FilenameConversionPolicy filenamePolicy, String* title) const
{
// FIXME: Use filenamePolicy.
(void)filenamePolicy;
- return m_pasteboardHelper->urlFromPasteboard([m_platformDragData draggingPasteboard], title);
+
+ if (title) {
+ if (NSString *URLTitleString = [[m_platformDragData draggingPasteboard] stringForType:WebURLNamePboardType])
+ *title = URLTitleString;
+ }
+ Pasteboard pasteboard(m_pasteboard.get());
+ return pasteboard.asURL(frame);
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range> range, bool allowPlainText, bool& chosePlainText) const
{
- return core(m_pasteboardHelper->fragmentFromPasteboard([m_platformDragData draggingPasteboard]));
+ Pasteboard pasteboard(m_pasteboard.get());
+
+ return pasteboard.documentFragment(frame, range, allowPlainText, chosePlainText);
}
} // namespace WebCore
diff --git a/Source/WebCore/platform/mac/PasteboardMac.mm b/Source/WebCore/platform/mac/PasteboardMac.mm
index 0625287..71e4046 100644
--- a/Source/WebCore/platform/mac/PasteboardMac.mm
+++ b/Source/WebCore/platform/mac/PasteboardMac.mm
@@ -191,7 +191,7 @@ void Pasteboard::writeSelection(NSPasteboard* pasteboard, Range* selectedRange,
if ([types containsObject:NSStringPboardType]) {
// Map &nbsp; to a plain old space because this is better for source code, other browsers do it,
// and because HTML forces you to do this any time you want two spaces in a row.
- String text = selectedRange->text();
+ String text = frame->editor()->selectedText();
NSMutableString *s = [[[(NSString*)text copy] autorelease] mutableCopy];
NSString *NonBreakingSpaceString = [NSString stringWithCharacters:&noBreakSpace length:1];
@@ -436,7 +436,50 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart)
return URL;
}
+
+NSURL *Pasteboard::getBestURL(Frame* frame)
+{
+ NSArray *types = [m_pasteboard.get() types];
+
+ // FIXME: using the editorClient to call into webkit, for now, since
+ // calling webkit_canonicalize from WebCore involves migrating a sizable amount of
+ // helper code that should either be done in a separate patch or figured out in another way.
+
+ if ([types containsObject:NSURLPboardType]) {
+ NSURL *URLFromPasteboard = [NSURL URLFromPasteboard:m_pasteboard.get()];
+ NSString *scheme = [URLFromPasteboard scheme];
+ if ([scheme isEqualToString:@"http"] || [scheme isEqualToString:@"https"]) {
+ return frame->editor()->client()->canonicalizeURL(URLFromPasteboard);
+ }
+ }
+
+ if ([types containsObject:NSStringPboardType]) {
+ NSString *URLString = [m_pasteboard.get() stringForType:NSStringPboardType];
+ NSURL *URL = frame->editor()->client()->canonicalizeURLString(URLString);
+ if (URL)
+ return URL;
+ }
+
+ if ([types containsObject:NSFilenamesPboardType]) {
+ NSArray *files = [m_pasteboard.get() propertyListForType:NSFilenamesPboardType];
+ // FIXME: Maybe it makes more sense to allow multiple files and only use the first one?
+ if ([files count] == 1) {
+ NSString *file = [files objectAtIndex:0];
+ BOOL isDirectory;
+ if ([[NSFileManager defaultManager] fileExistsAtPath:file isDirectory:&isDirectory] && isDirectory)
+ return nil;
+ return frame->editor()->client()->canonicalizeURL([NSURL fileURLWithPath:file]);
+ }
+ }
+ return nil;
+}
+
+String Pasteboard::asURL(Frame* frame)
+{
+ return [getBestURL(frame) absoluteString];
+}
+
PassRefPtr<DocumentFragment> Pasteboard::documentFragment(Frame* frame, PassRefPtr<Range> context, bool allowPlainText, bool& chosePlainText)
{
NSArray *types = [m_pasteboard.get() types];
diff --git a/Source/WebCore/platform/mac/ThemeMac.mm b/Source/WebCore/platform/mac/ThemeMac.mm
index 75cbd36..e510ea7 100644
--- a/Source/WebCore/platform/mac/ThemeMac.mm
+++ b/Source/WebCore/platform/mac/ThemeMac.mm
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2008, 2010 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2010, 2011 Apple Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -52,6 +52,16 @@ using namespace std;
return nil;
}
+- (NSRect)_focusRingVisibleRect
+{
+ return [self visibleRect];
+}
+
+- (NSView *)_focusRingClipAncestor
+{
+ return self;
+}
+
@end
// FIXME: Default buttons really should be more like push buttons and not like buttons.
diff --git a/Source/WebCore/platform/mac/WheelEventMac.mm b/Source/WebCore/platform/mac/WheelEventMac.mm
index d9663b9..d4fc698 100644
--- a/Source/WebCore/platform/mac/WheelEventMac.mm
+++ b/Source/WebCore/platform/mac/WheelEventMac.mm
@@ -29,9 +29,31 @@
#import "PlatformMouseEvent.h"
#import "Scrollbar.h"
#import "WebCoreSystemInterface.h"
+#import <wtf/UnusedParam.h>
namespace WebCore {
+static PlatformWheelEventPhase phaseForEvent(NSEvent *event)
+{
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ uint32_t phase = PlatformWheelEventPhaseNone;
+ if ([event momentumPhase] & NSEventPhaseBegan)
+ phase |= PlatformWheelEventPhaseBegan;
+ if ([event momentumPhase] & NSEventPhaseStationary)
+ phase |= PlatformWheelEventPhaseStationary;
+ if ([event momentumPhase] & NSEventPhaseChanged)
+ phase |= PlatformWheelEventPhaseChanged;
+ if ([event momentumPhase] & NSEventPhaseEnded)
+ phase |= PlatformWheelEventPhaseEnded;
+ if ([event momentumPhase] & NSEventPhaseCancelled)
+ phase |= PlatformWheelEventPhaseCancelled;
+ return static_cast<PlatformWheelEventPhase>(phase);
+#else
+ UNUSED_PARAM(event);
+ return PlatformWheelEventPhaseNone;
+#endif
+}
+
PlatformWheelEvent::PlatformWheelEvent(NSEvent* event, NSView *windowView)
: m_position(pointForEvent(event, windowView))
, m_globalPosition(globalPointForEvent(event))
@@ -41,9 +63,10 @@ PlatformWheelEvent::PlatformWheelEvent(NSEvent* event, NSView *windowView)
, m_ctrlKey([event modifierFlags] & NSControlKeyMask)
, m_altKey([event modifierFlags] & NSAlternateKeyMask)
, m_metaKey([event modifierFlags] & NSCommandKeyMask)
+ , m_phase(phaseForEvent(event))
{
BOOL continuous;
-
+
wkGetWheelEventDeltas(event, &m_deltaX, &m_deltaY, &continuous);
if (continuous) {
m_wheelTicksX = m_deltaX / static_cast<float>(Scrollbar::pixelsPerLineStep());
diff --git a/Source/WebCore/platform/mac/WidgetMac.mm b/Source/WebCore/platform/mac/WidgetMac.mm
index e8bb81d..f3c951a 100644
--- a/Source/WebCore/platform/mac/WidgetMac.mm
+++ b/Source/WebCore/platform/mac/WidgetMac.mm
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2006, 2008, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2004, 2005, 2006, 2008, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -34,6 +34,7 @@
#import "Chrome.h"
#import "Cursor.h"
#import "Document.h"
+#import "FloatConversion.h"
#import "Font.h"
#import "Frame.h"
#import "GraphicsContext.h"
@@ -170,25 +171,48 @@ void Widget::setFrameRect(const IntRect& rect)
m_frame = rect;
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- NSView *v = getOuterView();
- if (!v)
+ NSView *outerView = getOuterView();
+ if (!outerView)
return;
- NSRect visibleRect = [v visibleRect];
+ // Take a reference to this Widget, because sending messages to outerView can invoke arbitrary
+ // code, which can deref it.
+ RefPtr<Widget> protectedThis(this);
+
+ NSRect visibleRect = [outerView visibleRect];
NSRect f = rect;
- if (!NSEqualRects(f, [v frame])) {
- [v setFrame:f];
- [v setNeedsDisplay:NO];
- } else if (!NSEqualRects(visibleRect, m_data->previousVisibleRect) && [v respondsToSelector:@selector(visibleRectDidChange)])
- [v visibleRectDidChange];
+ if (!NSEqualRects(f, [outerView frame])) {
+ [outerView setFrame:f];
+ [outerView setNeedsDisplay:NO];
+ } else if (!NSEqualRects(visibleRect, m_data->previousVisibleRect) && [outerView respondsToSelector:@selector(visibleRectDidChange)])
+ [outerView visibleRectDidChange];
m_data->previousVisibleRect = visibleRect;
END_BLOCK_OBJC_EXCEPTIONS;
}
-NSView* Widget::getOuterView() const
+void Widget::setBoundsSize(const IntSize& size)
{
- NSView* view = platformWidget();
+ NSSize nsSize = size;
+
+ BEGIN_BLOCK_OBJC_EXCEPTIONS;
+ NSView *outerView = getOuterView();
+ if (!outerView)
+ return;
+
+ // Take a reference to this Widget, because sending messages to outerView can invoke arbitrary
+ // code, which can deref it.
+ RefPtr<Widget> protectedThis(this);
+ if (!NSEqualSizes(nsSize, [outerView bounds].size)) {
+ [outerView setBoundsSize:nsSize];
+ [outerView setNeedsDisplay:NO];
+ }
+ END_BLOCK_OBJC_EXCEPTIONS;
+}
+
+NSView *Widget::getOuterView() const
+{
+ NSView *view = platformWidget();
// If this widget's view is a WebCoreFrameScrollView then we
// resize its containing view, a WebFrameView.
@@ -205,11 +229,35 @@ void Widget::paint(GraphicsContext* p, const IntRect& r)
if (p->paintingDisabled())
return;
NSView *view = getOuterView();
+
+ // Take a reference to this Widget, because sending messages to the views can invoke arbitrary
+ // code, which can deref it.
+ RefPtr<Widget> protectedThis(this);
+
+ IntPoint transformOrigin = frameRect().location();
+ AffineTransform widgetToViewTranform = makeMapBetweenRects(IntRect(IntPoint(), frameRect().size()), [view bounds]);
+
NSGraphicsContext *currentContext = [NSGraphicsContext currentContext];
if (currentContext == [[view window] graphicsContext] || ![currentContext isDrawingToScreen]) {
// This is the common case of drawing into a window or printing.
BEGIN_BLOCK_OBJC_EXCEPTIONS;
- [view displayRectIgnoringOpacity:[view convertRect:r fromView:[view superview]]];
+
+ CGContextRef context = (CGContextRef)[currentContext graphicsPort];
+
+ CGContextSaveGState(context);
+ CGContextTranslateCTM(context, transformOrigin.x(), transformOrigin.y());
+ CGContextScaleCTM(context, narrowPrecisionToFloat(widgetToViewTranform.xScale()), narrowPrecisionToFloat(widgetToViewTranform.yScale()));
+ CGContextTranslateCTM(context, -transformOrigin.x(), -transformOrigin.y());
+
+ IntRect dirtyRect = r;
+ dirtyRect.move(-transformOrigin.x(), -transformOrigin.y());
+ if (![view isFlipped])
+ dirtyRect.setY([view bounds].size.height - dirtyRect.bottom());
+
+ [view displayRectIgnoringOpacity:dirtyRect];
+
+ CGContextRestoreGState(context);
+
END_BLOCK_OBJC_EXCEPTIONS;
} else {
// This is the case of drawing into a bitmap context other than a window backing store. It gets hit beneath
@@ -234,6 +282,10 @@ void Widget::paint(GraphicsContext* p, const IntRect& r)
ASSERT(cgContext == [currentContext graphicsPort]);
CGContextSaveGState(cgContext);
+ CGContextTranslateCTM(cgContext, transformOrigin.x(), transformOrigin.y());
+ CGContextScaleCTM(cgContext, narrowPrecisionToFloat(widgetToViewTranform.xScale()), narrowPrecisionToFloat(widgetToViewTranform.yScale()));
+ CGContextTranslateCTM(cgContext, -transformOrigin.x(), -transformOrigin.y());
+
NSRect viewFrame = [view frame];
NSRect viewBounds = [view bounds];
// Set up the translation and (flipped) orientation of the graphics context. In normal drawing, AppKit does it as it descends down
@@ -241,13 +293,18 @@ void Widget::paint(GraphicsContext* p, const IntRect& r)
CGContextTranslateCTM(cgContext, viewFrame.origin.x - viewBounds.origin.x, viewFrame.origin.y + viewFrame.size.height + viewBounds.origin.y);
CGContextScaleCTM(cgContext, 1, -1);
+ IntRect dirtyRect = r;
+ dirtyRect.move(-transformOrigin.x(), -transformOrigin.y());
+ if (![view isFlipped])
+ dirtyRect.setY([view bounds].size.height - dirtyRect.bottom());
+
BEGIN_BLOCK_OBJC_EXCEPTIONS;
{
#ifdef BUILDING_ON_TIGER
AutodrainedPool pool;
#endif
NSGraphicsContext *nsContext = [NSGraphicsContext graphicsContextWithGraphicsPort:cgContext flipped:YES];
- [view displayRectIgnoringOpacity:[view convertRect:r fromView:[view superview]] inContext:nsContext];
+ [view displayRectIgnoringOpacity:dirtyRect inContext:nsContext];
}
END_BLOCK_OBJC_EXCEPTIONS;
@@ -261,6 +318,7 @@ void Widget::paint(GraphicsContext* p, const IntRect& r)
void Widget::setIsSelected(bool isSelected)
{
NSView *view = platformWidget();
+
BEGIN_BLOCK_OBJC_EXCEPTIONS;
if ([view respondsToSelector:@selector(webPlugInSetIsSelected:)])
[view webPlugInSetIsSelected:isSelected];
diff --git a/Source/WebCore/platform/mock/SpeechInputClientMock.cpp b/Source/WebCore/platform/mock/SpeechInputClientMock.cpp
index 16f2825..16a7c76 100644
--- a/Source/WebCore/platform/mock/SpeechInputClientMock.cpp
+++ b/Source/WebCore/platform/mock/SpeechInputClientMock.cpp
@@ -72,8 +72,8 @@ void SpeechInputClientMock::stopRecording(int requestId)
void SpeechInputClientMock::cancelRecognition(int requestId)
{
- ASSERT(requestId == m_requestId);
if (m_timer.isActive()) {
+ ASSERT(requestId == m_requestId);
m_timer.stop();
m_recording = false;
m_listener->didCompleteRecognition(m_requestId);
@@ -107,15 +107,20 @@ void SpeechInputClientMock::timerFired(WebCore::Timer<SpeechInputClientMock>*)
} else {
bool noResultsFound = false;
+ // We take a copy of the requestId here so that if scripts destroyed the input element
+ // inside one of the callbacks below, we'll still know what this session's requestId was.
+ int requestId = m_requestId;
+ m_requestId = 0;
+
// Empty language case must be handled separately to avoid problems with HashMap and empty keys.
if (m_language.isEmpty()) {
if (!m_resultsForEmptyLanguage.isEmpty())
- m_listener->setRecognitionResult(m_requestId, m_resultsForEmptyLanguage);
+ m_listener->setRecognitionResult(requestId, m_resultsForEmptyLanguage);
else
noResultsFound = true;
} else {
if (m_recognitionResults.contains(m_language))
- m_listener->setRecognitionResult(m_requestId, m_recognitionResults.get(m_language));
+ m_listener->setRecognitionResult(requestId, m_recognitionResults.get(m_language));
else
noResultsFound = true;
}
@@ -128,11 +133,10 @@ void SpeechInputClientMock::timerFired(WebCore::Timer<SpeechInputClientMock>*)
error.append("'");
SpeechInputResultArray results;
results.append(SpeechInputResult::create(error, 1.0));
- m_listener->setRecognitionResult(m_requestId, results);
+ m_listener->setRecognitionResult(requestId, results);
}
- m_listener->didCompleteRecognition(m_requestId);
- m_requestId = 0;
+ m_listener->didCompleteRecognition(requestId);
}
}
diff --git a/Source/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp b/Source/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
index 959e74a..f3e7023 100644
--- a/Source/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
+++ b/Source/WebCore/platform/network/qt/NetworkStateNotifierQt.cpp
@@ -91,6 +91,6 @@ void NetworkStateNotifier::setNetworkAccessAllowed(bool isAllowed)
} // namespace WebCore
-#endif
-
#include "moc_NetworkStateNotifierPrivate.cpp"
+
+#endif
diff --git a/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.cpp b/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.cpp
index 0caeb05..e0d6e69 100644
--- a/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.cpp
+++ b/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.cpp
@@ -25,10 +25,6 @@
#include <QNetworkCookieJar>
#include <QStringList>
-// Use unused variables to be able to call qRegisterMetaType statically.
-static int dummyStaticVar1 = qRegisterMetaType<QFutureInterface<bool> >("QFutureInterface<bool>");
-static int dummyStaticVar2 = qRegisterMetaType<QFutureInterface<QList<QNetworkCookie> > >("QFutureInterface<QList<QNetworkCookie> >");
-
namespace WebCore {
QtNAMThreadSafeProxy::QtNAMThreadSafeProxy(QNetworkAccessManager *manager)
@@ -37,8 +33,8 @@ QtNAMThreadSafeProxy::QtNAMThreadSafeProxy(QNetworkAccessManager *manager)
moveToThread(manager->thread());
connect(this, SIGNAL(localSetCookiesRequested(const QUrl&, const QString&)), SLOT(localSetCookies(const QUrl&, const QString&)));
- connect(this, SIGNAL(localCookiesForUrlRequested(QFutureInterface<QList<QNetworkCookie> >, const QUrl&)), SLOT(localCookiesForUrl(QFutureInterface<QList<QNetworkCookie> >, const QUrl&)));
- connect(this, SIGNAL(localWillLoadFromCacheRequested(QFutureInterface<bool>, const QUrl&)), SLOT(localWillLoadFromCache(QFutureInterface<bool>, const QUrl&)));
+ connect(this, SIGNAL(localCookiesForUrlRequested(const QUrl&, bool*, QList<QNetworkCookie>*)), SLOT(localCookiesForUrl(const QUrl&, bool*, QList<QNetworkCookie>*)));
+ connect(this, SIGNAL(localWillLoadFromCacheRequested(const QUrl&, bool*, bool*)), SLOT(localWillLoadFromCache(const QUrl&, bool*, bool*)));
}
void QtNAMThreadSafeProxy::localSetCookies(const QUrl& url, const QString& cookies)
@@ -54,19 +50,23 @@ void QtNAMThreadSafeProxy::localSetCookies(const QUrl& url, const QString& cooki
m_manager->cookieJar()->setCookiesFromUrl(cookieList, url);
}
-void QtNAMThreadSafeProxy::localCookiesForUrl(QFutureInterface<QList<QNetworkCookie> > fi, const QUrl& url)
+void QtNAMThreadSafeProxy::localCookiesForUrl(const QUrl& url, bool* done, QList<QNetworkCookie>* result)
{
- fi.reportResult(m_manager->cookieJar()->cookiesForUrl(url));
- fi.reportFinished();
+ QMutexLocker lock(&m_resultMutex);
+ *result = m_manager->cookieJar()->cookiesForUrl(url);
+ *done = true;
+ m_resultWaitCondition.wakeAll();
}
-void QtNAMThreadSafeProxy::localWillLoadFromCache(QFutureInterface<bool> fi, const QUrl& url)
+void QtNAMThreadSafeProxy::localWillLoadFromCache(const QUrl& url, bool* done, bool* result)
{
- bool retVal = false;
+ QMutexLocker lock(&m_resultMutex);
if (m_manager->cache())
- retVal = m_manager->cache()->metaData(url).isValid();
-
- fi.reportFinished(&retVal);
+ *result = m_manager->cache()->metaData(url).isValid();
+ else
+ *result = false;
+ *done = true;
+ m_resultWaitCondition.wakeAll();
}
QtNetworkReplyThreadSafeProxy::QtNetworkReplyThreadSafeProxy(QNetworkAccessManager *manager)
diff --git a/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.h b/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.h
index a2fa4ee..ae963cf 100644
--- a/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.h
+++ b/Source/WebCore/platform/network/qt/QtNAMThreadSafeProxy.h
@@ -19,11 +19,11 @@
#ifndef QtNAMThreadSafeProxy_h
#define QtNAMThreadSafeProxy_h
-#include <QFuture>
#include <QMutex>
#include <QNetworkCookie>
#include <QNetworkReply>
#include <QObject>
+#include <QWaitCondition>
QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
@@ -43,34 +43,44 @@ public:
emit localSetCookiesRequested(url, cookies);
}
- QFuture<QList<QNetworkCookie> > cookiesForUrl(const QUrl& url)
+ QList<QNetworkCookie> cookiesForUrl(const QUrl& url)
{
- QFutureInterface<QList<QNetworkCookie> > fi;
- fi.reportStarted();
- emit localCookiesForUrlRequested(fi, url);
- return fi.future();
+ bool done = false;
+ QList<QNetworkCookie> result;
+ emit localCookiesForUrlRequested(url, &done, &result);
+
+ QMutexLocker lock(&m_resultMutex);
+ while (!done)
+ m_resultWaitCondition.wait(&m_resultMutex);
+ return result;
}
- QFuture<bool> willLoadFromCache(const QUrl& url)
+ bool willLoadFromCache(const QUrl& url)
{
- QFutureInterface<bool> fi;
- fi.reportStarted();
- emit localWillLoadFromCacheRequested(fi, url);
- return fi.future();
+ bool done = false;
+ bool result;
+ emit localWillLoadFromCacheRequested(url, &done, &result);
+
+ QMutexLocker lock(&m_resultMutex);
+ while (!done)
+ m_resultWaitCondition.wait(&m_resultMutex);
+ return result;
}
signals:
- void localSetCookiesRequested(const QUrl& url, const QString& cookies);
- void localCookiesForUrlRequested(QFutureInterface<QList<QNetworkCookie> > fi, const QUrl& url);
- void localWillLoadFromCacheRequested(QFutureInterface<bool> fi, const QUrl& url);
+ void localSetCookiesRequested(const QUrl&, const QString& cookies);
+ void localCookiesForUrlRequested(const QUrl&, bool* done, QList<QNetworkCookie>* result);
+ void localWillLoadFromCacheRequested(const QUrl&, bool* done, bool* result);
private slots:
- void localSetCookies(const QUrl& url, const QString& cookies);
- void localCookiesForUrl(QFutureInterface<QList<QNetworkCookie> > fi, const QUrl& url);
- void localWillLoadFromCache(QFutureInterface<bool> fi, const QUrl& url);
+ void localSetCookies(const QUrl&, const QString& cookies);
+ void localCookiesForUrl(const QUrl&, bool* done, QList<QNetworkCookie>* result);
+ void localWillLoadFromCache(const QUrl&, bool* done, bool* result);
private:
QNetworkAccessManager* m_manager;
+ QMutex m_resultMutex;
+ QWaitCondition m_resultWaitCondition;
};
diff --git a/Source/WebCore/platform/network/soup/AuthenticationChallenge.h b/Source/WebCore/platform/network/soup/AuthenticationChallenge.h
index 5177f1e..492d5c2 100644
--- a/Source/WebCore/platform/network/soup/AuthenticationChallenge.h
+++ b/Source/WebCore/platform/network/soup/AuthenticationChallenge.h
@@ -26,6 +26,7 @@
#define AuthenticationChallenge_h
#include "AuthenticationChallengeBase.h"
+#include "AuthenticationClient.h"
namespace WebCore {
@@ -39,6 +40,10 @@ public:
: AuthenticationChallengeBase(protectionSpace, proposedCredential, previousFailureCount, response, error)
{
}
+
+ AuthenticationClient* authenticationClient() const { return m_authenticationClient.get(); }
+
+ RefPtr<AuthenticationClient> m_authenticationClient;
};
}
diff --git a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
index 8900b18..ebb6c5f 100644
--- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -215,6 +215,8 @@ static void restartedCallback(SoupMessage* msg, gpointer data)
#endif
}
+static void contentSniffedCallback(SoupMessage*, const char*, GHashTable*, gpointer);
+
static void gotHeadersCallback(SoupMessage* msg, gpointer data)
{
// For 401, we will accumulate the resource body, and only use it
@@ -235,9 +237,18 @@ static void gotHeadersCallback(SoupMessage* msg, gpointer data)
// The content-sniffed callback will handle the response if WebCore
// require us to sniff.
- if (!handle || statusWillBeHandledBySoup(msg->status_code) || handle->shouldContentSniff())
+ if (!handle || statusWillBeHandledBySoup(msg->status_code))
return;
+ if (handle->shouldContentSniff()) {
+ // Avoid MIME type sniffing if the response comes back as 304 Not Modified.
+ if (msg->status_code == SOUP_STATUS_NOT_MODIFIED) {
+ soup_message_disable_feature(msg, SOUP_TYPE_CONTENT_SNIFFER);
+ g_signal_handlers_disconnect_by_func(msg, reinterpret_cast<gpointer>(contentSniffedCallback), handle.get());
+ } else
+ return;
+ }
+
ResourceHandleInternal* d = handle->getInternal();
if (d->m_cancelled)
return;
diff --git a/Source/WebCore/platform/network/soup/cache/soup-http-input-stream.c b/Source/WebCore/platform/network/soup/cache/soup-http-input-stream.c
index 195c458..2a5d995 100644
--- a/Source/WebCore/platform/network/soup/cache/soup-http-input-stream.c
+++ b/Source/WebCore/platform/network/soup/cache/soup-http-input-stream.c
@@ -267,7 +267,7 @@ webkit_soup_http_input_stream_got_chunk (SoupMessage *msg, SoupBuffer *chunk_buf
g_warning ("webkit_soup_http_input_stream_got_chunk called again before previous chunk was processed");
/* Copy what we can into priv->caller_buffer */
- if (priv->caller_bufsize - priv->caller_nread > 0) {
+ if (priv->caller_bufsize > priv->caller_nread) {
gsize nread = MIN (chunk_size, priv->caller_bufsize - priv->caller_nread);
memcpy (priv->caller_buffer + priv->caller_nread, chunk, nread);
diff --git a/Source/WebCore/platform/network/win/ProxyServerWin.cpp b/Source/WebCore/platform/network/win/ProxyServerWin.cpp
new file mode 100644
index 0000000..c610e20
--- /dev/null
+++ b/Source/WebCore/platform/network/win/ProxyServerWin.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2010 Brent Fulgham <bfulgham@webkit.org>. 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 "ProxyServer.h"
+
+namespace WebCore {
+
+Vector<ProxyServer> proxyServersForURL(const KURL&, const NetworkingContext*)
+{
+ // FIXME: Implement.
+ return Vector<ProxyServer>();
+}
+
+} // namespace WebCore
diff --git a/Source/WebCore/platform/qt/CookieJarQt.cpp b/Source/WebCore/platform/qt/CookieJarQt.cpp
index e5d36ba..b7ff5d1 100644
--- a/Source/WebCore/platform/qt/CookieJarQt.cpp
+++ b/Source/WebCore/platform/qt/CookieJarQt.cpp
@@ -30,14 +30,13 @@
#include "Cookie.h"
#include "Document.h"
+#include "FrameLoaderClientQt.h"
#include "KURL.h"
-#include "QtNAMThreadSafeProxy.h"
#include "NetworkingContext.h"
#include "PlatformString.h"
-
-#include "qwebpage.h"
+#include "QtNAMThreadSafeProxy.h"
#include "qwebframe.h"
-#include "FrameLoaderClientQt.h"
+#include "qwebpage.h"
#include <QNetworkAccessManager>
#include <QNetworkCookie>
#include <QStringList>
@@ -49,10 +48,10 @@ static QNetworkAccessManager *networkAccessManager(const Document *document)
{
if (!document)
return 0;
- Frame *frame = document->frame();
+ Frame* frame = document->frame();
if (!frame)
return 0;
- FrameLoader *loader = frame->loader();
+ FrameLoader* loader = frame->loader();
if (!loader)
return 0;
return loader->networkingContext()->networkAccessManager();
@@ -115,7 +114,10 @@ String cookieRequestHeaderFieldValue(const Document* document, const KURL &url)
bool cookiesEnabled(const Document* document)
{
- return networkAccessManager(document);
+ if (QNetworkAccessManager* manager = networkAccessManager(document))
+ return !!manager->cookieJar();
+
+ return false;
}
bool getRawCookies(const Document*, const KURL&, Vector<Cookie>& rawCookies)
diff --git a/Source/WebCore/platform/qt/DragDataQt.cpp b/Source/WebCore/platform/qt/DragDataQt.cpp
index 4033123..f68ad1d 100644
--- a/Source/WebCore/platform/qt/DragDataQt.cpp
+++ b/Source/WebCore/platform/qt/DragDataQt.cpp
@@ -28,6 +28,7 @@
#include "Document.h"
#include "DocumentFragment.h"
+#include "Frame.h"
#include "markup.h"
#include <QColor>
@@ -80,7 +81,7 @@ bool DragData::containsPlainText() const
return m_platformDragData->hasText() || m_platformDragData->hasUrls();
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame* frame) const
{
if (!m_platformDragData)
return String();
@@ -89,7 +90,7 @@ String DragData::asPlainText() const
return text;
// FIXME: Should handle rich text here
- return asURL(DoNotConvertFilenames, 0);
+ return asURL(frame, DoNotConvertFilenames, 0);
}
Color DragData::asColor() const
@@ -103,10 +104,10 @@ bool DragData::containsCompatibleContent() const
{
if (!m_platformDragData)
return false;
- return containsColor() || containsURL() || m_platformDragData->hasHtml() || m_platformDragData->hasText();
+ return containsColor() || containsURL(0) || m_platformDragData->hasHtml() || m_platformDragData->hasText();
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
// FIXME: Use filenamePolicy.
if (!m_platformDragData)
@@ -114,7 +115,7 @@ bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
return m_platformDragData->hasUrls();
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String*) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String*) const
{
// FIXME: Use filenamePolicy.
if (!m_platformDragData)
@@ -127,10 +128,10 @@ String DragData::asURL(FilenameConversionPolicy filenamePolicy, String*) const
return encodeWithURLEscapeSequences(urls.first().toString());
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range>, bool, bool&) const
{
if (m_platformDragData && m_platformDragData->hasHtml())
- return createFragmentFromMarkup(doc, m_platformDragData->html(), "", FragmentScriptingNotAllowed);
+ return createFragmentFromMarkup(frame->document(), m_platformDragData->html(), "", FragmentScriptingNotAllowed);
return 0;
}
diff --git a/Source/WebCore/platform/qt/PasteboardQt.cpp b/Source/WebCore/platform/qt/PasteboardQt.cpp
index 1c60da0..6865fd7 100644
--- a/Source/WebCore/platform/qt/PasteboardQt.cpp
+++ b/Source/WebCore/platform/qt/PasteboardQt.cpp
@@ -32,13 +32,12 @@
#include "Editor.h"
#include "Frame.h"
#include "Image.h"
-#include "markup.h"
#include "RenderImage.h"
-
-#include <qdebug.h>
+#include "markup.h"
+#include <qapplication.h>
#include <qclipboard.h>
+#include <qdebug.h>
#include <qmimedata.h>
-#include <qapplication.h>
#include <qurl.h>
#define methodDebug() qDebug() << "PasteboardQt: " << __FUNCTION__;
@@ -75,8 +74,7 @@ void Pasteboard::writeSelection(Range* selectedRange, bool canSmartCopyOrDelete,
#endif
#ifndef QT_NO_CLIPBOARD
- QApplication::clipboard()->setMimeData(md, m_selectionMode ?
- QClipboard::Selection : QClipboard::Clipboard);
+ QApplication::clipboard()->setMimeData(md, m_selectionMode ? QClipboard::Selection : QClipboard::Clipboard);
#endif
if (canSmartCopyOrDelete)
md->setData("application/vnd.qtwebkit.smartpaste", QByteArray());
@@ -94,8 +92,7 @@ bool Pasteboard::canSmartReplace()
String Pasteboard::plainText(Frame*)
{
#ifndef QT_NO_CLIPBOARD
- return QApplication::clipboard()->text(m_selectionMode ?
- QClipboard::Selection : QClipboard::Clipboard);
+ return QApplication::clipboard()->text(m_selectionMode ? QClipboard::Selection : QClipboard::Clipboard);
#else
return String();
#endif
@@ -136,22 +133,20 @@ void Pasteboard::writePlainText(const String& text)
QString qtext = text;
qtext.replace(QChar(0xa0), QLatin1Char(' '));
md->setText(qtext);
- QApplication::clipboard()->setMimeData(md, m_selectionMode ?
- QClipboard::Selection : QClipboard::Clipboard);
+ QApplication::clipboard()->setMimeData(md, m_selectionMode ? QClipboard::Selection : QClipboard::Clipboard);
#endif
}
-void Pasteboard::writeURL(const KURL& _url, const String&, Frame*)
+void Pasteboard::writeURL(const KURL& url, const String&, Frame*)
{
- ASSERT(!_url.isEmpty());
+ ASSERT(!url.isEmpty());
#ifndef QT_NO_CLIPBOARD
QMimeData* md = new QMimeData;
- QString url = _url.string();
- md->setText(url);
- md->setUrls(QList<QUrl>() << QUrl(url));
- QApplication::clipboard()->setMimeData(md, m_selectionMode ?
- QClipboard::Selection : QClipboard::Clipboard);
+ QString urlString = url.string();
+ md->setText(urlString);
+ md->setUrls(QList<QUrl>() << url);
+ QApplication::clipboard()->setMimeData(md, m_selectionMode ? QClipboard::Selection : QClipboard::Clipboard);
#endif
}
diff --git a/Source/WebCore/platform/qt/PlatformMouseEventQt.cpp b/Source/WebCore/platform/qt/PlatformMouseEventQt.cpp
index a8956bf..125ae52 100644
--- a/Source/WebCore/platform/qt/PlatformMouseEventQt.cpp
+++ b/Source/WebCore/platform/qt/PlatformMouseEventQt.cpp
@@ -34,6 +34,7 @@
namespace WebCore {
+#if !defined(QT_NO_GRAPHICSVIEW)
PlatformMouseEvent::PlatformMouseEvent(QGraphicsSceneMouseEvent* event, int clickCount)
{
m_timestamp = WTF::currentTime();
@@ -69,6 +70,7 @@ PlatformMouseEvent::PlatformMouseEvent(QGraphicsSceneMouseEvent* event, int clic
m_altKey = (event->modifiers() & Qt::AltModifier);
m_metaKey = (event->modifiers() & Qt::MetaModifier);
}
+#endif // QT_NO_GRAPHICSVIEW
PlatformMouseEvent::PlatformMouseEvent(QInputEvent* event, int clickCount)
{
diff --git a/Source/WebCore/platform/qt/RenderThemeQt.cpp b/Source/WebCore/platform/qt/RenderThemeQt.cpp
index 2cc3625..8d5cfcd 100644
--- a/Source/WebCore/platform/qt/RenderThemeQt.cpp
+++ b/Source/WebCore/platform/qt/RenderThemeQt.cpp
@@ -47,9 +47,11 @@
#include "QtMobileWebStyle.h"
#endif
#include "NotImplemented.h"
+#include "PaintInfo.h"
#include "Page.h"
#include "QWebPageClient.h"
#include "QtStyleOptionWebComboBox.h"
+#include "qwebsettings.h"
#include "RenderBox.h"
#if ENABLE(PROGRESS_TAG)
#include "RenderProgress.h"
@@ -92,6 +94,15 @@ inline static void initStyleOption(QWidget *widget, QStyleOption& option)
option.state = QStyle::State_Active | QStyle::State_Enabled;
}
}
+// These values all match Safari/Win/Chromium
+static const float defaultControlFontPixelSize = 13;
+static const float defaultCancelButtonSize = 9;
+static const float minCancelButtonSize = 5;
+static const float maxCancelButtonSize = 21;
+static const float defaultSearchFieldResultsDecorationSize = 13;
+static const float minSearchFieldResultsDecorationSize = 9;
+static const float maxSearchFieldResultsDecorationSize = 30;
+static const float defaultSearchFieldResultsButtonWidth = 18;
StylePainter::StylePainter(RenderThemeQt* theme, const PaintInfo& paintInfo)
@@ -186,6 +197,7 @@ bool RenderThemeQt::isControlStyled(const RenderStyle* style, const BorderData&
case PushButtonPart:
case ButtonPart:
case MenulistPart:
+ // FIXME: Need to add SearchFieldPart if it should be style-able.
case TextFieldPart:
case TextAreaPart:
return true;
@@ -201,6 +213,20 @@ int RenderThemeQt::popupInternalPaddingBottom(RenderStyle* style) const
{
return 1;
}
+#else
+// Remove this when SearchFieldPart is style-able in RenderTheme::isControlStyled()
+bool RenderThemeQt::isControlStyled(const RenderStyle* style, const BorderData& border, const FillLayer& fill, const Color& backgroundColor) const
+{
+ switch (style->appearance()) {
+ case SearchFieldPart:
+ // Test the style to see if the UA border and background match.
+ return (style->border() != border
+ || *style->backgroundLayers() != fill
+ || style->visitedDependentColor(CSSPropertyBackgroundColor) != backgroundColor);
+ default:
+ return RenderTheme::isControlStyled(style, border, fill, backgroundColor);
+ }
+}
#endif
// for some widget painting, we need to fallback to Windows style
@@ -413,6 +439,7 @@ void RenderThemeQt::computeSizeBasedOnStyle(RenderStyle* renderStyle) const
switch (renderStyle->appearance()) {
case TextAreaPart:
+ case SearchFieldPart:
case TextFieldPart: {
int padding = findFrameLineWidth(style);
@@ -611,6 +638,11 @@ bool RenderThemeQt::paintButton(RenderObject* o, const PaintInfo& i, const IntRe
void RenderThemeQt::adjustTextFieldStyle(CSSStyleSelector*, RenderStyle* style, Element*) const
{
+ // Resetting the style like this leads to differences like:
+ // - RenderTextControl {INPUT} at (2,2) size 168x25 [bgcolor=#FFFFFF] border: (2px inset #000000)]
+ // + RenderTextControl {INPUT} at (2,2) size 166x26
+ // in layout tests when a CSS style is applied that doesn't affect background color, border or
+ // padding. Just worth keeping in mind!
style->setBackgroundColor(Color::transparent);
style->resetBorder();
style->resetPadding();
@@ -886,28 +918,73 @@ void RenderThemeQt::adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle* style
bool RenderThemeQt::paintSearchField(RenderObject* o, const PaintInfo& pi,
const IntRect& r)
{
- return true;
+ return paintTextField(o, pi, r);
}
void RenderThemeQt::adjustSearchFieldStyle(CSSStyleSelector* selector, RenderStyle* style,
Element* e) const
{
- notImplemented();
- RenderTheme::adjustSearchFieldStyle(selector, style, e);
+ // Resetting the style like this leads to differences like:
+ // - RenderTextControl {INPUT} at (2,2) size 168x25 [bgcolor=#FFFFFF] border: (2px inset #000000)]
+ // + RenderTextControl {INPUT} at (2,2) size 166x26
+ // in layout tests when a CSS style is applied that doesn't affect background color, border or
+ // padding. Just worth keeping in mind!
+ style->setBackgroundColor(Color::transparent);
+ style->resetBorder();
+ style->resetPadding();
+ computeSizeBasedOnStyle(style);
}
void RenderThemeQt::adjustSearchFieldCancelButtonStyle(CSSStyleSelector* selector, RenderStyle* style,
Element* e) const
{
- notImplemented();
- RenderTheme::adjustSearchFieldCancelButtonStyle(selector, style, e);
+ // Logic taken from RenderThemeChromium.cpp.
+ // Scale the button size based on the font size.
+ float fontScale = style->fontSize() / defaultControlFontPixelSize;
+ int cancelButtonSize = lroundf(qMin(qMax(minCancelButtonSize, defaultCancelButtonSize * fontScale), maxCancelButtonSize));
+ style->setWidth(Length(cancelButtonSize, Fixed));
+ style->setHeight(Length(cancelButtonSize, Fixed));
+}
+
+// Function taken from RenderThemeChromium.cpp
+IntRect RenderThemeQt::convertToPaintingRect(RenderObject* inputRenderer, const RenderObject* partRenderer, IntRect partRect, const IntRect& localOffset) const
+{
+ // Compute an offset between the part renderer and the input renderer.
+ IntSize offsetFromInputRenderer = -(partRenderer->offsetFromAncestorContainer(inputRenderer));
+ // Move the rect into partRenderer's coords.
+ partRect.move(offsetFromInputRenderer);
+ // Account for the local drawing offset.
+ partRect.move(localOffset.x(), localOffset.y());
+
+ return partRect;
}
bool RenderThemeQt::paintSearchFieldCancelButton(RenderObject* o, const PaintInfo& pi,
const IntRect& r)
{
- notImplemented();
- return RenderTheme::paintSearchFieldCancelButton(o, pi, r);
+ // Logic copied from RenderThemeChromium.cpp.
+
+ // Get the renderer of <input> element.
+ Node* input = o->node()->shadowAncestorNode();
+ if (!input->renderer()->isBox())
+ return false;
+ RenderBox* inputRenderBox = toRenderBox(input->renderer());
+ IntRect inputContentBox = inputRenderBox->contentBoxRect();
+
+ // Make sure the scaled button stays square and will fit in its parent's box.
+ int cancelButtonSize = qMin(inputContentBox.width(), qMin(inputContentBox.height(), r.height()));
+ // Calculate cancel button's coordinates relative to the input element.
+ // Center the button vertically. Round up though, so if it has to be one pixel off-center, it will
+ // be one pixel closer to the bottom of the field. This tends to look better with the text.
+ IntRect cancelButtonRect(o->offsetFromAncestorContainer(inputRenderBox).width(),
+ inputContentBox.y() + (inputContentBox.height() - cancelButtonSize + 1) / 2,
+ cancelButtonSize, cancelButtonSize);
+ IntRect paintingRect = convertToPaintingRect(inputRenderBox, o, cancelButtonRect, r);
+ static Image* cancelImage = Image::loadPlatformResource("searchCancelButton").releaseRef();
+ static Image* cancelPressedImage = Image::loadPlatformResource("searchCancelButtonPressed").releaseRef();
+ pi.context->drawImage(isPressed(o) ? cancelPressedImage : cancelImage,
+ o->style()->colorSpace(), paintingRect);
+ return false;
}
void RenderThemeQt::adjustSearchFieldDecorationStyle(CSSStyleSelector* selector, RenderStyle* style,
@@ -1037,7 +1114,12 @@ ControlPart RenderThemeQt::initializeCommonQStyleOptions(QStyleOption& option, R
String RenderThemeQt::extraMediaControlsStyleSheet()
{
- return String(mediaControlsQtUserAgentStyleSheet, sizeof(mediaControlsQtUserAgentStyleSheet));
+ String result = String(mediaControlsQtUserAgentStyleSheet, sizeof(mediaControlsQtUserAgentStyleSheet));
+
+ if (m_page && m_page->chrome()->requiresFullscreenForVideoPlayback())
+ result += String(mediaControlsQtFullscreenUserAgentStyleSheet, sizeof(mediaControlsQtFullscreenUserAgentStyleSheet));
+
+ return result;
}
// Helper class to transform the painter's world matrix to the object's content area, scaled to 0,0,100,100
diff --git a/Source/WebCore/platform/qt/RenderThemeQt.h b/Source/WebCore/platform/qt/RenderThemeQt.h
index c28168a..6981641 100644
--- a/Source/WebCore/platform/qt/RenderThemeQt.h
+++ b/Source/WebCore/platform/qt/RenderThemeQt.h
@@ -81,8 +81,8 @@ public:
virtual double caretBlinkInterval() const;
-#if USE(QT_MOBILE_THEME)
virtual bool isControlStyled(const RenderStyle*, const BorderData&, const FillLayer&, const Color& backgroundColor) const;
+#if USE(QT_MOBILE_THEME)
virtual int popupInternalPaddingBottom(RenderStyle*) const;
#endif
@@ -180,6 +180,8 @@ private:
QStyle* fallbackStyle() const;
+ IntRect convertToPaintingRect(RenderObject* inputRenderer, const RenderObject* partRenderer, IntRect partRect, const IntRect& localOffset) const;
+
Page* m_page;
#ifdef Q_WS_MAC
diff --git a/Source/WebCore/platform/qt/WheelEventQt.cpp b/Source/WebCore/platform/qt/WheelEventQt.cpp
index 57a7ebc..aa61d91 100644
--- a/Source/WebCore/platform/qt/WheelEventQt.cpp
+++ b/Source/WebCore/platform/qt/WheelEventQt.cpp
@@ -48,10 +48,10 @@ void PlatformWheelEvent::applyDelta(int delta, Qt::Orientation orientation)
m_wheelTicksX = m_deltaX;
m_wheelTicksY = m_deltaY;
+#ifndef QT_NO_WHEELEVENT
// Use the same single scroll step as QTextEdit
// (in QTextEditPrivate::init [h,v]bar->setSingleStep)
static const float cDefaultQtScrollStep = 20.f;
-#ifndef QT_NO_WHEELEVENT
m_deltaX *= (fullTick) ? QApplication::wheelScrollLines() * cDefaultQtScrollStep : 1;
m_deltaY *= (fullTick) ? QApplication::wheelScrollLines() * cDefaultQtScrollStep : 1;
#endif
diff --git a/Source/WebCore/platform/win/DragDataWin.cpp b/Source/WebCore/platform/win/DragDataWin.cpp
index 56345e2..906119d 100644
--- a/Source/WebCore/platform/win/DragDataWin.cpp
+++ b/Source/WebCore/platform/win/DragDataWin.cpp
@@ -27,6 +27,7 @@
#include "DragData.h"
#include "ClipboardUtilitiesWin.h"
+#include "Frame.h"
#include "DocumentFragment.h"
#include "PlatformString.h"
#include "Markup.h"
@@ -37,7 +38,7 @@
namespace WebCore {
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return SUCCEEDED(m_platformDragData->QueryGetData(urlWFormat()))
|| SUCCEEDED(m_platformDragData->QueryGetData(urlFormat()))
@@ -46,7 +47,7 @@ bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
|| SUCCEEDED(m_platformDragData->QueryGetData(filenameFormat()))));
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
bool success;
return getURL(m_platformDragData, filenamePolicy, success, title);
@@ -89,7 +90,7 @@ bool DragData::containsPlainText() const
|| SUCCEEDED(m_platformDragData->QueryGetData(plainTextFormat()));
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
bool success;
return getPlainText(m_platformDragData, success);
@@ -107,13 +108,13 @@ bool DragData::canSmartReplace() const
bool DragData::containsCompatibleContent() const
{
- return containsPlainText() || containsURL()
+ return containsPlainText() || containsURL(0)
|| containsHTML(m_platformDragData)
|| containsFilenames(m_platformDragData)
|| containsColor();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range>, bool, bool&) const
{
/*
* Order is richest format first. On OSX this is:
@@ -126,11 +127,11 @@ PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
*/
if (containsFilenames(m_platformDragData))
- if (PassRefPtr<DocumentFragment> fragment = fragmentFromFilenames(doc, m_platformDragData))
+ if (PassRefPtr<DocumentFragment> fragment = fragmentFromFilenames(frame->document(), m_platformDragData))
return fragment;
if (containsHTML(m_platformDragData))
- if (PassRefPtr<DocumentFragment> fragment = fragmentFromHTML(doc, m_platformDragData))
+ if (PassRefPtr<DocumentFragment> fragment = fragmentFromHTML(frame->document(), m_platformDragData))
return fragment;
return 0;
diff --git a/Source/WebCore/platform/win/WebCoreTextRenderer.h b/Source/WebCore/platform/win/WebCoreTextRenderer.h
index 7efc1f3..6deef4a 100644
--- a/Source/WebCore/platform/win/WebCoreTextRenderer.h
+++ b/Source/WebCore/platform/win/WebCoreTextRenderer.h
@@ -23,6 +23,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef WebCoreTextRenderer_h
+#define WebCoreTextRenderer_h
+
#include <wtf/Forward.h>
namespace WebCore {
@@ -43,3 +46,5 @@ namespace WebCore {
bool WebCoreAlwaysUsesComplexTextCodePath();
} // namespace WebCore
+
+#endif // WebCoreTextRenderer_h
diff --git a/Source/WebCore/platform/wince/DragDataWinCE.cpp b/Source/WebCore/platform/wince/DragDataWinCE.cpp
index 5535ea9..8f531c7 100644
--- a/Source/WebCore/platform/wince/DragDataWinCE.cpp
+++ b/Source/WebCore/platform/wince/DragDataWinCE.cpp
@@ -23,15 +23,16 @@
#include "DocumentFragment.h"
#include "PlatformString.h"
+#include "Range.h"
namespace WebCore {
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return false;
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
return String();
}
@@ -50,7 +51,7 @@ bool DragData::containsPlainText() const
return false;
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
return String();
}
@@ -70,7 +71,7 @@ bool DragData::containsCompatibleContent() const
return false;
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document* doc) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame* frame, PassRefPtr<Range>, bool, bool&) const
{
return 0;
}
diff --git a/Source/WebCore/platform/wx/DragDataWx.cpp b/Source/WebCore/platform/wx/DragDataWx.cpp
index 35e3753..53b4219 100644
--- a/Source/WebCore/platform/wx/DragDataWx.cpp
+++ b/Source/WebCore/platform/wx/DragDataWx.cpp
@@ -55,7 +55,7 @@ bool DragData::containsPlainText() const
return false;
}
-String DragData::asPlainText() const
+String DragData::asPlainText(Frame*) const
{
return String();
}
@@ -70,18 +70,18 @@ bool DragData::containsCompatibleContent() const
return false;
}
-bool DragData::containsURL(FilenameConversionPolicy filenamePolicy) const
+bool DragData::containsURL(Frame*, FilenameConversionPolicy filenamePolicy) const
{
return false;
}
-String DragData::asURL(FilenameConversionPolicy filenamePolicy, String* title) const
+String DragData::asURL(Frame*, FilenameConversionPolicy filenamePolicy, String* title) const
{
return String();
}
-PassRefPtr<DocumentFragment> DragData::asFragment(Document*) const
+PassRefPtr<DocumentFragment> DragData::asFragment(Frame*, PassRefPtr<Range>, bool, bool&) const
{
return 0;
}
diff --git a/Source/WebCore/platform/wx/WidgetWx.cpp b/Source/WebCore/platform/wx/WidgetWx.cpp
index 9de4c3d..7591a5b 100644
--- a/Source/WebCore/platform/wx/WidgetWx.cpp
+++ b/Source/WebCore/platform/wx/WidgetWx.cpp
@@ -80,6 +80,10 @@ IntRect Widget::frameRect() const
void Widget::setFrameRect(const IntRect& rect)
{
+ // Take a reference to this Widget, because calling functions of the PlatformWidget can invoke arbitrary
+ // code, which can deref it.
+ RefPtr<Widget> protectedThis(this);
+
if (PlatformWidget widget = platformWidget())
widget->SetSize(rect);
diff --git a/Source/WebCore/plugins/qt/PluginViewQt.cpp b/Source/WebCore/plugins/qt/PluginViewQt.cpp
index fdbe552..6cf36e9 100644
--- a/Source/WebCore/plugins/qt/PluginViewQt.cpp
+++ b/Source/WebCore/plugins/qt/PluginViewQt.cpp
@@ -417,15 +417,14 @@ void setXKeyEventSpecificFields(XEvent* xEvent, KeyboardEvent* event)
xEvent->xkey.keycode = keyEvent->nativeScanCode();
// We may not have a nativeScanCode() if the key event is from DRT's eventsender. In that
- // case just populate the XEvent's keycode with the Qt platform-independent keycode. The only
+ // case fetch the XEvent's keycode from the event's text. The only
// place this keycode will be used is in webkit_test_plugin_handle_event().
+ // FIXME: Create Qt API so that we can set the appropriate keycode in DRT EventSender instead.
if (QWebPagePrivate::drtRun && !xEvent->xkey.keycode) {
QKeyEvent* qKeyEvent = keyEvent->qtEvent();
ASSERT(qKeyEvent);
- if (!qKeyEvent->text().isEmpty())
- xEvent->xkey.keycode = int(qKeyEvent->text().at(0).unicode() + qKeyEvent->modifiers());
- else if (qKeyEvent->key() && (qKeyEvent->key() != Qt::Key_unknown))
- xEvent->xkey.keycode = int(qKeyEvent->key() + qKeyEvent->modifiers());
+ QString keyText = qKeyEvent->text().left(1);
+ xEvent->xkey.keycode = XKeysymToKeycode(QX11Info::display(), XStringToKeysym(keyText.toUtf8().constData()));
}
xEvent->xkey.same_screen = true;
diff --git a/Source/WebCore/plugins/symbian/PluginPackageSymbian.cpp b/Source/WebCore/plugins/symbian/PluginPackageSymbian.cpp
index 7fca625..a14ac20 100644
--- a/Source/WebCore/plugins/symbian/PluginPackageSymbian.cpp
+++ b/Source/WebCore/plugins/symbian/PluginPackageSymbian.cpp
@@ -55,6 +55,7 @@ bool PluginPackage::fetchInfo()
mime[1].split(UChar(','), false, exts); // <ext1,ext2,ext3,...>
m_mimeToExtensions.add(mime[0], exts); // <MIME>,<ext1,ext2,ext3>
+ determineQuirks(mime[0]);
if (mime.size() > 2)
m_mimeToDescriptions.add(mime[0], mime[2]); // <MIME>,<Description>
}
@@ -63,6 +64,17 @@ bool PluginPackage::fetchInfo()
return true;
}
+void PluginPackage::determineQuirks(const String& mimeType)
+{
+ if (mimeType == "application/x-shockwave-flash") {
+ PlatformModuleVersion flashTenVersion(0x000a0000);
+ if (compareFileVersion(flashTenVersion) >= 0) {
+ // Flash 10 doesn't like having a 0 window handle.
+ m_quirks.add(PluginQuirkDontSetNullWindowHandleOnDestroy);
+ }
+ }
+}
+
bool PluginPackage::load()
{
if (m_isLoaded) {
diff --git a/Source/WebCore/plugins/symbian/PluginViewSymbian.cpp b/Source/WebCore/plugins/symbian/PluginViewSymbian.cpp
index b8a72b1..f3eb033 100644
--- a/Source/WebCore/plugins/symbian/PluginViewSymbian.cpp
+++ b/Source/WebCore/plugins/symbian/PluginViewSymbian.cpp
@@ -53,6 +53,8 @@
#include "npinterface.h"
#include "npruntime_impl.h"
#include "qgraphicswebview.h"
+#include "qwebframe.h"
+#include "qwebframe_p.h"
#include "runtime_root.h"
#include <QGraphicsProxyWidget>
#include <QKeyEvent>
@@ -63,6 +65,13 @@
#include <runtime/JSLock.h>
#include <runtime/JSValue.h>
+typedef void (*_qtwebkit_page_plugin_created)(QWebFrame*, void*, void*); // frame, plugin instance, plugin functions
+static _qtwebkit_page_plugin_created qtwebkit_page_plugin_created = 0;
+QWEBKIT_EXPORT void qtwebkit_setPluginCreatedCallback(_qtwebkit_page_plugin_created cb)
+{
+ qtwebkit_page_plugin_created = cb;
+}
+
using JSC::ExecState;
using JSC::Interpreter;
using JSC::JSLock;
@@ -278,8 +287,8 @@ void PluginView::setNPWindowIfNeeded()
} else {
// always call this method before painting.
- m_npWindow.x = 0;
- m_npWindow.y = 0;
+ m_npWindow.x = m_windowRect.x();
+ m_npWindow.y = m_windowRect.y();
m_npWindow.clipRect.left = 0;
m_npWindow.clipRect.top = 0;
@@ -415,7 +424,10 @@ bool PluginView::platformStart()
}
updatePluginWidget();
setNPWindowIfNeeded();
-
+
+ if (qtwebkit_page_plugin_created)
+ qtwebkit_page_plugin_created(QWebFramePrivate::kit(m_parentFrame.get()), m_instance, (void*)(m_plugin->pluginFuncs()));
+
return true;
}
diff --git a/Source/WebCore/rendering/CounterNode.cpp b/Source/WebCore/rendering/CounterNode.cpp
index ac83d5a..fe2148a 100644
--- a/Source/WebCore/rendering/CounterNode.cpp
+++ b/Source/WebCore/rendering/CounterNode.cpp
@@ -247,9 +247,9 @@ static void showTreeAndMark(const CounterNode* node)
root = root->parent();
for (const CounterNode* current = root; current; current = current->nextInPreOrder()) {
- fwrite((current == node) ? "*" : " ", 1, 1, stderr);
+ fprintf(stderr, "%c", (current == node) ? '*' : ' ');
for (const CounterNode* parent = current; parent && parent != root; parent = parent->parent())
- fwrite(" ", 1, 2, stderr);
+ fprintf(stderr, " ");
fprintf(stderr, "%p %s: %d %d P:%p PS:%p NS:%p R:%p\n",
current, current->actsAsReset() ? "reset____" : "increment", current->value(),
current->countInParent(), current->parent(), current->previousSibling(),
diff --git a/Source/WebCore/rendering/EllipsisBox.cpp b/Source/WebCore/rendering/EllipsisBox.cpp
index f9c4f03..39fa205 100644
--- a/Source/WebCore/rendering/EllipsisBox.cpp
+++ b/Source/WebCore/rendering/EllipsisBox.cpp
@@ -23,6 +23,7 @@
#include "Document.h"
#include "GraphicsContext.h"
#include "HitTestResult.h"
+#include "PaintInfo.h"
#include "RootInlineBox.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/InlineBox.cpp b/Source/WebCore/rendering/InlineBox.cpp
index 145096b..bbf5a748 100644
--- a/Source/WebCore/rendering/InlineBox.cpp
+++ b/Source/WebCore/rendering/InlineBox.cpp
@@ -22,6 +22,7 @@
#include "HitTestResult.h"
#include "InlineFlowBox.h"
+#include "PaintInfo.h"
#include "RenderArena.h"
#include "RenderBlock.h"
#include "RootInlineBox.h"
diff --git a/Source/WebCore/rendering/InlineFlowBox.h b/Source/WebCore/rendering/InlineFlowBox.h
index 63263fd..232c3b7 100644
--- a/Source/WebCore/rendering/InlineFlowBox.h
+++ b/Source/WebCore/rendering/InlineFlowBox.h
@@ -23,6 +23,7 @@
#include "InlineBox.h"
#include "RenderOverflow.h"
+#include "ShadowData.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/InlineTextBox.cpp b/Source/WebCore/rendering/InlineTextBox.cpp
index aa00b7f..ae5be0f 100644
--- a/Source/WebCore/rendering/InlineTextBox.cpp
+++ b/Source/WebCore/rendering/InlineTextBox.cpp
@@ -33,6 +33,7 @@
#include "GraphicsContext.h"
#include "HitTestResult.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderArena.h"
#include "RenderBlock.h"
#include "RenderRubyRun.h"
diff --git a/Source/WebCore/rendering/MediaControlElements.cpp b/Source/WebCore/rendering/MediaControlElements.cpp
index accbf4f..1f66719 100644
--- a/Source/WebCore/rendering/MediaControlElements.cpp
+++ b/Source/WebCore/rendering/MediaControlElements.cpp
@@ -449,6 +449,12 @@ void MediaControlInputElement::attach()
parentNode()->renderer()->addChild(renderer, sibling ? sibling->renderer() : 0);
}
ContainerNode::attach();
+ // FIXME: Currently, MeidaControlInput circumvents the normal attachment
+ // and style recalc cycle and thus we need to add extra logic to be aware of
+ // the shadow DOM. Remove this once all media controls are transitioned to use the regular
+ // style calculation.
+ if (Node* shadowNode = shadowRoot())
+ shadowNode->attach();
}
void MediaControlInputElement::updateStyle()
@@ -467,6 +473,13 @@ void MediaControlInputElement::updateStyle()
attach();
else if (renderer())
renderer()->setStyle(style.get());
+
+ // FIXME: Currently, MeidaControlInput circumvents the normal attachment
+ // and style recalc cycle and thus we need to add extra logic to be aware of
+ // the shadow DOM. Remove this once all media controls are transitioned to use
+ // the new shadow DOM.
+ if (Node* shadowNode = shadowRoot())
+ shadowNode->recalcStyle(Node::Force);
}
bool MediaControlInputElement::hitTest(const IntPoint& absPoint)
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index e0fe6a0..794bafc 100644
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -35,6 +35,7 @@
#include "HTMLNames.h"
#include "HitTestResult.h"
#include "InlineTextBox.h"
+#include "PaintInfo.h"
#include "RenderFlexibleBox.h"
#include "RenderImage.h"
#include "RenderInline.h"
@@ -116,6 +117,7 @@ RenderBlock::RenderBlock(Node* node)
, m_positionedObjects(0)
, m_rareData(0)
, m_lineHeight(-1)
+ , m_beingDestroyed(false)
{
setChildrenInline(true);
}
@@ -150,6 +152,9 @@ RenderBlock::~RenderBlock()
void RenderBlock::destroy()
{
+ // Mark as being destroyed to avoid trouble with merges in removeChild().
+ m_beingDestroyed = true;
+
// Make sure to destroy anonymous children first while they are still connected to the rest of the tree, so that they will
// properly dirty line boxes that they are removed from. Effects that do :before/:after only on hover could crash otherwise.
children()->destroyLeftoverChildren();
@@ -192,7 +197,7 @@ void RenderBlock::destroy()
void RenderBlock::styleWillChange(StyleDifference diff, const RenderStyle* newStyle)
{
- setReplaced(newStyle->isDisplayReplacedType());
+ setReplaced(newStyle->isDisplayInlineType());
if (style() && parent() && diff == StyleDifferenceLayout && style()->position() != newStyle->position()) {
if (newStyle->position() == StaticPosition)
@@ -930,8 +935,8 @@ static bool canMergeContiguousAnonymousBlocks(RenderObject* oldChild, RenderObje
if (oldChild->documentBeingDestroyed() || oldChild->isInline() || oldChild->virtualContinuation())
return false;
- if ((prev && (!prev->isAnonymousBlock() || toRenderBlock(prev)->continuation()))
- || (next && (!next->isAnonymousBlock() || toRenderBlock(next)->continuation())))
+ if ((prev && (!prev->isAnonymousBlock() || toRenderBlock(prev)->continuation() || toRenderBlock(prev)->beingDestroyed()))
+ || (next && (!next->isAnonymousBlock() || toRenderBlock(next)->continuation() || toRenderBlock(next)->beingDestroyed())))
return false;
// FIXME: This check isn't required when inline run-ins can't be split into continuations.
@@ -991,27 +996,12 @@ void RenderBlock::removeChild(RenderObject* oldChild)
} else {
// Take all the children out of the |next| block and put them in
// the |prev| block.
- nextBlock->moveAllChildrenTo(prevBlock, nextBlock->hasLayer() || prevBlock->hasLayer());
-
- // FIXME: When we destroy nextBlock, it might happen that nextBlock's next sibling block and
- // oldChild can get merged. Since oldChild is getting removed, we do not want to move
- // nextBlock's next sibling block's children into it. By setting a fake continuation,
- // we prevent this from happening. This is not the best approach, we should replace this
- // something better later to automatically detect that oldChild is getting removed.
- RenderBlock* oldChildBlock = 0;
- if (oldChild->isAnonymous() && oldChild->isRenderBlock() && !toRenderBlock(oldChild)->continuation()) {
- oldChildBlock = toRenderBlock(oldChild);
- oldChildBlock->setContinuation(oldChildBlock);
- }
+ nextBlock->moveAllChildrenTo(prevBlock, nextBlock->hasLayer() || prevBlock->hasLayer());
// Delete the now-empty block's lines and nuke it.
nextBlock->deleteLineBoxTree();
nextBlock->destroy();
next = 0;
-
- // FIXME: Revert the continuation change done above.
- if (oldChildBlock)
- oldChildBlock->setContinuation(0);
}
}
diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h
index bd8be2c..9529bd6 100644
--- a/Source/WebCore/rendering/RenderBlock.h
+++ b/Source/WebCore/rendering/RenderBlock.h
@@ -38,6 +38,7 @@ class LayoutStateMaintainer;
class RenderInline;
struct BidiRun;
+struct PaintInfo;
template <class Iterator, class Run> class BidiResolver;
template <class Iterator> struct MidpointState;
@@ -55,6 +56,7 @@ public:
RenderObjectChildList* children() { return &m_children; }
virtual void destroy();
+ bool beingDestroyed() const { return m_beingDestroyed; }
// These two functions are overridden for inline-block.
virtual int lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const;
@@ -712,7 +714,8 @@ private:
RenderObjectChildList m_children;
RenderLineBoxList m_lineBoxes; // All of the root line boxes created for this block flow. For example, <div>Hello<br>world.</div> will have two total lines for the <div>.
- mutable int m_lineHeight;
+ mutable int m_lineHeight : 31;
+ bool m_beingDestroyed : 1;
// RenderRubyBase objects need to be able to split and merge, moving their children around
// (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline).
diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp
index 355d385..93228e1 100644
--- a/Source/WebCore/rendering/RenderBox.cpp
+++ b/Source/WebCore/rendering/RenderBox.cpp
@@ -39,9 +39,13 @@
#include "FloatQuad.h"
#include "Frame.h"
#include "Page.h"
+<<<<<<< HEAD
#if PLATFORM(ANDROID)
#include "PlatformBridge.h"
#endif
+=======
+#include "PaintInfo.h"
+>>>>>>> WebKit.org @ r75993
#include "RenderArena.h"
#include "RenderFlexibleBox.h"
#include "RenderInline.h"
@@ -227,26 +231,30 @@ void RenderBox::removeFloatingOrPositionedChildFromBlockLists()
return;
if (isFloating()) {
- RenderBlock* outermostBlock = containingBlock();
- for (RenderBlock* p = outermostBlock; p && !p->isRenderView(); p = p->containingBlock()) {
- if (p->containsFloat(this))
- outermostBlock = p;
+ RenderBlock* parentBlock = 0;
+ for (RenderObject* curr = parent(); curr && !curr->isRenderView(); curr = curr->parent()) {
+ if (curr->isRenderBlock()) {
+ RenderBlock* currBlock = toRenderBlock(curr);
+ if (currBlock->containsFloat(this))
+ parentBlock = currBlock;
+ else
+ break;
+ }
}
- if (outermostBlock) {
- RenderObject* parent = outermostBlock->parent();
+ if (parentBlock) {
+ RenderObject* parent = parentBlock->parent();
if (parent && parent->isFlexibleBox())
- outermostBlock = toRenderBlock(parent);
+ parentBlock = toRenderBlock(parent);
- outermostBlock->markAllDescendantsWithFloatsForLayout(this, false);
+ parentBlock->markAllDescendantsWithFloatsForLayout(this, false);
}
}
if (isPositioned()) {
- RenderObject* p;
- for (p = parent(); p; p = p->parent()) {
- if (p->isRenderBlock())
- toRenderBlock(p)->removePositionedObject(this);
+ for (RenderObject* curr = parent(); curr; curr = curr->parent()) {
+ if (curr->isRenderBlock())
+ toRenderBlock(curr)->removePositionedObject(this);
}
}
}
diff --git a/Source/WebCore/rendering/RenderBox.h b/Source/WebCore/rendering/RenderBox.h
index 53a4cfe..0a7b175 100644
--- a/Source/WebCore/rendering/RenderBox.h
+++ b/Source/WebCore/rendering/RenderBox.h
@@ -29,6 +29,8 @@
namespace WebCore {
+struct PaintInfo;
+
enum LogicalWidthType { LogicalWidth, MinLogicalWidth, MaxLogicalWidth };
class RenderBox : public RenderBoxModelObject {
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.h b/Source/WebCore/rendering/RenderBoxModelObject.h
index 98e386b..8f9f465 100644
--- a/Source/WebCore/rendering/RenderBoxModelObject.h
+++ b/Source/WebCore/rendering/RenderBoxModelObject.h
@@ -25,6 +25,7 @@
#define RenderBoxModelObject_h
#include "RenderObject.h"
+#include "ShadowData.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderButton.cpp b/Source/WebCore/rendering/RenderButton.cpp
index 2642f23..4bf7c19 100644
--- a/Source/WebCore/rendering/RenderButton.cpp
+++ b/Source/WebCore/rendering/RenderButton.cpp
@@ -92,7 +92,6 @@ void RenderButton::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
m_buttonText->setStyle(style());
if (m_inner) // RenderBlock handled updating the anonymous block's style.
setupInnerStyle(m_inner->style());
- setReplaced(isInline());
if (!m_default && theme()->isDefault(this)) {
if (!m_timer)
diff --git a/Source/WebCore/rendering/RenderEmbeddedObject.cpp b/Source/WebCore/rendering/RenderEmbeddedObject.cpp
index fa31ddf..ac72fe1 100644
--- a/Source/WebCore/rendering/RenderEmbeddedObject.cpp
+++ b/Source/WebCore/rendering/RenderEmbeddedObject.cpp
@@ -41,6 +41,7 @@
#include "MIMETypeRegistry.h"
#include "MouseEvent.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "Path.h"
#include "PluginViewBase.h"
#include "RenderTheme.h"
diff --git a/Source/WebCore/rendering/RenderFieldset.cpp b/Source/WebCore/rendering/RenderFieldset.cpp
index c83396c..8c65314 100644
--- a/Source/WebCore/rendering/RenderFieldset.cpp
+++ b/Source/WebCore/rendering/RenderFieldset.cpp
@@ -25,8 +25,9 @@
#include "RenderFieldset.h"
#include "CSSPropertyNames.h"
-#include "HTMLNames.h"
#include "GraphicsContext.h"
+#include "HTMLNames.h"
+#include "PaintInfo.h"
#if ENABLE(WML)
#include "WMLNames.h"
@@ -208,16 +209,4 @@ void RenderFieldset::paintMask(PaintInfo& paintInfo, int tx, int ty)
paintMaskImages(paintInfo, tx, ty, w, h);
}
-void RenderFieldset::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
- RenderBlock::styleDidChange(diff, oldStyle);
-
- // WinIE renders fieldsets with display:inline like they're inline-blocks. For us,
- // an inline-block is just a block element with replaced set to true and inline set
- // to true. Ensure that if we ended up being inline that we set our replaced flag
- // so that we're treated like an inline-block.
- if (isInline())
- setReplaced(true);
-}
-
} // namespace WebCore
diff --git a/Source/WebCore/rendering/RenderFieldset.h b/Source/WebCore/rendering/RenderFieldset.h
index b340794..267f352 100644
--- a/Source/WebCore/rendering/RenderFieldset.h
+++ b/Source/WebCore/rendering/RenderFieldset.h
@@ -44,8 +44,6 @@ private:
virtual bool avoidsFloats() const { return true; }
virtual bool stretchesToMinIntrinsicLogicalWidth() const { return true; }
- virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
-
virtual void paintBoxDecorations(PaintInfo&, int tx, int ty);
virtual void paintMask(PaintInfo&, int tx, int ty);
};
diff --git a/Source/WebCore/rendering/RenderFileUploadControl.cpp b/Source/WebCore/rendering/RenderFileUploadControl.cpp
index 3c10f43..3e4d216 100644
--- a/Source/WebCore/rendering/RenderFileUploadControl.cpp
+++ b/Source/WebCore/rendering/RenderFileUploadControl.cpp
@@ -32,6 +32,7 @@
#include "Icon.h"
#include "LocalizedStrings.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderButton.h"
#include "RenderText.h"
#include "RenderTheme.h"
@@ -74,8 +75,6 @@ void RenderFileUploadControl::styleDidChange(StyleDifference diff, const RenderS
RenderBlock::styleDidChange(diff, oldStyle);
if (m_button)
m_button->renderer()->setStyle(createButtonStyle(style()));
-
- setReplaced(isInline());
}
void RenderFileUploadControl::valueChanged()
diff --git a/Source/WebCore/rendering/RenderFrameSet.cpp b/Source/WebCore/rendering/RenderFrameSet.cpp
index 600d65e..06b2a7a 100644
--- a/Source/WebCore/rendering/RenderFrameSet.cpp
+++ b/Source/WebCore/rendering/RenderFrameSet.cpp
@@ -34,6 +34,7 @@
#include "HitTestRequest.h"
#include "HitTestResult.h"
#include "MouseEvent.h"
+#include "PaintInfo.h"
#include "RenderFrame.h"
#include "RenderView.h"
#include "Settings.h"
diff --git a/Source/WebCore/rendering/RenderFullScreen.cpp b/Source/WebCore/rendering/RenderFullScreen.cpp
index 7cd452f..cc53a6e 100644
--- a/Source/WebCore/rendering/RenderFullScreen.cpp
+++ b/Source/WebCore/rendering/RenderFullScreen.cpp
@@ -35,7 +35,7 @@ using namespace WebCore;
void RenderFullScreen::setAnimating(bool animating)
{
m_isAnimating = animating;
-#if ENABLE(ACCELERATED_COMPOSITING)
+#if USE(ACCELERATED_COMPOSITING)
if (layer())
layer()->contentChanged(RenderLayer::FullScreenChanged);
#endif
diff --git a/Source/WebCore/rendering/RenderFullScreen.h b/Source/WebCore/rendering/RenderFullScreen.h
index 52d4ee2..30f95c1 100644
--- a/Source/WebCore/rendering/RenderFullScreen.h
+++ b/Source/WebCore/rendering/RenderFullScreen.h
@@ -33,7 +33,7 @@ namespace WebCore {
class RenderFullScreen : public RenderFlexibleBox {
public:
- RenderFullScreen(Node* node) : RenderFlexibleBox(node) { setReplaced(false); setIsAnonymous(false); }
+ RenderFullScreen(Node* node) : RenderFlexibleBox(node) { setReplaced(false); }
virtual bool isRenderFullScreen() const { return true; }
virtual const char* renderName() const { return "RenderFullScreen"; }
diff --git a/Source/WebCore/rendering/RenderHTMLCanvas.cpp b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
index 68bb536..de2a2c1 100644
--- a/Source/WebCore/rendering/RenderHTMLCanvas.cpp
+++ b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
@@ -28,11 +28,12 @@
#include "CanvasRenderingContext.h"
#include "Document.h"
+#include "FrameView.h"
#include "GraphicsContext.h"
#include "HTMLCanvasElement.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
#include "RenderView.h"
-#include "FrameView.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderImageResource.cpp b/Source/WebCore/rendering/RenderImageResource.cpp
index ea3ed2f..a943c3d 100644
--- a/Source/WebCore/rendering/RenderImageResource.cpp
+++ b/Source/WebCore/rendering/RenderImageResource.cpp
@@ -28,6 +28,7 @@
#include "config.h"
#include "RenderImageResource.h"
+#include "Image.h"
#include "RenderImageResourceStyleImage.h"
#include "RenderObject.h"
diff --git a/Source/WebCore/rendering/RenderInputSpeech.cpp b/Source/WebCore/rendering/RenderInputSpeech.cpp
index 5472025..8a1e73f 100644
--- a/Source/WebCore/rendering/RenderInputSpeech.cpp
+++ b/Source/WebCore/rendering/RenderInputSpeech.cpp
@@ -35,6 +35,7 @@
#include "GraphicsContext.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
#include "RenderBox.h"
#include "TextControlInnerElements.h"
diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp
index 5623662..3613d95 100644
--- a/Source/WebCore/rendering/RenderLayer.cpp
+++ b/Source/WebCore/rendering/RenderLayer.cpp
@@ -51,7 +51,7 @@
#include "Chrome.h"
#include "Document.h"
#include "EventHandler.h"
-#include "EventNames.h"
+#include "EventQueue.h"
#include "FloatPoint3D.h"
#include "FloatRect.h"
#include "FocusController.h"
@@ -1413,10 +1413,7 @@ void RenderLayer::scrollToOffset(int x, int y, bool updateScrollbars, bool repai
}
// Schedule the scroll DOM event.
- if (view) {
- if (FrameView* frameView = view->frameView())
- frameView->scheduleEvent(Event::create(eventNames().scrollEvent, false, false), renderer()->node());
- }
+ renderer()->node()->document()->eventQueue()->enqueueScrollEvent(renderer()->node(), EventQueue::ScrollEventElementTarget);
}
void RenderLayer::scrollRectToVisible(const IntRect& rect, bool scrollToAnchor, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
@@ -2744,7 +2741,7 @@ bool RenderLayer::hitTest(const HitTestRequest& request, HitTestResult& result)
{
renderer()->document()->updateLayout();
- IntRect hitTestArea = result.rectForPoint(result.point());
+ IntRect hitTestArea = renderer()->view()->documentRect();
if (!request.ignoreClipping())
hitTestArea.intersect(frameVisibleRect(renderer()));
@@ -3575,6 +3572,16 @@ bool RenderLayer::hasCompositedMask() const
}
#endif
+bool RenderLayer::paintsWithTransform(PaintBehavior paintBehavior) const
+{
+#if USE(ACCELERATED_COMPOSITING)
+ bool paintsToWindow = !isComposited() || backing()->paintingGoesToWindow();
+#else
+ bool paintsToWindow = true;
+#endif
+ return transform() && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || paintsToWindow);
+}
+
void RenderLayer::setParent(RenderLayer* parent)
{
if (parent == m_parent)
@@ -4035,6 +4042,14 @@ void RenderLayer::updateReflectionStyle()
m_reflection->setStyle(newStyle.release());
}
+void RenderLayer::updateContentsScale(float scale)
+{
+#if USE(ACCELERATED_COMPOSITING)
+ if (m_backing)
+ m_backing->updateContentsScale(scale);
+#endif
+}
+
} // namespace WebCore
#ifndef NDEBUG
diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h
index cc3b21c..8245c2f 100644
--- a/Source/WebCore/rendering/RenderLayer.h
+++ b/Source/WebCore/rendering/RenderLayer.h
@@ -44,6 +44,7 @@
#ifndef RenderLayer_h
#define RenderLayer_h
+#include "PaintInfo.h"
#include "RenderBox.h"
#include "ScrollBehavior.h"
#include "ScrollbarClient.h"
@@ -488,10 +489,7 @@ public:
return isTransparent() && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || !isComposited());
}
- bool paintsWithTransform(PaintBehavior paintBehavior) const
- {
- return transform() && ((paintBehavior & PaintBehaviorFlattenCompositingLayers) || !isComposited());
- }
+ bool paintsWithTransform(PaintBehavior) const;
private:
// The normal operator new is disallowed on all render objects.
@@ -621,6 +619,8 @@ private:
void setMustOverlapCompositedLayers(bool b) { m_mustOverlapCompositedLayers = b; }
#endif
+ void updateContentsScale(float);
+
private:
friend class RenderLayerBacking;
friend class RenderLayerCompositor;
diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp
index c430bae..8001c42 100644
--- a/Source/WebCore/rendering/RenderLayerBacking.cpp
+++ b/Source/WebCore/rendering/RenderLayerBacking.cpp
@@ -105,6 +105,12 @@ void RenderLayerBacking::createGraphicsLayer()
m_graphicsLayer->setName(nameForLayer());
#endif // NDEBUG
+#if USE(ACCELERATED_COMPOSITING)
+ ASSERT(renderer() && renderer()->document() && renderer()->document()->frame());
+ if (Frame* frame = renderer()->document()->frame())
+ m_graphicsLayer->setContentsScale(frame->pageScaleFactor());
+#endif
+
updateLayerOpacity(renderer()->style());
updateLayerTransform(renderer()->style());
}
@@ -543,6 +549,8 @@ bool RenderLayerBacking::updateForegroundLayer(bool needsForegroundLayer)
#endif
m_foregroundLayer->setDrawsContent(true);
m_foregroundLayer->setPaintingPhase(GraphicsLayerPaintForeground);
+ if (Frame* frame = renderer()->document()->frame())
+ m_foregroundLayer->setContentsScale(frame->pageScaleFactor());
layerChanged = true;
}
} else if (m_foregroundLayer) {
@@ -568,6 +576,8 @@ bool RenderLayerBacking::updateMaskLayer(bool needsMaskLayer)
#endif
m_maskLayer->setDrawsContent(true);
m_maskLayer->setPaintingPhase(GraphicsLayerPaintMask);
+ if (Frame* frame = renderer()->document()->frame())
+ m_maskLayer->setContentsScale(frame->pageScaleFactor());
layerChanged = true;
}
} else if (m_maskLayer) {
@@ -933,7 +943,7 @@ FloatPoint RenderLayerBacking::contentsToGraphicsLayerCoordinates(const Graphics
bool RenderLayerBacking::paintingGoesToWindow() const
{
if (m_owningLayer->isRootLayer())
- return !m_owningLayer->hasTransform() && (compositor()->rootLayerAttachment() != RenderLayerCompositor::RootLayerAttachedViaEnclosingIframe);
+ return compositor()->rootLayerAttachment() != RenderLayerCompositor::RootLayerAttachedViaEnclosingIframe;
return false;
}
@@ -1275,7 +1285,7 @@ void RenderLayerBacking::notifyAnimationStarted(const GraphicsLayer*, double tim
void RenderLayerBacking::notifySyncRequired(const GraphicsLayer*)
{
if (!renderer()->documentBeingDestroyed())
- compositor()->scheduleSync();
+ compositor()->scheduleLayerFlush();
}
// This is used for the 'freeze' API, for testing only.
@@ -1361,6 +1371,18 @@ CompositingLayerType RenderLayerBacking::compositingLayerType() const
return ContainerCompositingLayer;
}
+void RenderLayerBacking::updateContentsScale(float scale)
+{
+ if (m_graphicsLayer)
+ m_graphicsLayer->setContentsScale(scale);
+
+ if (m_foregroundLayer)
+ m_foregroundLayer->setContentsScale(scale);
+
+ if (m_maskLayer)
+ m_maskLayer->setContentsScale(scale);
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/rendering/RenderLayerBacking.h b/Source/WebCore/rendering/RenderLayerBacking.h
index c5489f3..5c6ed12 100644
--- a/Source/WebCore/rendering/RenderLayerBacking.h
+++ b/Source/WebCore/rendering/RenderLayerBacking.h
@@ -139,6 +139,8 @@ public:
// For informative purposes only.
CompositingLayerType compositingLayerType() const;
+ void updateContentsScale(float);
+
private:
void createGraphicsLayer();
void destroyGraphicsLayer();
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp
index 960aa37..15bb8ec 100644
--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp
@@ -176,7 +176,7 @@ void RenderLayerCompositor::setCompositingLayersNeedRebuild(bool needRebuild)
m_compositingLayersNeedRebuild = needRebuild;
}
-void RenderLayerCompositor::scheduleSync()
+void RenderLayerCompositor::scheduleLayerFlush()
{
Frame* frame = m_renderView->frameView()->frame();
Page* page = frame ? frame->page() : 0;
@@ -186,6 +186,16 @@ void RenderLayerCompositor::scheduleSync()
page->chrome()->client()->scheduleCompositingLayerSync();
}
+void RenderLayerCompositor::flushPendingLayerChanges()
+{
+ // FIXME: FrameView::syncCompositingStateRecursive() calls this for each
+ // frame, so when compositing layers are connected between frames, we'll
+ // end up syncing subframe's layers multiple times.
+ // https://bugs.webkit.org/show_bug.cgi?id=52489
+ if (GraphicsLayer* rootLayer = rootPlatformLayer())
+ rootLayer->syncCompositingState();
+}
+
void RenderLayerCompositor::scheduleCompositingLayerUpdate()
{
if (!m_updateCompositingLayersTimer.isActive())
@@ -1171,7 +1181,12 @@ bool RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame() const
return true;
// On Mac, only propagate compositing if the iframe is overlapped in the parent
- // document, or the parent is already compositing.
+ // document, or the parent is already compositing, or the main frame is scaled.
+ Frame* frame = m_renderView->frameView()->frame();
+ Page* page = frame ? frame->page() : 0;
+ if (page->mainFrame()->pageScaleFactor() != 1)
+ return true;
+
RenderIFrame* iframeRenderer = toRenderIFrame(renderer);
if (iframeRenderer->widget()) {
ASSERT(iframeRenderer->widget()->isFrameView());
@@ -1663,6 +1678,34 @@ bool RenderLayerCompositor::layerHas3DContent(const RenderLayer* layer) const
return false;
}
+void RenderLayerCompositor::updateContentsScale(float scale, RenderLayer* layer)
+{
+ if (!layer)
+ layer = rootRenderLayer();
+
+ layer->updateContentsScale(scale);
+
+ if (layer->isStackingContext()) {
+ if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) {
+ size_t listSize = negZOrderList->size();
+ for (size_t i = 0; i < listSize; ++i)
+ updateContentsScale(scale, negZOrderList->at(i));
+ }
+
+ if (Vector<RenderLayer*>* posZOrderList = layer->posZOrderList()) {
+ size_t listSize = posZOrderList->size();
+ for (size_t i = 0; i < listSize; ++i)
+ updateContentsScale(scale, posZOrderList->at(i));
+ }
+ }
+
+ if (Vector<RenderLayer*>* normalFlowList = layer->normalFlowList()) {
+ size_t listSize = normalFlowList->size();
+ for (size_t i = 0; i < listSize; ++i)
+ updateContentsScale(scale, normalFlowList->at(i));
+ }
+}
+
} // namespace WebCore
#endif // USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.h b/Source/WebCore/rendering/RenderLayerCompositor.h
index 53a0f9a..24e182c 100644
--- a/Source/WebCore/rendering/RenderLayerCompositor.h
+++ b/Source/WebCore/rendering/RenderLayerCompositor.h
@@ -84,7 +84,10 @@ public:
void setCompositingConsultsOverlap(bool b) { m_compositingConsultsOverlap = b; }
bool compositingConsultsOverlap() const { return m_compositingConsultsOverlap; }
- void scheduleSync();
+ // GraphicsLayers buffer state, which gets pushed to the underlying platform layers
+ // at specific times.
+ void scheduleLayerFlush();
+ void flushPendingLayerChanges();
// Rebuild the tree of compositing layers
void updateCompositingLayers(CompositingUpdateType = CompositingUpdateAfterLayoutOrStyleChange, RenderLayer* updateRoot = 0);
@@ -174,10 +177,12 @@ public:
bool compositorShowDebugBorders() const { return m_showDebugBorders; }
bool compositorShowRepaintCounter() const { return m_showRepaintCounter; }
+ void updateContentsScale(float, RenderLayer* = 0);
+
private:
// GraphicsLayerClient Implementation
virtual void notifyAnimationStarted(const GraphicsLayer*, double) { }
- virtual void notifySyncRequired(const GraphicsLayer*) { scheduleSync(); }
+ virtual void notifySyncRequired(const GraphicsLayer*) { scheduleLayerFlush(); }
virtual void paintContents(const GraphicsLayer*, GraphicsContext&, GraphicsLayerPaintingPhase, const IntRect&) { }
// These calls return false always. They are saying that the layers associated with this client
diff --git a/Source/WebCore/rendering/RenderLineBoxList.cpp b/Source/WebCore/rendering/RenderLineBoxList.cpp
index 85d7f18..1488ecc 100644
--- a/Source/WebCore/rendering/RenderLineBoxList.cpp
+++ b/Source/WebCore/rendering/RenderLineBoxList.cpp
@@ -31,6 +31,7 @@
#include "HitTestResult.h"
#include "InlineTextBox.h"
+#include "PaintInfo.h"
#include "RenderArena.h"
#include "RenderInline.h"
#include "RenderView.h"
diff --git a/Source/WebCore/rendering/RenderListBox.cpp b/Source/WebCore/rendering/RenderListBox.cpp
index ed7f8ee..e6ce340 100644
--- a/Source/WebCore/rendering/RenderListBox.cpp
+++ b/Source/WebCore/rendering/RenderListBox.cpp
@@ -36,7 +36,7 @@
#include "CSSStyleSelector.h"
#include "Document.h"
#include "EventHandler.h"
-#include "EventNames.h"
+#include "EventQueue.h"
#include "FocusController.h"
#include "Frame.h"
#include "FrameView.h"
@@ -46,6 +46,7 @@
#include "OptionGroupElement.h"
#include "OptionElement.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderScrollbar.h"
#include "RenderTheme.h"
#include "RenderView.h"
@@ -87,12 +88,6 @@ RenderListBox::~RenderListBox()
setHasVerticalScrollbar(false);
}
-void RenderListBox::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
- RenderBlock::styleDidChange(diff, oldStyle);
- setReplaced(isInline());
-}
-
void RenderListBox::updateFromElement()
{
if (m_optionsChanged) {
@@ -545,7 +540,7 @@ void RenderListBox::valueChanged(Scrollbar*)
if (newOffset != m_indexOffset) {
m_indexOffset = newOffset;
repaint();
- node()->dispatchEvent(Event::create(eventNames().scrollEvent, false, false));
+ node()->document()->eventQueue()->enqueueScrollEvent(node(), EventQueue::ScrollEventElementTarget);
}
}
diff --git a/Source/WebCore/rendering/RenderListBox.h b/Source/WebCore/rendering/RenderListBox.h
index 1fbff0d..243fcbe 100644
--- a/Source/WebCore/rendering/RenderListBox.h
+++ b/Source/WebCore/rendering/RenderListBox.h
@@ -94,8 +94,6 @@ private:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
- virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
-
// ScrollbarClient interface.
virtual int scrollSize(ScrollbarOrientation orientation) const;
virtual void setScrollOffsetFromAnimation(const IntPoint&);
diff --git a/Source/WebCore/rendering/RenderMediaControlsChromium.cpp b/Source/WebCore/rendering/RenderMediaControlsChromium.cpp
index f938a52..71fca91 100644
--- a/Source/WebCore/rendering/RenderMediaControlsChromium.cpp
+++ b/Source/WebCore/rendering/RenderMediaControlsChromium.cpp
@@ -32,6 +32,7 @@
#include "GraphicsContext.h"
#include "HTMLMediaElement.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderMenuList.cpp b/Source/WebCore/rendering/RenderMenuList.cpp
index 5ad661f..61f1084 100644
--- a/Source/WebCore/rendering/RenderMenuList.cpp
+++ b/Source/WebCore/rendering/RenderMenuList.cpp
@@ -123,8 +123,6 @@ void RenderMenuList::styleDidChange(StyleDifference diff, const RenderStyle* old
if (m_innerBlock) // RenderBlock handled updating the anonymous block's style.
adjustInnerStyle();
- setReplaced(isInline());
-
bool fontChanged = !oldStyle || oldStyle->font() != style()->font();
if (fontChanged)
updateOptionsWidth();
diff --git a/Source/WebCore/rendering/RenderObject.cpp b/Source/WebCore/rendering/RenderObject.cpp
index 27a53d0..670f818 100644
--- a/Source/WebCore/rendering/RenderObject.cpp
+++ b/Source/WebCore/rendering/RenderObject.cpp
@@ -28,8 +28,9 @@
#include "RenderObject.h"
#include "AXObjectCache.h"
-#include "Chrome.h"
#include "CSSStyleSelector.h"
+#include "Chrome.h"
+#include "ContentData.h"
#include "DashArray.h"
#include "EditingBoundary.h"
#include "FloatQuad.h"
diff --git a/Source/WebCore/rendering/RenderObject.h b/Source/WebCore/rendering/RenderObject.h
index 2f443ef..cf08a0d 100644
--- a/Source/WebCore/rendering/RenderObject.h
+++ b/Source/WebCore/rendering/RenderObject.h
@@ -28,11 +28,10 @@
#include "AffineTransform.h"
#include "CachedResourceClient.h"
-#include "CSSPrimitiveValue.h"
#include "Document.h"
#include "Element.h"
#include "FloatQuad.h"
-#include "PaintInfo.h"
+#include "PaintPhase.h"
#include "RenderObjectChildList.h"
#include "RenderStyle.h"
#include "TextAffinity.h"
@@ -64,6 +63,8 @@ class VisiblePosition;
class RenderSVGResourceContainer;
#endif
+struct PaintInfo;
+
enum HitTestFilter {
HitTestAll,
HitTestSelf,
diff --git a/Source/WebCore/rendering/RenderObjectChildList.cpp b/Source/WebCore/rendering/RenderObjectChildList.cpp
index c7c8e44..fa4f902 100644
--- a/Source/WebCore/rendering/RenderObjectChildList.cpp
+++ b/Source/WebCore/rendering/RenderObjectChildList.cpp
@@ -28,6 +28,7 @@
#include "RenderObjectChildList.h"
#include "AXObjectCache.h"
+#include "ContentData.h"
#include "RenderBlock.h"
#include "RenderCounter.h"
#include "RenderImage.h"
diff --git a/Source/WebCore/rendering/RenderProgress.cpp b/Source/WebCore/rendering/RenderProgress.cpp
index 84de6fb..4194e2b 100644
--- a/Source/WebCore/rendering/RenderProgress.cpp
+++ b/Source/WebCore/rendering/RenderProgress.cpp
@@ -26,6 +26,7 @@
#include "HTMLNames.h"
#include "HTMLProgressElement.h"
+#include "PaintInfo.h"
#include "RenderTheme.h"
#include "ShadowElement.h"
#include <wtf/CurrentTime.h>
diff --git a/Source/WebCore/rendering/RenderSVGTransformableContainer.h b/Source/WebCore/rendering/RenderSVGTransformableContainer.h
deleted file mode 100644
index b49a403..0000000
--- a/Source/WebCore/rendering/RenderSVGTransformableContainer.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- 2009 Google, 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
- 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.
- */
-
-#ifndef RenderSVGTransformableContainer_h
-#define RenderSVGTransformableContainer_h
-
-#if ENABLE(SVG)
-#include "RenderSVGContainer.h"
-
-namespace WebCore {
-
- class SVGStyledTransformableElement;
- class RenderSVGTransformableContainer : public RenderSVGContainer {
- public:
- explicit RenderSVGTransformableContainer(SVGStyledTransformableElement*);
-
- virtual const AffineTransform& localToParentTransform() const { return m_localTransform; }
- virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; }
-
- private:
- virtual bool calculateLocalTransform();
- virtual AffineTransform localTransform() const { return m_localTransform; }
-
- bool m_needsTransformUpdate : 1;
- AffineTransform m_localTransform;
- };
-}
-
-#endif // ENABLE(SVG)
-#endif // RenderSVGTransformableContainer_h
diff --git a/Source/WebCore/rendering/RenderScrollbarPart.cpp b/Source/WebCore/rendering/RenderScrollbarPart.cpp
index 16cc204..9cf55fc 100644
--- a/Source/WebCore/rendering/RenderScrollbarPart.cpp
+++ b/Source/WebCore/rendering/RenderScrollbarPart.cpp
@@ -25,6 +25,8 @@
#include "config.h"
#include "RenderScrollbarPart.h"
+
+#include "PaintInfo.h"
#include "RenderScrollbar.h"
#include "RenderScrollbarTheme.h"
#include "RenderView.h"
diff --git a/Source/WebCore/rendering/RenderSlider.cpp b/Source/WebCore/rendering/RenderSlider.cpp
index b73a1ac..b0dc0d9 100644
--- a/Source/WebCore/rendering/RenderSlider.cpp
+++ b/Source/WebCore/rendering/RenderSlider.cpp
@@ -22,6 +22,7 @@
#include "RenderSlider.h"
#include "CSSPropertyNames.h"
+#include "CSSStyleSelector.h"
#include "Document.h"
#include "Event.h"
#include "EventHandler.h"
@@ -60,8 +61,6 @@ RenderSlider::RenderSlider(HTMLInputElement* element)
RenderSlider::~RenderSlider()
{
- if (m_thumb)
- m_thumb->detach();
}
int RenderSlider::baselinePosition(FontBaseline, bool /*firstLine*/, LineDirectionMode, LinePositionMode) const
@@ -100,50 +99,14 @@ void RenderSlider::computePreferredLogicalWidths()
setPreferredLogicalWidthsDirty(false);
}
-void RenderSlider::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
- RenderBlock::styleDidChange(diff, oldStyle);
-
- if (m_thumb)
- m_thumb->renderer()->setStyle(createThumbStyle(style()));
-
- setReplaced(isInline());
-}
-
-PassRefPtr<RenderStyle> RenderSlider::createThumbStyle(const RenderStyle* parentStyle)
-{
- RefPtr<RenderStyle> style;
- RenderStyle* pseudoStyle = getCachedPseudoStyle(SLIDER_THUMB);
- if (pseudoStyle)
- // We may be sharing style with another slider, but we must not share the thumb style.
- style = RenderStyle::clone(pseudoStyle);
- else
- style = RenderStyle::create();
-
- if (parentStyle)
- style->inheritFrom(parentStyle);
-
- style->setDisplay(BLOCK);
-
- if (parentStyle->appearance() == SliderVerticalPart)
- style->setAppearance(SliderThumbVerticalPart);
- else if (parentStyle->appearance() == SliderHorizontalPart)
- style->setAppearance(SliderThumbHorizontalPart);
- else if (parentStyle->appearance() == MediaSliderPart)
- style->setAppearance(MediaSliderThumbPart);
- else if (parentStyle->appearance() == MediaVolumeSliderPart)
- style->setAppearance(MediaVolumeSliderThumbPart);
-
- return style.release();
-}
-
IntRect RenderSlider::thumbRect()
{
- if (!m_thumb)
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ if (!thumbElement)
return IntRect();
IntRect thumbRect;
- RenderBox* thumb = toRenderBox(m_thumb->renderer());
+ RenderBox* thumb = toRenderBox(thumbElement->renderer());
thumbRect.setWidth(thumb->style()->width().calcMinValue(contentWidth()));
thumbRect.setHeight(thumb->style()->height().calcMinValue(contentHeight()));
@@ -165,7 +128,8 @@ void RenderSlider::layout()
{
ASSERT(needsLayout());
- RenderBox* thumb = m_thumb ? toRenderBox(m_thumb->renderer()) : 0;
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ RenderBox* thumb = thumbElement ? toRenderBox(thumbElement->renderer()) : 0;
IntSize baseSize(borderAndPaddingWidth(), borderAndPaddingHeight());
@@ -212,43 +176,35 @@ void RenderSlider::layout()
setNeedsLayout(false);
}
-void RenderSlider::updateFromElement()
+SliderThumbElement* RenderSlider::sliderThumbElement() const
{
- // Layout will take care of the thumb's size and position.
- if (!m_thumb) {
- m_thumb = SliderThumbElement::create(static_cast<HTMLElement*>(node()));
- RefPtr<RenderStyle> thumbStyle = createThumbStyle(style());
- m_thumb->setRenderer(m_thumb->createRenderer(renderArena(), thumbStyle.get()));
- m_thumb->renderer()->setStyle(thumbStyle.release());
- m_thumb->setAttached();
- m_thumb->setInDocument();
- addChild(m_thumb->renderer());
- }
- setNeedsLayout(true);
+ return toSliderThumbElement(static_cast<Element*>(node())->shadowRoot());
}
bool RenderSlider::mouseEventIsInThumb(MouseEvent* evt)
{
- if (!m_thumb || !m_thumb->renderer())
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ if (!thumbElement || !thumbElement->renderer())
return false;
#if ENABLE(VIDEO)
if (style()->appearance() == MediaSliderPart || style()->appearance() == MediaVolumeSliderPart) {
- MediaControlInputElement *sliderThumb = static_cast<MediaControlInputElement*>(m_thumb->renderer()->node());
+ MediaControlInputElement* sliderThumb = static_cast<MediaControlInputElement*>(thumbElement->renderer()->node());
return sliderThumb->hitTest(evt->absoluteLocation());
}
#endif
- FloatPoint localPoint = m_thumb->renderBox()->absoluteToLocal(evt->absoluteLocation(), false, true);
- IntRect thumbBounds = m_thumb->renderBox()->borderBoxRect();
+ FloatPoint localPoint = thumbElement->renderBox()->absoluteToLocal(evt->absoluteLocation(), false, true);
+ IntRect thumbBounds = thumbElement->renderBox()->borderBoxRect();
return thumbBounds.contains(roundedIntPoint(localPoint));
}
FloatPoint RenderSlider::mouseEventOffsetToThumb(MouseEvent* evt)
{
- ASSERT(m_thumb && m_thumb->renderer());
- FloatPoint localPoint = m_thumb->renderBox()->absoluteToLocal(evt->absoluteLocation(), false, true);
- IntRect thumbBounds = m_thumb->renderBox()->borderBoxRect();
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ ASSERT(thumbElement && thumbElement->renderer());
+ FloatPoint localPoint = thumbElement->renderBox()->absoluteToLocal(evt->absoluteLocation(), false, true);
+ IntRect thumbBounds = thumbElement->renderBox()->borderBoxRect();
FloatPoint offset;
offset.setX(thumbBounds.x() + thumbBounds.width() / 2 - localPoint.x());
offset.setY(thumbBounds.y() + thumbBounds.height() / 2 - localPoint.y());
@@ -257,7 +213,8 @@ FloatPoint RenderSlider::mouseEventOffsetToThumb(MouseEvent* evt)
void RenderSlider::setValueForPosition(int position)
{
- if (!m_thumb || !m_thumb->renderer())
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ if (!thumbElement || !thumbElement->renderer())
return;
HTMLInputElement* element = static_cast<HTMLInputElement*>(node());
@@ -282,40 +239,45 @@ void RenderSlider::setValueForPosition(int position)
int RenderSlider::positionForOffset(const IntPoint& p)
{
- if (!m_thumb || !m_thumb->renderer())
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ if (!thumbElement || !thumbElement->renderer())
return 0;
int position;
if (style()->appearance() == SliderVerticalPart || style()->appearance() == MediaVolumeSliderPart)
- position = p.y() - m_thumb->renderBox()->height() / 2;
+ position = p.y() - thumbElement->renderBox()->height() / 2;
else
- position = p.x() - m_thumb->renderBox()->width() / 2;
+ position = p.x() - thumbElement->renderBox()->width() / 2;
return max(0, min(position, trackSize()));
}
int RenderSlider::currentPosition()
{
- ASSERT(m_thumb);
- ASSERT(m_thumb->renderer());
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ ASSERT(thumbElement && thumbElement->renderer());
if (style()->appearance() == SliderVerticalPart || style()->appearance() == MediaVolumeSliderPart)
- return toRenderBox(m_thumb->renderer())->y() - contentBoxRect().y();
- return toRenderBox(m_thumb->renderer())->x() - contentBoxRect().x();
+ return toRenderBox(thumbElement->renderer())->y() - contentBoxRect().y();
+ return toRenderBox(thumbElement->renderer())->x() - contentBoxRect().x();
}
int RenderSlider::trackSize()
{
- ASSERT(m_thumb);
- ASSERT(m_thumb->renderer());
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ ASSERT(thumbElement && thumbElement->renderer());
if (style()->appearance() == SliderVerticalPart || style()->appearance() == MediaVolumeSliderPart)
- return contentHeight() - m_thumb->renderBox()->height();
- return contentWidth() - m_thumb->renderBox()->width();
+ return contentHeight() - thumbElement->renderBox()->height();
+ return contentWidth() - thumbElement->renderBox()->width();
}
void RenderSlider::forwardEvent(Event* event)
{
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ if (!thumbElement)
+ return;
+
if (event->isMouseEvent()) {
MouseEvent* mouseEvent = static_cast<MouseEvent*>(event);
if (event->type() == eventNames().mousedownEvent && mouseEvent->button() == LeftButton) {
@@ -326,12 +288,13 @@ void RenderSlider::forwardEvent(Event* event)
}
}
- m_thumb->defaultEventHandler(event);
+ thumbElement->defaultEventHandler(event);
}
bool RenderSlider::inDragMode() const
{
- return m_thumb && m_thumb->inDragMode();
+ SliderThumbElement* thumbElement = sliderThumbElement();
+ return thumbElement && thumbElement->inDragMode();
}
} // namespace WebCore
diff --git a/Source/WebCore/rendering/RenderSlider.h b/Source/WebCore/rendering/RenderSlider.h
index 03779a3..5fb5921 100644
--- a/Source/WebCore/rendering/RenderSlider.h
+++ b/Source/WebCore/rendering/RenderSlider.h
@@ -45,8 +45,10 @@ namespace WebCore {
virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const;
virtual void computePreferredLogicalWidths();
virtual void layout();
- virtual void updateFromElement();
+ // FIXME: Eventually, the logic of manipulating slider thumb should move to
+ // SliderThumbElement and accessing sliderThumbElement should not be necessary in this class.
+ SliderThumbElement* sliderThumbElement() const;
bool mouseEventIsInThumb(MouseEvent*);
FloatPoint mouseEventOffsetToThumb(MouseEvent*);
@@ -56,16 +58,10 @@ namespace WebCore {
int currentPosition();
- virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
-
virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
- PassRefPtr<RenderStyle> createThumbStyle(const RenderStyle* parentStyle);
-
int trackSize();
- RefPtr<SliderThumbElement> m_thumb;
-
friend class SliderThumbElement;
};
diff --git a/Source/WebCore/rendering/RenderTable.cpp b/Source/WebCore/rendering/RenderTable.cpp
index f0cc264..3fc1c72 100644
--- a/Source/WebCore/rendering/RenderTable.cpp
+++ b/Source/WebCore/rendering/RenderTable.cpp
@@ -27,6 +27,7 @@
#include "RenderTable.h"
#include "AutoTableLayout.h"
+#include "CollapsedBorderValue.h"
#include "DeleteButtonController.h"
#include "Document.h"
#include "FixedTableLayout.h"
diff --git a/Source/WebCore/rendering/RenderTable.h b/Source/WebCore/rendering/RenderTable.h
index 6afb108..b9a7bad 100644
--- a/Source/WebCore/rendering/RenderTable.h
+++ b/Source/WebCore/rendering/RenderTable.h
@@ -31,6 +31,7 @@
namespace WebCore {
+class CollapsedBorderValue;
class RenderTableCol;
class RenderTableCell;
class RenderTableSection;
diff --git a/Source/WebCore/rendering/RenderTableCell.cpp b/Source/WebCore/rendering/RenderTableCell.cpp
index 0c2cf2f..8549f49 100644
--- a/Source/WebCore/rendering/RenderTableCell.cpp
+++ b/Source/WebCore/rendering/RenderTableCell.cpp
@@ -25,10 +25,12 @@
#include "config.h"
#include "RenderTableCell.h"
+#include "CollapsedBorderValue.h"
#include "FloatQuad.h"
#include "GraphicsContext.h"
#include "HTMLNames.h"
#include "HTMLTableCellElement.h"
+#include "PaintInfo.h"
#include "RenderTableCol.h"
#include "RenderView.h"
#include "TransformState.h"
diff --git a/Source/WebCore/rendering/RenderTableRow.cpp b/Source/WebCore/rendering/RenderTableRow.cpp
index 5bb3ff4..595e156 100644
--- a/Source/WebCore/rendering/RenderTableRow.cpp
+++ b/Source/WebCore/rendering/RenderTableRow.cpp
@@ -28,6 +28,7 @@
#include "CachedImage.h"
#include "Document.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
#include "RenderTableCell.h"
#include "RenderView.h"
diff --git a/Source/WebCore/rendering/RenderTableSection.cpp b/Source/WebCore/rendering/RenderTableSection.cpp
index cb1276d..7aaad62 100644
--- a/Source/WebCore/rendering/RenderTableSection.cpp
+++ b/Source/WebCore/rendering/RenderTableSection.cpp
@@ -29,6 +29,7 @@
#include "Document.h"
#include "HitTestResult.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
#include "RenderTableCell.h"
#include "RenderTableCol.h"
#include "RenderTableRow.h"
diff --git a/Source/WebCore/rendering/RenderTextControl.cpp b/Source/WebCore/rendering/RenderTextControl.cpp
index 0192ee4..40aa4c2 100644
--- a/Source/WebCore/rendering/RenderTextControl.cpp
+++ b/Source/WebCore/rendering/RenderTextControl.cpp
@@ -33,6 +33,7 @@
#include "HTMLInputElement.h"
#include "HTMLNames.h"
#include "HitTestResult.h"
+#include "Position.h"
#include "RenderLayer.h"
#include "RenderText.h"
#include "ScrollbarTheme.h"
@@ -97,8 +98,6 @@ void RenderTextControl::styleDidChange(StyleDifference diff, const RenderStyle*
textBlockRenderer->style()->setWidth(Length());
setInnerTextStyle(textBlockStyle);
}
-
- setReplaced(isInline());
}
void RenderTextControl::setInnerTextStyle(PassRefPtr<RenderStyle> style)
@@ -273,12 +272,49 @@ bool RenderTextControl::isSelectableElement(Node* node) const
|| (shadowAncestor->hasTagName(inputTag) && static_cast<HTMLInputElement*>(shadowAncestor)->isTextField()));
}
+static inline void setContainerAndOffsetForRange(Node* node, int offset, Node*& containerNode, int& offsetInContainer)
+{
+ if (node->isTextNode()) {
+ containerNode = node;
+ offsetInContainer = offset;
+ } else {
+ containerNode = node->parentNode();
+ offsetInContainer = node->nodeIndex() + offset;
+ }
+}
+
PassRefPtr<Range> RenderTextControl::selection(int start, int end) const
{
+ ASSERT(start <= end);
if (!m_innerText)
return 0;
- return Range::create(document(), m_innerText, start, m_innerText, end);
+ if (!m_innerText->firstChild())
+ return Range::create(document(), m_innerText, 0, m_innerText, 0);
+
+ int offset = 0;
+ Node* startNode = 0;
+ Node* endNode = 0;
+ for (Node* node = m_innerText->firstChild(); node; node = node->traverseNextNode(m_innerText.get())) {
+ ASSERT(!node->firstChild());
+ ASSERT(node->isTextNode() || node->hasTagName(brTag));
+ int length = node->isTextNode() ? lastOffsetInNode(node) : 1;
+
+ if (offset <= start && start <= offset + length)
+ setContainerAndOffsetForRange(node, start - offset, startNode, start);
+
+ if (offset <= end && end <= offset + length) {
+ setContainerAndOffsetForRange(node, end - offset, endNode, end);
+ break;
+ }
+
+ offset += length;
+ }
+
+ if (!startNode || !endNode)
+ return 0;
+
+ return Range::create(document(), startNode, start, endNode, end);
}
VisiblePosition RenderTextControl::visiblePositionForIndex(int index) const
diff --git a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
index 29538ce..b54c45b 100644
--- a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
+++ b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -671,21 +671,6 @@ void RenderTextControlSingleLine::createSubtreeIfNeeded()
}
}
-#if ENABLE(INPUT_SPEECH)
-void RenderTextControlSingleLine::speechAttributeChanged()
-{
- // The inner text element of this renderer has different styles depending on whether the
- // speech button is visible or not. So when the speech attribute changes, we reset the
- // whole thing and recreate to get the right styles and layout.
- if (m_speechButton)
- m_speechButton->detach();
- setChildrenInline(true);
- RenderStyle* parentStyle = m_innerBlock ? m_innerBlock->renderer()->style() : style();
- setStyle(createInnerTextStyle(parentStyle));
- updateFromElement();
-}
-#endif
-
void RenderTextControlSingleLine::updateFromElement()
{
createSubtreeIfNeeded();
diff --git a/Source/WebCore/rendering/RenderTextControlSingleLine.h b/Source/WebCore/rendering/RenderTextControlSingleLine.h
index 51509c0..16ce1e4 100644
--- a/Source/WebCore/rendering/RenderTextControlSingleLine.h
+++ b/Source/WebCore/rendering/RenderTextControlSingleLine.h
@@ -59,10 +59,6 @@ public:
// Decoration width outside of the text field.
int decorationWidthRight() const;
-#if ENABLE(INPUT_SPEECH)
- void speechAttributeChanged();
-#endif
-
private:
int preferredDecorationWidthRight() const;
virtual bool hasControlClip() const;
diff --git a/Source/WebCore/rendering/RenderTheme.cpp b/Source/WebCore/rendering/RenderTheme.cpp
index 538b6c6..e67ecfc 100644
--- a/Source/WebCore/rendering/RenderTheme.cpp
+++ b/Source/WebCore/rendering/RenderTheme.cpp
@@ -33,6 +33,7 @@
#include "HTMLNames.h"
#include "MediaControlElements.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderStyle.h"
#include "RenderView.h"
#include "SelectionController.h"
diff --git a/Source/WebCore/rendering/RenderThemeChromiumLinux.cpp b/Source/WebCore/rendering/RenderThemeChromiumLinux.cpp
index de83ae9..90736c7 100644
--- a/Source/WebCore/rendering/RenderThemeChromiumLinux.cpp
+++ b/Source/WebCore/rendering/RenderThemeChromiumLinux.cpp
@@ -27,6 +27,7 @@
#include "CSSValueKeywords.h"
#include "Color.h"
+#include "PaintInfo.h"
#include "PlatformThemeChromiumGtk.h"
#include "RenderObject.h"
#include "ScrollbarTheme.h"
diff --git a/Source/WebCore/rendering/RenderThemeChromiumMac.mm b/Source/WebCore/rendering/RenderThemeChromiumMac.mm
index e8ffe6c..02eb134 100644
--- a/Source/WebCore/rendering/RenderThemeChromiumMac.mm
+++ b/Source/WebCore/rendering/RenderThemeChromiumMac.mm
@@ -21,6 +21,7 @@
#import "config.h"
#import "RenderThemeChromiumMac.h"
#import "ChromiumBridge.h"
+#import "PaintInfo.h"
#import "RenderMediaControlsChromium.h"
#import "UserAgentStyleSheets.h"
#import <Carbon/Carbon.h>
diff --git a/Source/WebCore/rendering/RenderThemeChromiumSkia.cpp b/Source/WebCore/rendering/RenderThemeChromiumSkia.cpp
index 9824851..bb60c1f 100644
--- a/Source/WebCore/rendering/RenderThemeChromiumSkia.cpp
+++ b/Source/WebCore/rendering/RenderThemeChromiumSkia.cpp
@@ -32,6 +32,7 @@
#include "HTMLNames.h"
#include "Image.h"
#include "MediaControlElements.h"
+#include "PaintInfo.h"
#include "PlatformContextSkia.h"
#include "RenderBox.h"
#include "RenderMediaControlsChromium.h"
diff --git a/Source/WebCore/rendering/RenderThemeChromiumWin.cpp b/Source/WebCore/rendering/RenderThemeChromiumWin.cpp
index be670ff..5b41ea2 100644
--- a/Source/WebCore/rendering/RenderThemeChromiumWin.cpp
+++ b/Source/WebCore/rendering/RenderThemeChromiumWin.cpp
@@ -38,6 +38,7 @@
#include "HTMLMediaElement.h"
#include "HTMLNames.h"
#include "MediaControlElements.h"
+#include "PaintInfo.h"
#include "RenderBox.h"
#include "RenderProgress.h"
#include "RenderSlider.h"
diff --git a/Source/WebCore/rendering/RenderThemeMac.mm b/Source/WebCore/rendering/RenderThemeMac.mm
index a13b4aa..0764093 100644
--- a/Source/WebCore/rendering/RenderThemeMac.mm
+++ b/Source/WebCore/rendering/RenderThemeMac.mm
@@ -35,6 +35,7 @@
#import "ImageBuffer.h"
#import "LocalCurrentGraphicsContext.h"
#import "MediaControlElements.h"
+#import "PaintInfo.h"
#import "RenderMedia.h"
#import "RenderSlider.h"
#import "RenderView.h"
diff --git a/Source/WebCore/rendering/RenderThemeSafari.cpp b/Source/WebCore/rendering/RenderThemeSafari.cpp
index 6d5d322..3c1dedc 100644
--- a/Source/WebCore/rendering/RenderThemeSafari.cpp
+++ b/Source/WebCore/rendering/RenderThemeSafari.cpp
@@ -35,6 +35,7 @@
#include "HTMLInputElement.h"
#include "HTMLMediaElement.h"
#include "HTMLNames.h"
+#include "PaintInfo.h"
#include "RenderMediaControls.h"
#include "RenderSlider.h"
#include "RenderView.h"
diff --git a/Source/WebCore/rendering/RenderThemeWinCE.cpp b/Source/WebCore/rendering/RenderThemeWinCE.cpp
index 27b8783..2c55f31 100644
--- a/Source/WebCore/rendering/RenderThemeWinCE.cpp
+++ b/Source/WebCore/rendering/RenderThemeWinCE.cpp
@@ -28,10 +28,11 @@
#include "CSSValueKeywords.h"
#include "Document.h"
#include "GraphicsContext.h"
-#include "NotImplemented.h"
#if ENABLE(VIDEO)
#include "HTMLMediaElement.h"
#endif
+#include "NotImplemented.h"
+#include "PaintInfo.h"
#include <windows.h>
diff --git a/Source/WebCore/rendering/RenderVideo.cpp b/Source/WebCore/rendering/RenderVideo.cpp
index 5b82deb..0f3b551 100644
--- a/Source/WebCore/rendering/RenderVideo.cpp
+++ b/Source/WebCore/rendering/RenderVideo.cpp
@@ -34,6 +34,7 @@
#include "HTMLNames.h"
#include "HTMLVideoElement.h"
#include "MediaPlayer.h"
+#include "PaintInfo.h"
#include "RenderView.h"
#if USE(ACCELERATED_COMPOSITING)
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp
index 6820e34..687ba85 100644
--- a/Source/WebCore/rendering/RenderView.cpp
+++ b/Source/WebCore/rendering/RenderView.cpp
@@ -147,20 +147,32 @@ void RenderView::layout()
setNeedsLayout(false);
}
-void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool /*useTransforms*/, TransformState& transformState) const
+void RenderView::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState) const
{
// If a container was specified, and was not 0 or the RenderView,
// then we should have found it by now.
ASSERT_UNUSED(repaintContainer, !repaintContainer || repaintContainer == this);
+ if (useTransforms && shouldUseTransformFromContainer(0)) {
+ TransformationMatrix t;
+ getTransformFromContainer(0, IntSize(), t);
+ transformState.applyTransform(t);
+ }
+
if (fixed && m_frameView)
transformState.move(m_frameView->scrollOffset());
}
-void RenderView::mapAbsoluteToLocalPoint(bool fixed, bool /*useTransforms*/, TransformState& transformState) const
+void RenderView::mapAbsoluteToLocalPoint(bool fixed, bool useTransforms, TransformState& transformState) const
{
if (fixed && m_frameView)
transformState.move(-m_frameView->scrollOffset());
+
+ if (useTransforms && shouldUseTransformFromContainer(0)) {
+ TransformationMatrix t;
+ getTransformFromContainer(0, IntSize(), t);
+ transformState.applyTransform(t);
+ }
}
void RenderView::paint(PaintInfo& paintInfo, int tx, int ty)
diff --git a/Source/WebCore/rendering/RenderWidget.cpp b/Source/WebCore/rendering/RenderWidget.cpp
index 152bb2f..22283a0 100644
--- a/Source/WebCore/rendering/RenderWidget.cpp
+++ b/Source/WebCore/rendering/RenderWidget.cpp
@@ -157,9 +157,8 @@ RenderWidget::~RenderWidget()
clearWidget();
}
-bool RenderWidget::setWidgetGeometry(const IntRect& frame)
+bool RenderWidget::setWidgetGeometry(const IntRect& frame, const IntSize& boundsSize)
{
- ASSERT(!widgetHierarchyUpdateSuspendCount);
if (!node())
return false;
@@ -175,6 +174,8 @@ bool RenderWidget::setWidgetGeometry(const IntRect& frame)
RenderWidgetProtector protector(this);
RefPtr<Node> protectedNode(node());
m_widget->setFrameRect(frame);
+ if (m_widget) // setFrameRect can run arbitrary script, which might clear m_widget.
+ m_widget->setBoundsSize(boundsSize);
#if USE(ACCELERATED_COMPOSITING)
if (hasLayer() && layer()->isComposited())
@@ -202,7 +203,7 @@ void RenderWidget::setWidget(PassRefPtr<Widget> widget)
// style pointer).
if (style()) {
if (!needsLayout())
- setWidgetGeometry(absoluteContentBox());
+ setWidgetGeometry(IntRect(localToAbsoluteQuad(FloatQuad(contentBoxRect())).boundingBox()), contentBoxRect().size());
if (style()->visibility() != VISIBLE)
m_widget->hide();
else
@@ -342,14 +343,9 @@ void RenderWidget::updateWidgetPosition()
if (!m_widget || !node()) // Check the node in case destroy() has been called.
return;
- // FIXME: This doesn't work correctly with transforms.
- FloatPoint absPos = localToAbsolute();
- absPos.move(borderLeft() + paddingLeft(), borderTop() + paddingTop());
-
- int w = width() - borderAndPaddingWidth();
- int h = height() - borderAndPaddingHeight();
-
- bool boundsChanged = setWidgetGeometry(IntRect(absPos.x(), absPos.y(), w, h));
+ IntRect contentBox = contentBoxRect();
+ IntRect absoluteContentBox = IntRect(localToAbsoluteQuad(FloatQuad(contentBox)).boundingBox());
+ bool boundsChanged = setWidgetGeometry(absoluteContentBox, contentBox.size());
// if the frame bounds got changed, or if view needs layout (possibly indicating
// content size is wrong) we have to do a layout to set the right widget size
diff --git a/Source/WebCore/rendering/RenderWidget.h b/Source/WebCore/rendering/RenderWidget.h
index d2ec096..5cbdfaf 100644
--- a/Source/WebCore/rendering/RenderWidget.h
+++ b/Source/WebCore/rendering/RenderWidget.h
@@ -70,7 +70,7 @@ private:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
virtual void setOverlapTestResult(bool);
- bool setWidgetGeometry(const IntRect&);
+ bool setWidgetGeometry(const IntRect&, const IntSize&);
RefPtr<Widget> m_widget;
RefPtr<Image> m_substituteImage;
diff --git a/Source/WebCore/rendering/RenderingAllInOne.cpp b/Source/WebCore/rendering/RenderingAllInOne.cpp
index 37ba704..faa3566 100644
--- a/Source/WebCore/rendering/RenderingAllInOne.cpp
+++ b/Source/WebCore/rendering/RenderingAllInOne.cpp
@@ -53,7 +53,6 @@
#include "RenderFieldset.cpp"
#include "RenderFileUploadControl.cpp"
#include "RenderFlexibleBox.cpp"
-#include "RenderForeignObject.cpp"
#include "RenderFrame.cpp"
#include "RenderFrameBase.cpp"
#include "RenderFrameSet.cpp"
diff --git a/Source/WebCore/rendering/RootInlineBox.cpp b/Source/WebCore/rendering/RootInlineBox.cpp
index 710224e..65130e7 100644
--- a/Source/WebCore/rendering/RootInlineBox.cpp
+++ b/Source/WebCore/rendering/RootInlineBox.cpp
@@ -29,6 +29,7 @@
#include "GraphicsContext.h"
#include "HitTestResult.h"
#include "Page.h"
+#include "PaintInfo.h"
#include "RenderArena.h"
#include "RenderBlock.h"
diff --git a/Source/WebCore/rendering/SVGResourcesCycleSolver.h b/Source/WebCore/rendering/SVGResourcesCycleSolver.h
deleted file mode 100644
index e63ee63..0000000
--- a/Source/WebCore/rendering/SVGResourcesCycleSolver.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- 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
- 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.
-*/
-
-#ifndef SVGResourcesCycleSolver_h
-#define SVGResourcesCycleSolver_h
-
-#if ENABLE(SVG)
-#include <wtf/HashSet.h>
-
-namespace WebCore {
-
-class RenderObject;
-class RenderSVGResourceContainer;
-class SVGResources;
-
-class SVGResourcesCycleSolver : public Noncopyable {
-public:
- SVGResourcesCycleSolver(RenderObject*, SVGResources*);
- ~SVGResourcesCycleSolver();
-
- void resolveCycles();
-
-private:
- bool resourceContainsCycles(RenderObject*) const;
- void breakCycle(RenderSVGResourceContainer*);
-
- RenderObject* m_renderer;
- SVGResources* m_resources;
- HashSet<RenderSVGResourceContainer*> m_allResources;
-};
-
-}
-
-#endif
-#endif
diff --git a/Source/WebCore/rendering/TextControlInnerElements.cpp b/Source/WebCore/rendering/TextControlInnerElements.cpp
index d6fc7aa..5b8712d 100644
--- a/Source/WebCore/rendering/TextControlInnerElements.cpp
+++ b/Source/WebCore/rendering/TextControlInnerElements.cpp
@@ -383,7 +383,7 @@ inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(HTMLElement*
InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement()
{
SpeechInput* speech = speechInput();
- if (speech) { // Could be null when page is unloading.
+ if (speech && m_listenerId) { // Could be null when page is unloading.
if (m_state != Idle)
speech->cancelRecognition(m_listenerId);
speech->unregisterListener(m_listenerId);
@@ -416,6 +416,7 @@ void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
// remove the input element from DOM. To make sure it remains valid until we finish our work
// here, we take a temporary reference.
RefPtr<HTMLInputElement> holdRef(input);
+ RefPtr<InputFieldSpeechButtonElement> holdRefButton(this);
input->focus();
input->select();
event->setDefaultHandled();
@@ -482,9 +483,14 @@ void InputFieldSpeechButtonElement::setRecognitionResult(int, const SpeechInputR
// remove the input element from DOM. To make sure it remains valid until we finish our work
// here, we take a temporary reference.
RefPtr<HTMLInputElement> holdRef(input);
+ RefPtr<InputFieldSpeechButtonElement> holdRefButton(this);
input->setValue(results.isEmpty() ? "" : results[0]->utterance());
input->dispatchEvent(SpeechInputEvent::create(eventNames().webkitspeechchangeEvent, results));
- renderer()->repaint();
+
+ // Check before accessing the renderer as the above event could have potentially turned off
+ // speech in the input element, hence removing this button and renderer from the hierarchy.
+ if (renderer())
+ renderer()->repaint();
}
void InputFieldSpeechButtonElement::detach()
@@ -494,8 +500,12 @@ void InputFieldSpeechButtonElement::detach()
frame->eventHandler()->setCapturingMouseEventsNode(0);
}
- if (m_state != Idle)
- speechInput()->cancelRecognition(m_listenerId);
+ if (m_listenerId) {
+ if (m_state != Idle)
+ speechInput()->cancelRecognition(m_listenerId);
+ speechInput()->unregisterListener(m_listenerId);
+ m_listenerId = 0;
+ }
TextControlInnerElement::detach();
}
diff --git a/Source/WebCore/mathml/RenderMathMLBlock.cpp b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
index 14e7656..14e7656 100644
--- a/Source/WebCore/mathml/RenderMathMLBlock.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLBlock.h b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h
index f05122a..f05122a 100644
--- a/Source/WebCore/mathml/RenderMathMLBlock.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h
diff --git a/Source/WebCore/mathml/RenderMathMLFenced.cpp b/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp
index f7bbf71..f7bbf71 100644
--- a/Source/WebCore/mathml/RenderMathMLFenced.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLFenced.h b/Source/WebCore/rendering/mathml/RenderMathMLFenced.h
index 64e4d90..64e4d90 100644
--- a/Source/WebCore/mathml/RenderMathMLFenced.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFenced.h
diff --git a/Source/WebCore/mathml/RenderMathMLFraction.cpp b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
index 1435be7..7117618 100644
--- a/Source/WebCore/mathml/RenderMathMLFraction.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
@@ -32,6 +32,7 @@
#include "GraphicsContext.h"
#include "MathMLNames.h"
+#include "PaintInfo.h"
#include "RenderText.h"
namespace WebCore {
@@ -39,16 +40,15 @@ namespace WebCore {
using namespace MathMLNames;
static const double gHorizontalPad = 0.2;
-static const int gLineThin = 1;
-static const int gLineMedium = 3;
-static const int gLineThick = 5;
-static const double gFractionAlignment = 0.25;
+static const double gLineThin = 0.33;
+static const double gLineMedium = 1.;
+static const double gLineThick = 3.;
static const double gFractionBarWidth = 0.05;
static const double gDenominatorPad = 0.1;
RenderMathMLFraction::RenderMathMLFraction(Element* fraction)
: RenderMathMLBlock(fraction)
- , m_lineThickness(gLineThin)
+ , m_lineThickness(gLineMedium)
{
setChildrenInline(false);
}
@@ -84,7 +84,7 @@ void RenderMathMLFraction::updateFromElement()
// FIXME: parse units
String thickness = fraction->getAttribute(MathMLNames::linethicknessAttr);
- m_lineThickness = gLineThin;
+ m_lineThickness = gLineMedium;
if (equalIgnoringCase(thickness, "thin"))
m_lineThickness = gLineThin;
else if (equalIgnoringCase(thickness, "medium"))
@@ -125,7 +125,7 @@ void RenderMathMLFraction::layout()
// Adjust the fraction line thickness for the zoom
if (lastChild() && lastChild()->isRenderBlock())
- m_lineThickness = static_cast<int>(m_lineThickness * ceil(gFractionBarWidth * style()->fontSize()));
+ m_lineThickness *= ceil(gFractionBarWidth * style()->fontSize());
RenderBlock::layout();
@@ -143,8 +143,8 @@ void RenderMathMLFraction::paint(PaintInfo& info, int tx, int ty)
int verticalOffset = 0;
// The children are always RenderMathMLBlock instances
if (firstChild()->isRenderMathMLBlock()) {
- int adjustForThickness = m_lineThickness > 1 ? m_lineThickness / 2 : 1;
- if (m_lineThickness % 2 == 1)
+ int adjustForThickness = m_lineThickness > 1 ? int(m_lineThickness / 2) : 1;
+ if (int(m_lineThickness) % 2 == 1)
adjustForThickness++;
RenderMathMLBlock* numerator = toRenderMathMLBlock(firstChild());
if (numerator->isRenderMathMLRow())
@@ -171,11 +171,13 @@ int RenderMathMLFraction::baselinePosition(FontBaseline, bool firstLine, LineDir
{
if (firstChild() && firstChild()->isRenderMathMLBlock()) {
RenderMathMLBlock* numerator = toRenderMathMLBlock(firstChild());
- // FIXME: the baseline should adjust so the fraction line aligns
- // relative certain operators (e.g. aligns with the horizontal
- // stroke of the plus). 1/3 of the current font size is just
- // a good guess.
- return numerator->offsetHeight() + style()->fontSize() / 3;
+ RenderStyle* refStyle = style();
+ if (previousSibling())
+ refStyle = previousSibling()->style();
+ else if (nextSibling())
+ refStyle = nextSibling()->style();
+ int shift = int(ceil((refStyle->font().xHeight() + 1) / 2));
+ return numerator->offsetHeight() + shift;
}
return RenderBlock::baselinePosition(AlphabeticBaseline, firstLine, lineDirection, linePositionMode);
}
diff --git a/Source/WebCore/mathml/RenderMathMLFraction.h b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h
index 8a3a9ed..2a03f81 100644
--- a/Source/WebCore/mathml/RenderMathMLFraction.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h
@@ -43,7 +43,7 @@ public:
protected:
virtual void layout();
private:
- int m_lineThickness;
+ double m_lineThickness;
};
}
diff --git a/Source/WebCore/mathml/RenderMathMLMath.cpp b/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp
index 2b65f69..2b65f69 100644
--- a/Source/WebCore/mathml/RenderMathMLMath.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLMath.h b/Source/WebCore/rendering/mathml/RenderMathMLMath.h
index 26f2093..26f2093 100644
--- a/Source/WebCore/mathml/RenderMathMLMath.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMath.h
diff --git a/Source/WebCore/mathml/RenderMathMLOperator.cpp b/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
index 7f039b9..7f039b9 100644
--- a/Source/WebCore/mathml/RenderMathMLOperator.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLOperator.h b/Source/WebCore/rendering/mathml/RenderMathMLOperator.h
index 6501494..6501494 100644
--- a/Source/WebCore/mathml/RenderMathMLOperator.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLOperator.h
diff --git a/Source/WebCore/mathml/RenderMathMLRoot.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
index f0a7abb..075f6ba 100644
--- a/Source/WebCore/mathml/RenderMathMLRoot.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
@@ -32,6 +32,7 @@
#include "GraphicsContext.h"
#include "MathMLNames.h"
+#include "PaintInfo.h"
namespace WebCore {
diff --git a/Source/WebCore/mathml/RenderMathMLRoot.h b/Source/WebCore/rendering/mathml/RenderMathMLRoot.h
index 80f56ac..80f56ac 100644
--- a/Source/WebCore/mathml/RenderMathMLRoot.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRoot.h
diff --git a/Source/WebCore/mathml/RenderMathMLRow.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
index ad54846..ad54846 100644
--- a/Source/WebCore/mathml/RenderMathMLRow.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLRow.h b/Source/WebCore/rendering/mathml/RenderMathMLRow.h
index 62a0d09..62a0d09 100644
--- a/Source/WebCore/mathml/RenderMathMLRow.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRow.h
diff --git a/Source/WebCore/mathml/RenderMathMLSquareRoot.cpp b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp
index 1285acd..3f99e6d 100644
--- a/Source/WebCore/mathml/RenderMathMLSquareRoot.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp
@@ -32,6 +32,7 @@
#include "GraphicsContext.h"
#include "MathMLNames.h"
+#include "PaintInfo.h"
#include "Path.h"
namespace WebCore {
diff --git a/Source/WebCore/mathml/RenderMathMLSquareRoot.h b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h
index d40b1ba..d40b1ba 100644
--- a/Source/WebCore/mathml/RenderMathMLSquareRoot.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h
diff --git a/Source/WebCore/mathml/RenderMathMLSubSup.cpp b/Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp
index 0ea6667..0ea6667 100644
--- a/Source/WebCore/mathml/RenderMathMLSubSup.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSubSup.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLSubSup.h b/Source/WebCore/rendering/mathml/RenderMathMLSubSup.h
index 7a9d310..7a9d310 100644
--- a/Source/WebCore/mathml/RenderMathMLSubSup.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSubSup.h
diff --git a/Source/WebCore/mathml/RenderMathMLUnderOver.cpp b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp
index a3de697..a3de697 100644
--- a/Source/WebCore/mathml/RenderMathMLUnderOver.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp
diff --git a/Source/WebCore/mathml/RenderMathMLUnderOver.h b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h
index fbab72a..fbab72a 100644
--- a/Source/WebCore/mathml/RenderMathMLUnderOver.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h
diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp
index 881818c..4665e52 100644
--- a/Source/WebCore/rendering/style/RenderStyle.cpp
+++ b/Source/WebCore/rendering/style/RenderStyle.cpp
@@ -22,12 +22,15 @@
#include "config.h"
#include "RenderStyle.h"
+#include "ContentData.h"
+#include "CursorList.h"
#include "CSSPropertyNames.h"
#include "CSSStyleSelector.h"
#include "FontSelector.h"
#include "RenderArena.h"
#include "RenderObject.h"
#include "ScaleTransformOperation.h"
+#include "ShadowData.h"
#include "StyleImage.h"
#include <wtf/StdLibExtras.h>
#include <algorithm>
diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h
index 7e61e46..14329bc 100644
--- a/Source/WebCore/rendering/style/RenderStyle.h
+++ b/Source/WebCore/rendering/style/RenderStyle.h
@@ -25,36 +25,24 @@
#ifndef RenderStyle_h
#define RenderStyle_h
-#include "TransformationMatrix.h"
#include "AnimationList.h"
-#include "BorderData.h"
#include "BorderValue.h"
-#include "CSSImageGeneratorValue.h"
#include "CSSPrimitiveValue.h"
#include "CSSPropertyNames.h"
-#include "CSSReflectionDirection.h"
-#include "CSSValueList.h"
-#include "CollapsedBorderValue.h"
#include "Color.h"
#include "ColorSpace.h"
-#include "ContentData.h"
#include "CounterDirectives.h"
-#include "CursorList.h"
#include "DataRef.h"
#include "FillLayer.h"
-#include "FloatPoint.h"
#include "Font.h"
#include "GraphicsTypes.h"
-#include "IntRect.h"
#include "Length.h"
#include "LengthBox.h"
#include "LengthSize.h"
#include "LineClampValue.h"
#include "NinePieceImage.h"
#include "OutlineValue.h"
-#include "Pair.h"
#include "RenderStyleConstants.h"
-#include "ShadowData.h"
#include "StyleBackgroundData.h"
#include "StyleBoxData.h"
#include "StyleFlexibleBoxData.h"
@@ -69,7 +57,6 @@
#include "StyleVisualData.h"
#include "TextDirection.h"
#include "ThemeTypes.h"
-#include "TimingFunction.h"
#include "TransformOperations.h"
#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
@@ -99,10 +86,17 @@ namespace WebCore {
using std::max;
+class BorderData;
class CSSStyleSelector;
-class CSSValueList;
+class CounterContent;
+class CursorList;
+class IntRect;
class Pair;
+class ShadowData;
class StyleImage;
+class TransformationMatrix;
+
+struct ContentData;
typedef Vector<RefPtr<RenderStyle>, 4> PseudoStyleCache;
diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h
index 0839864..7cd4903 100644
--- a/Source/WebCore/rendering/style/RenderStyleConstants.h
+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h
@@ -68,7 +68,7 @@ enum StyleDifferenceContextSensitiveProperty {
enum PseudoId {
// The order must be NOP ID, public IDs, and then internal IDs.
NOPSEUDO, FIRST_LINE, FIRST_LETTER, BEFORE, AFTER, SELECTION, FIRST_LINE_INHERITED, SCROLLBAR, FILE_UPLOAD_BUTTON, INPUT_PLACEHOLDER,
- SLIDER_THUMB, SEARCH_CANCEL_BUTTON, SEARCH_DECORATION, SEARCH_RESULTS_DECORATION, SEARCH_RESULTS_BUTTON, MEDIA_CONTROLS_PANEL,
+ SEARCH_CANCEL_BUTTON, SEARCH_DECORATION, SEARCH_RESULTS_DECORATION, SEARCH_RESULTS_BUTTON, MEDIA_CONTROLS_PANEL,
MEDIA_CONTROLS_PLAY_BUTTON, MEDIA_CONTROLS_MUTE_BUTTON, MEDIA_CONTROLS_TIMELINE, MEDIA_CONTROLS_TIMELINE_CONTAINER,
MEDIA_CONTROLS_VOLUME_SLIDER, MEDIA_CONTROLS_VOLUME_SLIDER_CONTAINER, MEDIA_CONTROLS_VOLUME_SLIDER_MUTE_BUTTON,
MEDIA_CONTROLS_CURRENT_TIME_DISPLAY, MEDIA_CONTROLS_TIME_REMAINING_DISPLAY,
diff --git a/Source/WebCore/rendering/style/StyleRareInheritedData.cpp b/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
index 6138df2..0953dae 100644
--- a/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
+++ b/Source/WebCore/rendering/style/StyleRareInheritedData.cpp
@@ -22,8 +22,10 @@
#include "config.h"
#include "StyleRareInheritedData.h"
+#include "CursorList.h"
#include "RenderStyle.h"
#include "RenderStyleConstants.h"
+#include "ShadowData.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp b/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
index 42cf966..3771f13 100644
--- a/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
+++ b/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
@@ -26,6 +26,7 @@
#include "ContentData.h"
#include "RenderCounter.h"
#include "RenderStyle.h"
+#include "ShadowData.h"
#include "StyleImage.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderSVGAllInOne.cpp b/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp
index 7002747..835bce8 100644
--- a/Source/WebCore/rendering/RenderSVGAllInOne.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGAllInOne.cpp
@@ -27,9 +27,12 @@
#include "RenderSVGBlock.cpp"
#include "RenderSVGContainer.cpp"
+#include "RenderSVGForeignObject.cpp"
#include "RenderSVGGradientStop.cpp"
#include "RenderSVGHiddenContainer.cpp"
#include "RenderSVGImage.cpp"
+#include "RenderSVGInline.cpp"
+#include "RenderSVGInlineText.cpp"
#include "RenderSVGModelObject.cpp"
#include "RenderSVGResource.cpp"
#include "RenderSVGResourceClipper.cpp"
@@ -45,32 +48,28 @@
#include "RenderSVGResourceSolidColor.cpp"
#include "RenderSVGRoot.cpp"
#include "RenderSVGShadowTreeRootContainer.cpp"
+#include "RenderSVGTSpan.cpp"
+#include "RenderSVGText.cpp"
+#include "RenderSVGTextPath.cpp"
#include "RenderSVGTransformableContainer.cpp"
#include "RenderSVGViewportContainer.cpp"
#include "SVGImageBufferTools.cpp"
+#include "SVGInlineFlowBox.cpp"
+#include "SVGInlineTextBox.cpp"
#include "SVGMarkerLayoutInfo.cpp"
#include "SVGRenderSupport.cpp"
#include "SVGRenderTreeAsText.cpp"
#include "SVGResources.cpp"
#include "SVGResourcesCache.cpp"
#include "SVGResourcesCycleSolver.cpp"
+#include "SVGRootInlineBox.cpp"
#include "SVGShadowTreeElements.cpp"
-
-// FIXME: As soon as all SVG renderers live in rendering/svg, this file should be moved there as well, removing the need for the svg/ includes below.
-#include "svg/RenderSVGInline.cpp"
-#include "svg/RenderSVGInlineText.cpp"
-#include "svg/RenderSVGTSpan.cpp"
-#include "svg/RenderSVGText.cpp"
-#include "svg/RenderSVGTextPath.cpp"
-#include "svg/SVGInlineFlowBox.cpp"
-#include "svg/SVGInlineTextBox.cpp"
-#include "svg/SVGRootInlineBox.cpp"
-#include "svg/SVGTextChunk.cpp"
-#include "svg/SVGTextChunkBuilder.cpp"
-#include "svg/SVGTextLayoutAttributes.cpp"
-#include "svg/SVGTextLayoutAttributesBuilder.cpp"
-#include "svg/SVGTextLayoutEngine.cpp"
-#include "svg/SVGTextLayoutEngineBaseline.cpp"
-#include "svg/SVGTextLayoutEngineSpacing.cpp"
-#include "svg/SVGTextMetrics.cpp"
-#include "svg/SVGTextQuery.cpp"
+#include "SVGTextChunk.cpp"
+#include "SVGTextChunkBuilder.cpp"
+#include "SVGTextLayoutAttributes.cpp"
+#include "SVGTextLayoutAttributesBuilder.cpp"
+#include "SVGTextLayoutEngine.cpp"
+#include "SVGTextLayoutEngineBaseline.cpp"
+#include "SVGTextLayoutEngineSpacing.cpp"
+#include "SVGTextMetrics.cpp"
+#include "SVGTextQuery.cpp"
diff --git a/Source/WebCore/rendering/RenderSVGBlock.cpp b/Source/WebCore/rendering/svg/RenderSVGBlock.cpp
index b2d727a..ed8e24e 100644
--- a/Source/WebCore/rendering/RenderSVGBlock.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGBlock.cpp
@@ -17,7 +17,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"
@@ -59,7 +58,7 @@ void RenderSVGBlock::updateBoxModelInfoFromStyle()
// Render(SVGText|ForeignObject) return 'false' on 'requiresLayer'. Fine for RenderSVGText.
//
// If we want to support overflow rules for <foreignObject> we can choose between two solutions:
- // a) make RenderForeignObject require layers and SVG layer aware
+ // a) make RenderSVGForeignObject require layers and SVG layer aware
// b) reactor overflow logic out of RenderLayer (as suggested by dhyatt), which is a large task
//
// Until this is resolved, disable overflow support. Opera/FF don't support it as well at the moment (Feb 2010).
diff --git a/Source/WebCore/rendering/RenderSVGBlock.h b/Source/WebCore/rendering/svg/RenderSVGBlock.h
index a9dd5db..350fdde 100644
--- a/Source/WebCore/rendering/RenderSVGBlock.h
+++ b/Source/WebCore/rendering/svg/RenderSVGBlock.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 RenderSVGBlock_h
diff --git a/Source/WebCore/rendering/RenderSVGContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
index 32e0598..1897f53 100644
--- a/Source/WebCore/rendering/RenderSVGContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
- Copyright (C) 2009 Google, Inc. All rights reserved.
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007, 2008 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, Inc. All rights reserved.
+ * 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/Source/WebCore/rendering/RenderSVGContainer.h b/Source/WebCore/rendering/svg/RenderSVGContainer.h
index 3bd5346..d478c49 100644
--- a/Source/WebCore/rendering/RenderSVGContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGContainer.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2009 Google, Inc. All rights reserved.
- 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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc. All rights reserved.
+ * 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 RenderSVGContainer_h
#define RenderSVGContainer_h
diff --git a/Source/WebCore/rendering/RenderForeignObject.cpp b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
index f9f6988..200fab2 100644
--- a/Source/WebCore/rendering/RenderForeignObject.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
@@ -17,13 +17,12 @@
* along with this library; 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_FOREIGN_OBJECT)
-#include "RenderForeignObject.h"
+#include "RenderSVGForeignObject.h"
#include "GraphicsContext.h"
#include "RenderSVGResource.h"
@@ -35,17 +34,17 @@
namespace WebCore {
-RenderForeignObject::RenderForeignObject(SVGForeignObjectElement* node)
+RenderSVGForeignObject::RenderSVGForeignObject(SVGForeignObjectElement* node)
: RenderSVGBlock(node)
, m_needsTransformUpdate(true)
{
}
-RenderForeignObject::~RenderForeignObject()
+RenderSVGForeignObject::~RenderSVGForeignObject()
{
}
-void RenderForeignObject::paint(PaintInfo& paintInfo, int, int)
+void RenderSVGForeignObject::paint(PaintInfo& paintInfo, int, int)
{
if (paintInfo.context->paintingDisabled())
return;
@@ -69,36 +68,36 @@ void RenderForeignObject::paint(PaintInfo& paintInfo, int, int)
childPaintInfo.context->restore();
}
-IntRect RenderForeignObject::clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer)
+IntRect RenderSVGForeignObject::clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer)
{
return SVGRenderSupport::clippedOverflowRectForRepaint(this, repaintContainer);
}
-void RenderForeignObject::computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect& repaintRect, bool fixed)
+void RenderSVGForeignObject::computeRectForRepaint(RenderBoxModelObject* repaintContainer, IntRect& repaintRect, bool fixed)
{
SVGRenderSupport::computeRectForRepaint(this, repaintContainer, repaintRect, fixed);
}
-const AffineTransform& RenderForeignObject::localToParentTransform() const
+const AffineTransform& RenderSVGForeignObject::localToParentTransform() const
{
m_localToParentTransform = localTransform();
m_localToParentTransform.translate(m_viewport.x(), m_viewport.y());
return m_localToParentTransform;
}
-void RenderForeignObject::computeLogicalWidth()
+void RenderSVGForeignObject::computeLogicalWidth()
{
// FIXME: Investigate in size rounding issues
setWidth(static_cast<int>(roundf(m_viewport.width())));
}
-void RenderForeignObject::computeLogicalHeight()
+void RenderSVGForeignObject::computeLogicalHeight()
{
// FIXME: Investigate in size rounding issues
setHeight(static_cast<int>(roundf(m_viewport.height())));
}
-void RenderForeignObject::layout()
+void RenderSVGForeignObject::layout()
{
ASSERT(needsLayout());
ASSERT(!view()->layoutStateEnabled()); // RenderSVGRoot disables layoutState for the SVG rendering tree.
@@ -125,7 +124,7 @@ void RenderForeignObject::layout()
// positions. A regular RenderBoxModelObject would pull this information from RenderStyle - in SVG those
// properties are ignored for non <svg> elements, so we mimic what happens when specifying them through CSS.
- // FIXME: Investigate in location rounding issues - only affects RenderForeignObject & RenderSVGText
+ // FIXME: Investigate in location rounding issues - only affects RenderSVGForeignObject & RenderSVGText
setLocation(roundedIntPoint(viewportLocation));
bool layoutChanged = m_everHadLayout && selfNeedsLayout();
@@ -143,7 +142,7 @@ void RenderForeignObject::layout()
repainter.repaintAfterLayout();
}
-bool RenderForeignObject::nodeAtFloatPoint(const HitTestRequest& request, HitTestResult& result, const FloatPoint& pointInParent, HitTestAction hitTestAction)
+bool RenderSVGForeignObject::nodeAtFloatPoint(const HitTestRequest& request, HitTestResult& result, const FloatPoint& pointInParent, HitTestAction hitTestAction)
{
FloatPoint localPoint = localTransform().inverse().mapPoint(pointInParent);
@@ -155,13 +154,13 @@ bool RenderForeignObject::nodeAtFloatPoint(const HitTestRequest& request, HitTes
return RenderBlock::nodeAtPoint(request, result, roundedLocalPoint.x(), roundedLocalPoint.y(), 0, 0, hitTestAction);
}
-bool RenderForeignObject::nodeAtPoint(const HitTestRequest&, HitTestResult&, int, int, int, int, HitTestAction)
+bool RenderSVGForeignObject::nodeAtPoint(const HitTestRequest&, HitTestResult&, int, int, int, int, HitTestAction)
{
ASSERT_NOT_REACHED();
return false;
}
-void RenderForeignObject::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState) const
+void RenderSVGForeignObject::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState& transformState) const
{
// When crawling up the hierachy starting from foreignObject child content, useTransforms may not be set to true.
if (!useTransforms)
diff --git a/Source/WebCore/rendering/RenderForeignObject.h b/Source/WebCore/rendering/svg/RenderSVGForeignObject.h
index bdf96ce..a1cf91a 100644
--- a/Source/WebCore/rendering/RenderForeignObject.h
+++ b/Source/WebCore/rendering/svg/RenderSVGForeignObject.h
@@ -16,11 +16,10 @@
* along with this library; 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 RenderForeignObject_h
-#define RenderForeignObject_h
+#ifndef RenderSVGForeignObject_h
+#define RenderSVGForeignObject_h
#if ENABLE(SVG) && ENABLE(SVG_FOREIGN_OBJECT)
#include "AffineTransform.h"
@@ -31,12 +30,12 @@ namespace WebCore {
class SVGForeignObjectElement;
-class RenderForeignObject : public RenderSVGBlock {
+class RenderSVGForeignObject : public RenderSVGBlock {
public:
- explicit RenderForeignObject(SVGForeignObjectElement*);
- virtual ~RenderForeignObject();
+ explicit RenderSVGForeignObject(SVGForeignObjectElement*);
+ virtual ~RenderSVGForeignObject();
- virtual const char* renderName() const { return "RenderForeignObject"; }
+ virtual const char* renderName() const { return "RenderSVGForeignObject"; }
virtual void paint(PaintInfo&, int parentX, int parentY);
@@ -54,10 +53,10 @@ public:
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
virtual bool isSVGForeignObject() const { return true; }
- virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const;
+ virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState&) const;
virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; }
- private:
+private:
virtual void computeLogicalWidth();
virtual void computeLogicalHeight();
diff --git a/Source/WebCore/rendering/RenderSVGGradientStop.cpp b/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
index 094fc7f..46c3e2b 100644
--- a/Source/WebCore/rendering/RenderSVGGradientStop.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
@@ -1,6 +1,4 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2007 Eric Seidel <eric@webkit.org>
*
* This library is free software; you can redistribute it and/or
@@ -17,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"
diff --git a/Source/WebCore/rendering/RenderSVGGradientStop.h b/Source/WebCore/rendering/svg/RenderSVGGradientStop.h
index f06a9a5..ae90f37 100644
--- a/Source/WebCore/rendering/RenderSVGGradientStop.h
+++ b/Source/WebCore/rendering/svg/RenderSVGGradientStop.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 RenderSVGGradientStop_h
diff --git a/Source/WebCore/rendering/RenderSVGHiddenContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
index fb14ffe..9ddabef 100644
--- a/Source/WebCore/rendering/RenderSVGHiddenContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
@@ -1,6 +1,4 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2007 Eric Seidel <eric@webkit.org>
*
* This library is free software; you can redistribute it and/or
@@ -17,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"
diff --git a/Source/WebCore/rendering/RenderSVGHiddenContainer.h b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
index c591a88..d35de2d 100644
--- a/Source/WebCore/rendering/RenderSVGHiddenContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
@@ -1,6 +1,4 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2007 Eric Seidel <eric@webkit.org>
*
* This library is free software; you can redistribute it and/or
@@ -17,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 RenderSVGHiddenContainer_h
@@ -28,30 +25,30 @@
namespace WebCore {
- class SVGStyledElement;
-
- // This class is for containers which are never drawn, but do need to support style
- // <defs>, <linearGradient>, <radialGradient> are all good examples
- class RenderSVGHiddenContainer : public RenderSVGContainer {
- public:
- explicit RenderSVGHiddenContainer(SVGStyledElement*);
+class SVGStyledElement;
- virtual const char* renderName() const { return "RenderSVGHiddenContainer"; }
+// This class is for containers which are never drawn, but do need to support style
+// <defs>, <linearGradient>, <radialGradient> are all good examples
+class RenderSVGHiddenContainer : public RenderSVGContainer {
+public:
+ explicit RenderSVGHiddenContainer(SVGStyledElement*);
- protected:
- virtual void layout();
+ virtual const char* renderName() const { return "RenderSVGHiddenContainer"; }
- private:
- virtual bool isSVGHiddenContainer() const { return true; }
- virtual bool requiresLayer() const { return false; }
+protected:
+ virtual void layout();
- virtual void paint(PaintInfo&, int parentX, int parentY);
-
- virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject*) { return IntRect(); }
- virtual void absoluteQuads(Vector<FloatQuad>&);
+private:
+ virtual bool isSVGHiddenContainer() const { return true; }
+ virtual bool requiresLayer() const { return false; }
+
+ virtual void paint(PaintInfo&, int parentX, int parentY);
+
+ virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject*) { return IntRect(); }
+ virtual void absoluteQuads(Vector<FloatQuad>&);
- virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
- };
+ virtual bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction);
+};
}
#endif // ENABLE(SVG)
diff --git a/Source/WebCore/rendering/RenderSVGImage.cpp b/Source/WebCore/rendering/svg/RenderSVGImage.cpp
index 237dbaa..0f5a55e 100644
--- a/Source/WebCore/rendering/RenderSVGImage.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGImage.cpp
@@ -1,27 +1,27 @@
/*
- Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
- Copyright (C) 2006 Apple Computer, Inc.
- Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- Copyright (C) 2007, 2008, 2009 Rob Buis <buis@kde.org>
- Copyright (C) 2009, Google, Inc.
- Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
- Copyright (C) 2010 Patrick Gansterer <paroga@paroga.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 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006 Apple Computer, Inc.
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2007, 2008, 2009 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc.
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.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/Source/WebCore/rendering/RenderSVGImage.h b/Source/WebCore/rendering/svg/RenderSVGImage.h
index 485d6ab..2c91b52 100644
--- a/Source/WebCore/rendering/RenderSVGImage.h
+++ b/Source/WebCore/rendering/svg/RenderSVGImage.h
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
- Copyright (C) 2006, 2009 Apple Inc. All rights reserved.
- Copyright (C) 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2009 Google, Inc.
- Copyright (C) 2010 Patrick Gansterer <paroga@paroga.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 Alexander Kellett <lypanov@kde.org>
+ * Copyright (C) 2006, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc.
+ * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.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 RenderSVGImage_h
#define RenderSVGImage_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGInline.cpp b/Source/WebCore/rendering/svg/RenderSVGInline.cpp
index 4d0c533..543d14b 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInline.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGInline.cpp
@@ -17,7 +17,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/Source/WebCore/rendering/svg/RenderSVGInline.h b/Source/WebCore/rendering/svg/RenderSVGInline.h
index d7b7e66..33d7d13 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInline.h
+++ b/Source/WebCore/rendering/svg/RenderSVGInline.h
@@ -1,8 +1,6 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
+ * 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
@@ -18,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 RenderSVGInline_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp b/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp
index b791f3e..91ffb5c 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp
@@ -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"
diff --git a/Source/WebCore/rendering/svg/RenderSVGInlineText.h b/Source/WebCore/rendering/svg/RenderSVGInlineText.h
index 926ec43..f5247f6 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInlineText.h
+++ b/Source/WebCore/rendering/svg/RenderSVGInlineText.h
@@ -1,9 +1,7 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
* Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- * (C) 2008 Rob Buis <buis@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
@@ -19,7 +17,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 RenderSVGInlineText_h
diff --git a/Source/WebCore/rendering/RenderSVGModelObject.cpp b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
index 28760a0..28760a0 100644
--- a/Source/WebCore/rendering/RenderSVGModelObject.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
diff --git a/Source/WebCore/rendering/RenderSVGModelObject.h b/Source/WebCore/rendering/svg/RenderSVGModelObject.h
index fb8f89f..a04db96 100644
--- a/Source/WebCore/rendering/RenderSVGModelObject.h
+++ b/Source/WebCore/rendering/svg/RenderSVGModelObject.h
@@ -67,7 +67,7 @@ public:
private:
// This method should never be called, SVG uses a different nodeAtPoint method
- bool nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int xInContainer, int yInContainer, int dxParentToContainer, int dyParentToContainer, HitTestAction hitTestAction);
+ bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int xInContainer, int yInContainer, int dxParentToContainer, int dyParentToContainer, HitTestAction);
};
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGPath.cpp b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
index 0c8ac0c..1d9eca1 100644
--- a/Source/WebCore/rendering/svg/RenderSVGPath.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
@@ -1,27 +1,27 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2008 Rob Buis <buis@kde.org>
- 2005, 2007 Eric Seidel <eric@webkit.org>
- 2009 Google, Inc.
- 2009 Dirk Schulze <krit@webkit.org>
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
- 2009 Jeff Schiller <codedread@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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005, 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, Inc.
+ * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) Research In Motion Limited 2010. All rights reserved.
+ * Copyright (C) 2009 Jeff Schiller <codedread@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"
diff --git a/Source/WebCore/rendering/svg/RenderSVGPath.h b/Source/WebCore/rendering/svg/RenderSVGPath.h
index 41b0e51..c5c8377 100644
--- a/Source/WebCore/rendering/svg/RenderSVGPath.h
+++ b/Source/WebCore/rendering/svg/RenderSVGPath.h
@@ -1,25 +1,25 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005 Rob Buis <buis@kde.org>
- 2005 Eric Seidel <eric@webkit.org>
- 2006 Apple Computer, Inc
- 2009 Google, 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
- 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, 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) 2006 Apple Computer, Inc
+ * Copyright (C) 2009 Google, 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.
+ */
#ifndef RenderSVGPath_h
#define RenderSVGPath_h
diff --git a/Source/WebCore/rendering/RenderSVGResource.cpp b/Source/WebCore/rendering/svg/RenderSVGResource.cpp
index f4c65d5..c0b16c5 100644
--- a/Source/WebCore/rendering/RenderSVGResource.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResource.cpp
@@ -18,7 +18,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/Source/WebCore/rendering/RenderSVGResource.h b/Source/WebCore/rendering/svg/RenderSVGResource.h
index 6fc2dae..a67ba73 100644
--- a/Source/WebCore/rendering/RenderSVGResource.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResource.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 RenderSVGResource_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceClipper.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
index 190c1a4..c57f8b0 100644
--- a/Source/WebCore/rendering/RenderSVGResourceClipper.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@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
@@ -17,7 +17,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/Source/WebCore/rendering/RenderSVGResourceClipper.h b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h
index 20153e9..7f862a7 100644
--- a/Source/WebCore/rendering/RenderSVGResourceClipper.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.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 RenderSVGResourceClipper_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
index fb30efd..2a8a47f 100644
--- a/Source/WebCore/rendering/RenderSVGResourceContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.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"
diff --git a/Source/WebCore/rendering/RenderSVGResourceContainer.h b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
index 4e5e475..d98a83a 100644
--- a/Source/WebCore/rendering/RenderSVGResourceContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.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 RenderSVGResourceContainer_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceFilter.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
index 8aa9370..4ba4e0a 100644
--- a/Source/WebCore/rendering/RenderSVGResourceFilter.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
@@ -44,8 +44,9 @@
#include "SVGNames.h"
#include "SVGStyledElement.h"
#include "SVGUnitTypes.h"
-#include <wtf/Vector.h>
+
#include <wtf/UnusedParam.h>
+#include <wtf/Vector.h>
static const float kMaxFilterSize = 5000.0f;
diff --git a/Source/WebCore/rendering/RenderSVGResourceFilter.h b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
index 5950c44..f9a15ce 100644
--- a/Source/WebCore/rendering/RenderSVGResourceFilter.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
@@ -1,8 +1,8 @@
/*
* 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>
+ * 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) 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 RenderSVGResourceFilter_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp
index bf2ef6e..fc7362e 100644
--- a/Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp
@@ -28,6 +28,7 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "RenderSVGResourceFilterPrimitive.h"
+
#include "SVGFEImage.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.h b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
index c890ffe..f25f62e 100644
--- a/Source/WebCore/rendering/RenderSVGResourceFilterPrimitive.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
@@ -30,8 +30,8 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "RenderSVGHiddenContainer.h"
-#include "SVGFilterPrimitiveStandardAttributes.h"
#include "SVGFilter.h"
+#include "SVGFilterPrimitiveStandardAttributes.h"
namespace WebCore {
@@ -44,7 +44,7 @@ public:
}
// They depend on the RenderObject argument of RenderSVGResourceFilter::applyResource.
- static FloatRect determineFilterPrimitiveSubregion(FilterEffect* effect, SVGFilter* filter);
+ static FloatRect determineFilterPrimitiveSubregion(FilterEffect*, SVGFilter*);
private:
virtual const char* renderName() const { return "RenderSVGResourceFilterPrimitive"; }
diff --git a/Source/WebCore/rendering/RenderSVGResourceGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
index 7c383d0..5ad5d84 100644
--- a/Source/WebCore/rendering/RenderSVGResourceGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
@@ -18,7 +18,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/Source/WebCore/rendering/RenderSVGResourceGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
index 1c7f52d..ad40b53 100644
--- a/Source/WebCore/rendering/RenderSVGResourceGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
- * 2008 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2008 Eric Seidel <eric@webkit.org>
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
* This library is free software; you can redistribute it and/or
@@ -17,7 +17,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 RenderSVGResourceGradient_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceLinearGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
index ce8d69e..14dbd8c 100644
--- a/Source/WebCore/rendering/RenderSVGResourceLinearGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
@@ -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/Source/WebCore/rendering/RenderSVGResourceLinearGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h
index 9e4530d..2d35418 100644
--- a/Source/WebCore/rendering/RenderSVGResourceLinearGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.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 RenderSVGResourceLinearGradient_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceMarker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
index 1d5663b..2a68d92 100644
--- a/Source/WebCore/rendering/RenderSVGResourceMarker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * 2004, 2005, 2006, 2007, 2008 Rob Buis <buis@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
@@ -17,7 +17,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/Source/WebCore/rendering/RenderSVGResourceMarker.h b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h
index e41096e..fd3b5e3 100644
--- a/Source/WebCore/rendering/RenderSVGResourceMarker.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.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 RenderSVGResourceMarker_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceMasker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
index ebbbe93..7b24248 100644
--- a/Source/WebCore/rendering/RenderSVGResourceMasker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.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"
@@ -39,8 +38,8 @@
#include "SVGUnitTypes.h"
#include <wtf/ByteArray.h>
-#include <wtf/Vector.h>
#include <wtf/UnusedParam.h>
+#include <wtf/Vector.h>
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderSVGResourceMasker.h b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.h
index fddecd0..0a7deb1 100644
--- a/Source/WebCore/rendering/RenderSVGResourceMasker.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.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 RenderSVGResourceMasker_h
diff --git a/Source/WebCore/rendering/RenderSVGResourcePattern.cpp b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
index cd64183..330a21a 100644
--- a/Source/WebCore/rendering/RenderSVGResourcePattern.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
@@ -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/Source/WebCore/rendering/RenderSVGResourcePattern.h b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h
index ee3fb23..a697c71 100644
--- a/Source/WebCore/rendering/RenderSVGResourcePattern.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.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 RenderSVGResourcePattern_h
diff --git a/Source/WebCore/rendering/RenderSVGResourceRadialGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
index 300afcb..a8830fc 100644
--- a/Source/WebCore/rendering/RenderSVGResourceRadialGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
@@ -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/Source/WebCore/rendering/RenderSVGResourceRadialGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h
index 6492ee3..9d37d11 100644
--- a/Source/WebCore/rendering/RenderSVGResourceRadialGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.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 RenderSVGResourceRadialGradient_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp
new file mode 100644
index 0000000..9f6c063
--- /dev/null
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.cpp
@@ -0,0 +1,92 @@
+/*
+ * 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 "RenderSVGResourceSolidColor.h"
+
+#include "GraphicsContext.h"
+#include "RenderStyle.h"
+#include "SVGRenderSupport.h"
+
+#if PLATFORM(SKIA)
+#include "PlatformContextSkia.h"
+#endif
+
+namespace WebCore {
+
+RenderSVGResourceType RenderSVGResourceSolidColor::s_resourceType = SolidColorResourceType;
+
+RenderSVGResourceSolidColor::RenderSVGResourceSolidColor()
+{
+}
+
+RenderSVGResourceSolidColor::~RenderSVGResourceSolidColor()
+{
+}
+
+bool RenderSVGResourceSolidColor::applyResource(RenderObject* object, RenderStyle* style, GraphicsContext*& context, unsigned short resourceMode)
+{
+ // We are NOT allowed to ASSERT(object) here, unlike all other resources.
+ // RenderSVGResourceSolidColor is the only resource which may be used from HTML, when rendering
+ // SVG Fonts for a HTML document. This will be indicated by a null RenderObject pointer.
+ ASSERT(context);
+ ASSERT(resourceMode != ApplyToDefaultMode);
+
+ const SVGRenderStyle* svgStyle = style ? style->svgStyle() : 0;
+ ColorSpace colorSpace = style ? style->colorSpace() : ColorSpaceDeviceRGB;
+
+ if (resourceMode & ApplyToFillMode) {
+ context->setAlpha(svgStyle ? svgStyle->fillOpacity() : 1.0f);
+ context->setFillColor(m_color, colorSpace);
+ context->setFillRule(svgStyle ? svgStyle->fillRule() : RULE_NONZERO);
+
+ if (resourceMode & ApplyToTextMode)
+ context->setTextDrawingMode(TextModeFill);
+ } else if (resourceMode & ApplyToStrokeMode) {
+ context->setAlpha(svgStyle ? svgStyle->strokeOpacity() : 1.0f);
+ context->setStrokeColor(m_color, colorSpace);
+
+ if (style)
+ SVGRenderSupport::applyStrokeStyleToContext(context, style, object);
+
+ if (resourceMode & ApplyToTextMode)
+ context->setTextDrawingMode(TextModeStroke);
+ }
+
+ return true;
+}
+
+void RenderSVGResourceSolidColor::postApplyResource(RenderObject*, GraphicsContext*& context, unsigned short resourceMode, const Path* path)
+{
+ ASSERT(context);
+ ASSERT(resourceMode != ApplyToDefaultMode);
+
+ if (path && !(resourceMode & ApplyToTextMode)) {
+ if (resourceMode & ApplyToFillMode)
+ context->fillPath(*path);
+ else if (resourceMode & ApplyToStrokeMode)
+ context->strokePath(*path);
+ }
+}
+
+}
+
+#endif
diff --git a/Source/WebCore/rendering/RenderSVGResourceSolidColor.h b/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.h
index 72de3b2..02ceb31 100644
--- a/Source/WebCore/rendering/RenderSVGResourceSolidColor.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.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 RenderSVGResourceSolidColor_h
diff --git a/Source/WebCore/rendering/RenderSVGRoot.cpp b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
index 215aac7..aa87b09 100644
--- a/Source/WebCore/rendering/RenderSVGRoot.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007, 2008, 2009 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
- 2009 Google, 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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007, 2008, 2009 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, 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.
+ */
#include "config.h"
@@ -318,10 +318,10 @@ void RenderSVGRoot::updateCachedBoundaries()
m_repaintBoundingBox.inflate(borderAndPaddingWidth());
}
-bool RenderSVGRoot::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction)
+bool RenderSVGRoot::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int x, int y, int tx, int ty, HitTestAction hitTestAction)
{
- IntPoint pointInContainer(_x, _y);
- IntSize containerToParentOffset(_tx, _ty);
+ IntPoint pointInContainer(x, y);
+ IntSize containerToParentOffset(tx, ty);
IntPoint pointInParent = pointInContainer - containerToParentOffset;
IntPoint pointInBorderBox = pointInParent - parentOriginToBorderBox();
@@ -338,7 +338,7 @@ bool RenderSVGRoot::nodeAtPoint(const HitTestRequest& request, HitTestResult& re
// FIXME: CSS/HTML assumes the local point is relative to the border box, right?
updateHitTestResult(result, pointInBorderBox);
// FIXME: nodeAtFloatPoint() doesn't handle rect-based hit tests yet.
- result.addNodeToRectBasedTestResult(child->node(), _x, _y);
+ result.addNodeToRectBasedTestResult(child->node(), x, y);
return true;
}
}
diff --git a/Source/WebCore/rendering/RenderSVGRoot.h b/Source/WebCore/rendering/svg/RenderSVGRoot.h
index 1b6aa22..7aec3f8 100644
--- a/Source/WebCore/rendering/RenderSVGRoot.h
+++ b/Source/WebCore/rendering/svg/RenderSVGRoot.h
@@ -1,31 +1,32 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- Copyright (C) 2009 Google, Inc. All rights reserved.
- 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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc. All rights reserved.
+ * 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 RenderSVGRoot_h
#define RenderSVGRoot_h
#if ENABLE(SVG)
-#include "RenderBox.h"
#include "FloatRect.h"
+#include "RenderBox.h"
+
#include "SVGRenderSupport.h"
namespace WebCore {
diff --git a/Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.cpp
index 11b398a..5736333 100644
--- a/Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.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
- 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) 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/Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.h b/Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.h
index bff2a87..cee8409 100644
--- a/Source/WebCore/rendering/RenderSVGShadowTreeRootContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGShadowTreeRootContainer.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
- 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) 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 RenderSVGShadowTreeRootContainer_h
#define RenderSVGShadowTreeRootContainer_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGTSpan.cpp b/Source/WebCore/rendering/svg/RenderSVGTSpan.cpp
index 90ff36c..872d076 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTSpan.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGTSpan.cpp
@@ -2,7 +2,7 @@
* This file is part of the WebKit project.
*
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
+ * 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
@@ -18,7 +18,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/Source/WebCore/rendering/svg/RenderSVGTSpan.h b/Source/WebCore/rendering/svg/RenderSVGTSpan.h
index 97e0eb0..d5e2ed7 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTSpan.h
+++ b/Source/WebCore/rendering/svg/RenderSVGTSpan.h
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
- * (C) 2009 Google Inc.
+ * Copyright (C) 2006 Apple Computer Inc.
+ * Copyright (C) 2009 Google Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -17,7 +17,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 RenderSVGTSpan_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGText.cpp b/Source/WebCore/rendering/svg/RenderSVGText.cpp
index 01a92b0..dad0b70 100644
--- a/Source/WebCore/rendering/svg/RenderSVGText.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGText.cpp
@@ -21,7 +21,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/Source/WebCore/rendering/svg/RenderSVGText.h b/Source/WebCore/rendering/svg/RenderSVGText.h
index deae78c..188d5fc 100644
--- a/Source/WebCore/rendering/svg/RenderSVGText.h
+++ b/Source/WebCore/rendering/svg/RenderSVGText.h
@@ -17,7 +17,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 RenderSVGText_h
diff --git a/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp b/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
index 4ba2eeb..4712ddc 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
@@ -1,6 +1,4 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
*
* This library is free software; you can redistribute it and/or
@@ -17,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"
diff --git a/Source/WebCore/rendering/svg/RenderSVGTextPath.h b/Source/WebCore/rendering/svg/RenderSVGTextPath.h
index a71edf5..f1871b0 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTextPath.h
+++ b/Source/WebCore/rendering/svg/RenderSVGTextPath.h
@@ -1,6 +1,4 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
* Copyright (C) 2009 Apple Inc. All rights reserved.
*
@@ -18,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 RenderSVGTextPath_h
diff --git a/Source/WebCore/rendering/RenderSVGTransformableContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp
index 3c91170..23aaa89 100644
--- a/Source/WebCore/rendering/RenderSVGTransformableContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp
@@ -1,22 +1,22 @@
/*
- Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2006 Rob Buis <buis@kde.org>
- 2009 Google, 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 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, 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.
*/
#include "config.h"
@@ -50,7 +50,7 @@ bool RenderSVGTransformableContainer::calculateLocalTransform()
return needsUpdate;
FloatSize translation = static_cast<SVGShadowTreeContainerElement*>(element)->containerTranslation();
- if (translation.width() == 0 && translation.height() == 0)
+ if (!translation.width() && !translation.height())
return needsUpdate;
// FIXME: Could optimize this case for use to avoid refetching the animatedLocalTransform() here, if only the containerTranslation() changed.
diff --git a/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h
new file mode 100644
index 0000000..401bfa8
--- /dev/null
+++ b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, 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.
+ */
+
+#ifndef RenderSVGTransformableContainer_h
+#define RenderSVGTransformableContainer_h
+
+#if ENABLE(SVG)
+#include "RenderSVGContainer.h"
+
+namespace WebCore {
+
+class SVGStyledTransformableElement;
+class RenderSVGTransformableContainer : public RenderSVGContainer {
+public:
+ explicit RenderSVGTransformableContainer(SVGStyledTransformableElement*);
+
+ virtual const AffineTransform& localToParentTransform() const { return m_localTransform; }
+ virtual void setNeedsTransformUpdate() { m_needsTransformUpdate = true; }
+
+private:
+ virtual bool calculateLocalTransform();
+ virtual AffineTransform localTransform() const { return m_localTransform; }
+
+ bool m_needsTransformUpdate : 1;
+ AffineTransform m_localTransform;
+};
+}
+
+#endif // ENABLE(SVG)
+#endif // RenderSVGTransformableContainer_h
diff --git a/Source/WebCore/rendering/RenderSVGViewportContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
index 8031328..7f4b6f7 100644
--- a/Source/WebCore/rendering/RenderSVGViewportContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
@@ -1,25 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- 2007 Eric Seidel <eric@webkit.org>
- 2009 Google, Inc.
- 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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, 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.
+ */
#include "config.h"
diff --git a/Source/WebCore/rendering/RenderSVGViewportContainer.h b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
index 5373ca8..66037e6 100644
--- a/Source/WebCore/rendering/RenderSVGViewportContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
@@ -1,24 +1,24 @@
/*
- Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2007 Rob Buis <buis@kde.org>
- 2009 Google, Inc.
- 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
- 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, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
+ * Copyright (C) 2009 Google, Inc.
+ * 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 RenderSVGViewportContainer_h
#define RenderSVGViewportContainer_h
diff --git a/Source/WebCore/rendering/SVGImageBufferTools.cpp b/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp
index 2dc0a6f..f0657af 100644
--- a/Source/WebCore/rendering/SVGImageBufferTools.cpp
+++ b/Source/WebCore/rendering/svg/SVGImageBufferTools.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/Source/WebCore/rendering/SVGImageBufferTools.h b/Source/WebCore/rendering/svg/SVGImageBufferTools.h
index 9bcc7a4..cfb15b2 100644
--- a/Source/WebCore/rendering/SVGImageBufferTools.h
+++ b/Source/WebCore/rendering/svg/SVGImageBufferTools.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
- 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) 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 SVGImageBufferTools_h
#define SVGImageBufferTools_h
diff --git a/Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp b/Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp
index ea806c7..10735f6 100644
--- a/Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp
+++ b/Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2006 Apple Computer Inc.
+ * 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
@@ -18,7 +18,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/Source/WebCore/rendering/svg/SVGInlineFlowBox.h b/Source/WebCore/rendering/svg/SVGInlineFlowBox.h
index 2358f2d..0e56c9f 100644
--- a/Source/WebCore/rendering/svg/SVGInlineFlowBox.h
+++ b/Source/WebCore/rendering/svg/SVGInlineFlowBox.h
@@ -1,8 +1,6 @@
/*
- * This file is part of the WebKit project.
- *
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
+ * 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
@@ -18,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 SVGInlineFlowBox_h
diff --git a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp
index 5d0278b..f370310 100644
--- a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp
+++ b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp
@@ -1,6 +1,6 @@
/**
* Copyright (C) 2007 Rob Buis <buis@kde.org>
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.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
@@ -17,7 +17,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/Source/WebCore/rendering/svg/SVGInlineTextBox.h b/Source/WebCore/rendering/svg/SVGInlineTextBox.h
index acc5e9f..0458de0 100644
--- a/Source/WebCore/rendering/svg/SVGInlineTextBox.h
+++ b/Source/WebCore/rendering/svg/SVGInlineTextBox.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2007 Rob Buis <buis@kde.org>
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.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
@@ -17,7 +17,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 SVGInlineTextBox_h
diff --git a/Source/WebCore/rendering/SVGMarkerData.h b/Source/WebCore/rendering/svg/SVGMarkerData.h
index ba11e7e..57c35cd 100644
--- a/Source/WebCore/rendering/SVGMarkerData.h
+++ b/Source/WebCore/rendering/svg/SVGMarkerData.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
- 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) 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 SVGMarkerData_h
#define SVGMarkerData_h
diff --git a/Source/WebCore/rendering/SVGMarkerLayoutInfo.cpp b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp
index aed756a..dea5a0c 100644
--- a/Source/WebCore/rendering/SVGMarkerLayoutInfo.cpp
+++ b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.cpp
@@ -1,25 +1,25 @@
/*
- Copyright (C) Research In Motion Limited 2010. All rights reserved.
- 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- 2004, 2005, 2008 Rob Buis <buis@kde.org>
- 2005, 2007 Eric Seidel <eric@webkit.org>
- 2009 Google, 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
- 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) Research In Motion Limited 2010. All rights reserved.
+ * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
+ * Copyright (C) 2005, 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, 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.
+ */
#include "config.h"
diff --git a/Source/WebCore/rendering/SVGMarkerLayoutInfo.h b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.h
index 8f59703..0eb3689 100644
--- a/Source/WebCore/rendering/SVGMarkerLayoutInfo.h
+++ b/Source/WebCore/rendering/svg/SVGMarkerLayoutInfo.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
- 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) 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 SVGMarkerLayoutInfo_h
#define SVGMarkerLayoutInfo_h
diff --git a/Source/WebCore/rendering/SVGRenderSupport.cpp b/Source/WebCore/rendering/svg/SVGRenderSupport.cpp
index cbde49b..bfc74f0 100644
--- a/Source/WebCore/rendering/SVGRenderSupport.cpp
+++ b/Source/WebCore/rendering/svg/SVGRenderSupport.cpp
@@ -1,9 +1,9 @@
/*
* Copyright (C) 2007, 2008 Rob Buis <buis@kde.org>
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- * (C) 2007 Eric Seidel <eric@webkit.org>
- * (C) 2009 Google, Inc. All rights reserved.
- * (C) 2009 Dirk Schulze <krit@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2009 Google, Inc. All rights reserved.
+ * 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
@@ -20,7 +20,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/Source/WebCore/rendering/SVGRenderSupport.h b/Source/WebCore/rendering/svg/SVGRenderSupport.h
index 7814863..9e6aa5c 100644
--- a/Source/WebCore/rendering/SVGRenderSupport.h
+++ b/Source/WebCore/rendering/svg/SVGRenderSupport.h
@@ -1,7 +1,7 @@
/**
* Copyright (C) 2007 Rob Buis <buis@kde.org>
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
- * (C) 2007 Eric Seidel <eric@webkit.org>
+ * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
* Copyright (C) 2009 Google, Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2010. All rights reserved.
*
@@ -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 SVGRenderSupport_h
@@ -59,7 +58,7 @@ public:
static bool pointInClippingArea(RenderObject*, const FloatPoint&);
static void computeContainerBoundingBoxes(const RenderObject* container, FloatRect& objectBoundingBox, FloatRect& strokeBoundingBox, FloatRect& repaintBoundingBox);
- static bool paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect, const AffineTransform& localTransform, const PaintInfo& paintInfo);
+ static bool paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect, const AffineTransform& localTransform, const PaintInfo&);
// Important functions used by nearly all SVG renderers centralizing coordinate transformations / repaint rect calculations
static IntRect clippedOverflowRectForRepaint(RenderObject*, RenderBoxModelObject* repaintContainer);
@@ -70,7 +69,7 @@ public:
static void applyStrokeStyleToContext(GraphicsContext*, const RenderStyle*, const RenderObject*);
// FIXME: These methods do not belong here.
- static const RenderSVGRoot* findTreeRootObject(const RenderObject* start);
+ static const RenderSVGRoot* findTreeRootObject(const RenderObject*);
private:
// This class is not constructable.
diff --git a/Source/WebCore/rendering/SVGRenderTreeAsText.cpp b/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
index ea843c2..97e15af 100644
--- a/Source/WebCore/rendering/SVGRenderTreeAsText.cpp
+++ b/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
@@ -243,15 +243,15 @@ static TextStream& operator<<(TextStream& ts, const DashArray& a)
static TextStream& operator<<(TextStream& ts, LineCap style)
{
switch (style) {
- case ButtCap:
- ts << "BUTT";
- break;
- case RoundCap:
- ts << "ROUND";
- break;
- case SquareCap:
- ts << "SQUARE";
- break;
+ case ButtCap:
+ ts << "BUTT";
+ break;
+ case RoundCap:
+ ts << "ROUND";
+ break;
+ case SquareCap:
+ ts << "SQUARE";
+ break;
}
return ts;
}
@@ -260,15 +260,15 @@ static TextStream& operator<<(TextStream& ts, LineCap style)
static TextStream& operator<<(TextStream& ts, LineJoin style)
{
switch (style) {
- case MiterJoin:
- ts << "MITER";
- break;
- case RoundJoin:
- ts << "ROUND";
- break;
- case BevelJoin:
- ts << "BEVEL";
- break;
+ case MiterJoin:
+ ts << "MITER";
+ break;
+ case RoundJoin:
+ ts << "ROUND";
+ break;
+ case BevelJoin:
+ ts << "BEVEL";
+ break;
}
return ts;
}
diff --git a/Source/WebCore/rendering/SVGRenderTreeAsText.h b/Source/WebCore/rendering/svg/SVGRenderTreeAsText.h
index 4e9ba5d..ce07a5c 100644
--- a/Source/WebCore/rendering/SVGRenderTreeAsText.h
+++ b/Source/WebCore/rendering/svg/SVGRenderTreeAsText.h
@@ -32,20 +32,20 @@
namespace WebCore {
- class Color;
- class FloatRect;
- class FloatSize;
- class Node;
- class RenderBlock;
- class RenderImage;
- class RenderObject;
- class RenderSVGGradientStop;
- class RenderSVGImage;
- class RenderSVGPath;
- class RenderSVGRoot;
- class RenderText;
- class AffineTransform;
- class SVGUnitTypes;
+class Color;
+class FloatRect;
+class FloatSize;
+class Node;
+class RenderBlock;
+class RenderImage;
+class RenderObject;
+class RenderSVGGradientStop;
+class RenderSVGImage;
+class RenderSVGPath;
+class RenderSVGRoot;
+class RenderText;
+class AffineTransform;
+class SVGUnitTypes;
// functions used by the main RenderTreeAsText code
void write(TextStream&, const RenderSVGPath&, int indent);
diff --git a/Source/WebCore/rendering/SVGResources.cpp b/Source/WebCore/rendering/svg/SVGResources.cpp
index e162f83..9a2c999 100644
--- a/Source/WebCore/rendering/SVGResources.cpp
+++ b/Source/WebCore/rendering/svg/SVGResources.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
- 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) 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"
#include "SVGResources.h"
diff --git a/Source/WebCore/rendering/SVGResources.h b/Source/WebCore/rendering/svg/SVGResources.h
index 49591cf..dd328b8 100644
--- a/Source/WebCore/rendering/SVGResources.h
+++ b/Source/WebCore/rendering/svg/SVGResources.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
- 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) 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 SVGResources_h
#define SVGResources_h
diff --git a/Source/WebCore/rendering/SVGResourcesCache.cpp b/Source/WebCore/rendering/svg/SVGResourcesCache.cpp
index 88cbb3a..886f76a 100644
--- a/Source/WebCore/rendering/SVGResourcesCache.cpp
+++ b/Source/WebCore/rendering/svg/SVGResourcesCache.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
- 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) 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"
#include "SVGResourcesCache.h"
diff --git a/Source/WebCore/rendering/SVGResourcesCache.h b/Source/WebCore/rendering/svg/SVGResourcesCache.h
index 4a61570..30eaeca 100644
--- a/Source/WebCore/rendering/SVGResourcesCache.h
+++ b/Source/WebCore/rendering/svg/SVGResourcesCache.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
- 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) 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 SVGResourcesCache_h
#define SVGResourcesCache_h
diff --git a/Source/WebCore/rendering/SVGResourcesCycleSolver.cpp b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.cpp
index 8cd2e80..fa91e80 100644
--- a/Source/WebCore/rendering/SVGResourcesCycleSolver.cpp
+++ b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.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
- 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) 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"
#include "SVGResourcesCycleSolver.h"
diff --git a/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h
new file mode 100644
index 0000000..0653304
--- /dev/null
+++ b/Source/WebCore/rendering/svg/SVGResourcesCycleSolver.h
@@ -0,0 +1,51 @@
+/*
+ * 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 SVGResourcesCycleSolver_h
+#define SVGResourcesCycleSolver_h
+
+#if ENABLE(SVG)
+#include <wtf/HashSet.h>
+
+namespace WebCore {
+
+class RenderObject;
+class RenderSVGResourceContainer;
+class SVGResources;
+
+class SVGResourcesCycleSolver : public Noncopyable {
+public:
+ SVGResourcesCycleSolver(RenderObject*, SVGResources*);
+ ~SVGResourcesCycleSolver();
+
+ void resolveCycles();
+
+private:
+ bool resourceContainsCycles(RenderObject*) const;
+ void breakCycle(RenderSVGResourceContainer*);
+
+ RenderObject* m_renderer;
+ SVGResources* m_resources;
+ HashSet<RenderSVGResourceContainer*> m_allResources;
+};
+
+}
+
+#endif
+#endif
diff --git a/Source/WebCore/rendering/svg/SVGRootInlineBox.cpp b/Source/WebCore/rendering/svg/SVGRootInlineBox.cpp
index 49c76de..c2289d6 100644
--- a/Source/WebCore/rendering/svg/SVGRootInlineBox.cpp
+++ b/Source/WebCore/rendering/svg/SVGRootInlineBox.cpp
@@ -18,7 +18,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/Source/WebCore/rendering/svg/SVGRootInlineBox.h b/Source/WebCore/rendering/svg/SVGRootInlineBox.h
index 418c289..2e073c9 100644
--- a/Source/WebCore/rendering/svg/SVGRootInlineBox.h
+++ b/Source/WebCore/rendering/svg/SVGRootInlineBox.h
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz>
- * (C) 2006 Apple Computer Inc.
- * (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2006 Apple Computer Inc.
+ * 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
@@ -18,7 +18,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 SVGRootInlineBox_h
diff --git a/Source/WebCore/rendering/SVGShadowTreeElements.cpp b/Source/WebCore/rendering/svg/SVGShadowTreeElements.cpp
index 7c5e1a9..2d84c48 100644
--- a/Source/WebCore/rendering/SVGShadowTreeElements.cpp
+++ b/Source/WebCore/rendering/svg/SVGShadowTreeElements.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
- 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) 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/Source/WebCore/rendering/SVGShadowTreeElements.h b/Source/WebCore/rendering/svg/SVGShadowTreeElements.h
index fe25678..3406f95 100644
--- a/Source/WebCore/rendering/SVGShadowTreeElements.h
+++ b/Source/WebCore/rendering/svg/SVGShadowTreeElements.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
- 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) 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 SVGShadowTreeElements_h
#define SVGShadowTreeElements_h
diff --git a/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp b/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp
index 7060ac6..3863322 100644
--- a/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp
+++ b/Source/WebCore/rendering/svg/SVGTextLayoutEngineBaseline.cpp
@@ -154,8 +154,7 @@ float SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle(bool isVertica
ASSERT(style);
switch (isVerticalText ? style->glyphOrientationVertical() : style->glyphOrientationHorizontal()) {
- case GO_AUTO:
- {
+ case GO_AUTO: {
// Spec: Fullwidth ideographic and fullwidth Latin text will be set with a glyph-orientation of 0-degrees.
// Text which is not fullwidth will be set with a glyph-orientation of 90-degrees.
unsigned int unicodeRange = findCharUnicodeRange(character);
diff --git a/Source/WebCore/rendering/svg/SVGTextQuery.cpp b/Source/WebCore/rendering/svg/SVGTextQuery.cpp
index fcc7924..42d511b 100644
--- a/Source/WebCore/rendering/svg/SVGTextQuery.cpp
+++ b/Source/WebCore/rendering/svg/SVGTextQuery.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"
#include "SVGTextQuery.h"
diff --git a/Source/WebCore/rendering/svg/SVGTextQuery.h b/Source/WebCore/rendering/svg/SVGTextQuery.h
index 9a671f4..331dd94 100644
--- a/Source/WebCore/rendering/svg/SVGTextQuery.h
+++ b/Source/WebCore/rendering/svg/SVGTextQuery.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 SVGTextQuery_h
#define SVGTextQuery_h
diff --git a/Source/WebCore/storage/Database.cpp b/Source/WebCore/storage/Database.cpp
index 920f75b..8ef780e 100644
--- a/Source/WebCore/storage/Database.cpp
+++ b/Source/WebCore/storage/Database.cpp
@@ -36,7 +36,7 @@
#include "DatabaseThread.h"
#include "DatabaseTracker.h"
#include "Document.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "Logging.h"
#include "NotImplemented.h"
#include "Page.h"
@@ -106,13 +106,8 @@ PassRefPtr<Database> Database::openDatabase(ScriptExecutionContext* context, con
DatabaseTracker::tracker().setDatabaseDetails(context->securityOrigin(), name, displayName, estimatedSize);
context->setHasOpenDatabases();
-#if ENABLE(INSPECTOR)
- if (context->isDocument()) {
- Document* document = static_cast<Document*>(context);
- if (Page* page = document->page())
- page->inspectorController()->didOpenDatabase(database, context->securityOrigin()->host(), name, expectedVersion);
- }
-#endif
+
+ InspectorInstrumentation::didOpenDatabase(context, database.get(), context->securityOrigin()->host(), name, expectedVersion);
// If it's a new database and a creation callback was provided, reset the expected
// version to "" and schedule the creation callback. Because of some subtle String
diff --git a/Source/WebCore/storage/IDBCursorBackendImpl.cpp b/Source/WebCore/storage/IDBCursorBackendImpl.cpp
index 9b4e4f1..d75e28d 100644
--- a/Source/WebCore/storage/IDBCursorBackendImpl.cpp
+++ b/Source/WebCore/storage/IDBCursorBackendImpl.cpp
@@ -166,12 +166,6 @@ void IDBCursorBackendImpl::deleteFunction(PassRefPtr<IDBCallbacks> prpCallbacks,
return;
}
- // FIXME: Check that the transaction is READ_WRITE
- // if (m_transaction->mode() == IDBTransaction::READ_ONLY) {
- // FIXME: We must return READ_ONLY_ERR here. Fix this when we update IDBDatabaseException to match the spec.
- // ec = IDBDatabaseException::NOT_ALLOWED_ERR;
- // return;
- // }
RefPtr<IDBKey> key = m_currentIDBKeyValue ? m_currentIDBKeyValue : m_currentKey;
m_objectStore->deleteFunction(key.release(), prpCallbacks, m_transaction.get(), ec);
}
diff --git a/Source/WebCore/storage/IDBDatabase.idl b/Source/WebCore/storage/IDBDatabase.idl
index c6edd48..7eb43e9 100644
--- a/Source/WebCore/storage/IDBDatabase.idl
+++ b/Source/WebCore/storage/IDBDatabase.idl
@@ -38,7 +38,7 @@ module storage {
raises (IDBDatabaseException);
[CallWith=ScriptExecutionContext] IDBRequest setVersion(in DOMString version)
raises (IDBDatabaseException);
- [CallWith=ScriptExecutionContext] IDBTransaction transaction (in [Optional] OptionsObject optionsObject)
+ [CallWith=ScriptExecutionContext] IDBTransaction transaction(in [Optional] OptionsObject optionsObject)
raises (IDBDatabaseException);
// FIXME: Implement.
//void close();
diff --git a/Source/WebCore/storage/IDBDatabaseException.h b/Source/WebCore/storage/IDBDatabaseException.h
index 936b05a..174fe5b 100644
--- a/Source/WebCore/storage/IDBDatabaseException.h
+++ b/Source/WebCore/storage/IDBDatabaseException.h
@@ -53,7 +53,8 @@ public:
RECOVERABLE_ERR = IDBDatabaseExceptionOffset + 8,
TRANSIENT_ERR = IDBDatabaseExceptionOffset + 9,
TIMEOUT_ERR = IDBDatabaseExceptionOffset + 10,
- DEADLOCK_ERR = IDBDatabaseExceptionOffset + 11
+ DEADLOCK_ERR = IDBDatabaseExceptionOffset + 11,
+ READ_ONLY_ERR = IDBDatabaseExceptionOffset + 12
};
static int ErrorCodeToExceptionCode(int errorCode)
diff --git a/Source/WebCore/storage/IDBDatabaseException.idl b/Source/WebCore/storage/IDBDatabaseException.idl
index a56f4c7..9027e05 100644
--- a/Source/WebCore/storage/IDBDatabaseException.idl
+++ b/Source/WebCore/storage/IDBDatabaseException.idl
@@ -50,6 +50,7 @@ module storage {
const unsigned short TRANSIENT_ERR = 9;
const unsigned short TIMEOUT_ERR = 10;
const unsigned short DEADLOCK_ERR = 11;
+ const unsigned short READ_ONLY_ERR = 12;
};
}
diff --git a/Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp b/Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp
index 22d3b8d..396f544 100644
--- a/Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp
+++ b/Source/WebCore/storage/IDBObjectStoreBackendImpl.cpp
@@ -179,6 +179,11 @@ static bool putIndexData(SQLiteDatabase& db, IDBKey* key, int64_t indexId, int64
void IDBObjectStoreBackendImpl::put(PassRefPtr<SerializedScriptValue> prpValue, PassRefPtr<IDBKey> prpKey, bool addOnly, PassRefPtr<IDBCallbacks> prpCallbacks, IDBTransactionBackendInterface* transactionPtr, ExceptionCode& ec)
{
+ if (transactionPtr->mode() == IDBTransaction::READ_ONLY) {
+ ec = IDBDatabaseException::READ_ONLY_ERR;
+ return;
+ }
+
RefPtr<IDBObjectStoreBackendImpl> objectStore = this;
RefPtr<SerializedScriptValue> value = prpValue;
RefPtr<IDBKey> key = prpKey;
@@ -277,9 +282,15 @@ void IDBObjectStoreBackendImpl::putInternal(ScriptExecutionContext*, PassRefPtr<
void IDBObjectStoreBackendImpl::deleteFunction(PassRefPtr<IDBKey> prpKey, PassRefPtr<IDBCallbacks> prpCallbacks, IDBTransactionBackendInterface* transaction, ExceptionCode& ec)
{
+ if (transaction->mode() == IDBTransaction::READ_ONLY) {
+ ec = IDBDatabaseException::READ_ONLY_ERR;
+ return;
+ }
+
RefPtr<IDBObjectStoreBackendImpl> objectStore = this;
RefPtr<IDBKey> key = prpKey;
RefPtr<IDBCallbacks> callbacks = prpCallbacks;
+
if (!transaction->scheduleTask(createCallbackTask(&IDBObjectStoreBackendImpl::deleteInternal, objectStore, key, callbacks)))
ec = IDBDatabaseException::NOT_ALLOWED_ERR;
}
@@ -386,6 +397,11 @@ static void doDelete(SQLiteDatabase& db, const char* sql, int64_t id)
void IDBObjectStoreBackendImpl::deleteIndex(const String& name, IDBTransactionBackendInterface* transaction, ExceptionCode& ec)
{
+ if (transaction->mode() != IDBTransaction::VERSION_CHANGE) {
+ ec = IDBDatabaseException::NOT_ALLOWED_ERR;
+ return;
+ }
+
RefPtr<IDBIndexBackendImpl> index = m_indexes.get(name);
if (!index) {
ec = IDBDatabaseException::NOT_FOUND_ERR;
diff --git a/Source/WebCore/svg/SVGElement.cpp b/Source/WebCore/svg/SVGElement.cpp
index 1f5b0fa..c9efae8 100644
--- a/Source/WebCore/svg/SVGElement.cpp
+++ b/Source/WebCore/svg/SVGElement.cpp
@@ -38,6 +38,7 @@
#include "RegisteredEventListener.h"
#include "RenderObject.h"
#include "SVGCursorElement.h"
+#include "SVGDocumentExtensions.h"
#include "SVGElementInstance.h"
#include "SVGElementRareData.h"
#include "SVGNames.h"
diff --git a/Source/WebCore/svg/SVGElement.h b/Source/WebCore/svg/SVGElement.h
index d961c73..2c87f6e 100644
--- a/Source/WebCore/svg/SVGElement.h
+++ b/Source/WebCore/svg/SVGElement.h
@@ -23,7 +23,6 @@
#define SVGElement_h
#if ENABLE(SVG)
-#include "SVGDocumentExtensions.h"
#include "SVGLocatable.h"
#include "StyledElement.h"
@@ -32,6 +31,7 @@ namespace WebCore {
class CSSCursorImageValue;
class Document;
class SVGCursorElement;
+class SVGDocumentExtensions;
class SVGElementInstance;
class SVGElementRareData;
class SVGSVGElement;
diff --git a/Source/WebCore/svg/SVGFEBlendElement.cpp b/Source/WebCore/svg/SVGFEBlendElement.cpp
index 86299fe..4128232 100644
--- a/Source/WebCore/svg/SVGFEBlendElement.cpp
+++ b/Source/WebCore/svg/SVGFEBlendElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFEBlendElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFEColorMatrixElement.cpp b/Source/WebCore/svg/SVGFEColorMatrixElement.cpp
index 79716fb..4c7ac0b 100644
--- a/Source/WebCore/svg/SVGFEColorMatrixElement.cpp
+++ b/Source/WebCore/svg/SVGFEColorMatrixElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFEColorMatrixElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFEComponentTransferElement.cpp b/Source/WebCore/svg/SVGFEComponentTransferElement.cpp
index 0fa98a4..243f856 100644
--- a/Source/WebCore/svg/SVGFEComponentTransferElement.cpp
+++ b/Source/WebCore/svg/SVGFEComponentTransferElement.cpp
@@ -24,10 +24,12 @@
#include "SVGFEComponentTransferElement.h"
#include "Attr.h"
+#include "FilterEffect.h"
#include "SVGFEFuncAElement.h"
#include "SVGFEFuncBElement.h"
#include "SVGFEFuncGElement.h"
#include "SVGFEFuncRElement.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFECompositeElement.cpp b/Source/WebCore/svg/SVGFECompositeElement.cpp
index 1433a78..4c83d4f 100644
--- a/Source/WebCore/svg/SVGFECompositeElement.cpp
+++ b/Source/WebCore/svg/SVGFECompositeElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFECompositeElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp b/Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
index 373d508..301e351 100644
--- a/Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
+++ b/Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
@@ -23,9 +23,11 @@
#include "SVGFEConvolveMatrixElement.h"
#include "Attr.h"
+#include "FilterEffect.h"
#include "FloatPoint.h"
#include "IntPoint.h"
#include "IntSize.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
diff --git a/Source/WebCore/svg/SVGFEConvolveMatrixElement.h b/Source/WebCore/svg/SVGFEConvolveMatrixElement.h
index 21826ec..87709ab 100644
--- a/Source/WebCore/svg/SVGFEConvolveMatrixElement.h
+++ b/Source/WebCore/svg/SVGFEConvolveMatrixElement.h
@@ -22,7 +22,9 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "FEConvolveMatrix.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedEnumeration.h"
+#include "SVGAnimatedInteger.h"
#include "SVGAnimatedNumber.h"
#include "SVGAnimatedNumberList.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
diff --git a/Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp b/Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp
index 873b831..49888da 100644
--- a/Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp
+++ b/Source/WebCore/svg/SVGFEDiffuseLightingElement.cpp
@@ -24,9 +24,11 @@
#include "Attr.h"
#include "FEDiffuseLighting.h"
+#include "FilterEffect.h"
#include "RenderStyle.h"
#include "SVGColor.h"
#include "SVGFELightElement.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
diff --git a/Source/WebCore/svg/SVGFEDisplacementMapElement.cpp b/Source/WebCore/svg/SVGFEDisplacementMapElement.cpp
index a363b3a..56315b6 100644
--- a/Source/WebCore/svg/SVGFEDisplacementMapElement.cpp
+++ b/Source/WebCore/svg/SVGFEDisplacementMapElement.cpp
@@ -23,6 +23,8 @@
#include "SVGFEDisplacementMapElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFEGaussianBlurElement.cpp b/Source/WebCore/svg/SVGFEGaussianBlurElement.cpp
index 43b6fd6..03368ac 100644
--- a/Source/WebCore/svg/SVGFEGaussianBlurElement.cpp
+++ b/Source/WebCore/svg/SVGFEGaussianBlurElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFEGaussianBlurElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
diff --git a/Source/WebCore/svg/SVGFEImageElement.h b/Source/WebCore/svg/SVGFEImageElement.h
index 64d95dc..3f22805 100644
--- a/Source/WebCore/svg/SVGFEImageElement.h
+++ b/Source/WebCore/svg/SVGFEImageElement.h
@@ -25,6 +25,7 @@
#include "CachedResourceClient.h"
#include "CachedResourceHandle.h"
#include "ImageBuffer.h"
+#include "SVGAnimatedBoolean.h"
#include "SVGAnimatedPreserveAspectRatio.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFEImage.h"
diff --git a/Source/WebCore/svg/SVGFEMergeElement.cpp b/Source/WebCore/svg/SVGFEMergeElement.cpp
index 92f2346..8b1c753 100644
--- a/Source/WebCore/svg/SVGFEMergeElement.cpp
+++ b/Source/WebCore/svg/SVGFEMergeElement.cpp
@@ -23,7 +23,9 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "SVGFEMergeElement.h"
+#include "FilterEffect.h"
#include "SVGFEMergeNodeElement.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFEMorphologyElement.cpp b/Source/WebCore/svg/SVGFEMorphologyElement.cpp
index 282c495..caf8e7b 100644
--- a/Source/WebCore/svg/SVGFEMorphologyElement.cpp
+++ b/Source/WebCore/svg/SVGFEMorphologyElement.cpp
@@ -23,6 +23,8 @@
#include "SVGFEMorphologyElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
diff --git a/Source/WebCore/svg/SVGFEOffsetElement.cpp b/Source/WebCore/svg/SVGFEOffsetElement.cpp
index d41e6db..2bd8aee 100644
--- a/Source/WebCore/svg/SVGFEOffsetElement.cpp
+++ b/Source/WebCore/svg/SVGFEOffsetElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFEOffsetElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/SVGFESpecularLightingElement.cpp b/Source/WebCore/svg/SVGFESpecularLightingElement.cpp
index 806d0cd..9298b3c 100644
--- a/Source/WebCore/svg/SVGFESpecularLightingElement.cpp
+++ b/Source/WebCore/svg/SVGFESpecularLightingElement.cpp
@@ -25,9 +25,11 @@
#include "SVGFESpecularLightingElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
#include "RenderStyle.h"
#include "SVGColor.h"
#include "SVGFELightElement.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
diff --git a/Source/WebCore/svg/SVGFETileElement.cpp b/Source/WebCore/svg/SVGFETileElement.cpp
index e981482..6fc19e6 100644
--- a/Source/WebCore/svg/SVGFETileElement.cpp
+++ b/Source/WebCore/svg/SVGFETileElement.cpp
@@ -24,6 +24,8 @@
#include "SVGFETileElement.h"
#include "Attribute.h"
+#include "FilterEffect.h"
+#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGRenderStyle.h"
diff --git a/Source/WebCore/svg/SVGFETurbulenceElement.h b/Source/WebCore/svg/SVGFETurbulenceElement.h
index 5e436f4..f9d86cb 100644
--- a/Source/WebCore/svg/SVGFETurbulenceElement.h
+++ b/Source/WebCore/svg/SVGFETurbulenceElement.h
@@ -24,6 +24,7 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "FETurbulence.h"
#include "SVGAnimatedEnumeration.h"
+#include "SVGAnimatedInteger.h"
#include "SVGAnimatedNumber.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
diff --git a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
index bd717ea..00f99c5 100644
--- a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
+++ b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
@@ -27,6 +27,7 @@
#include "Attribute.h"
#include "FilterEffect.h"
#include "RenderSVGResourceFilterPrimitive.h"
+#include "SVGFilterBuilder.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include "SVGStyledElement.h"
diff --git a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index b13084b..34e19ea 100644
--- a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -22,11 +22,9 @@
#define SVGFilterPrimitiveStandardAttributes_h
#if ENABLE(SVG) && ENABLE(FILTERS)
-#include "FilterEffect.h"
#include "RenderSVGResource.h"
#include "SVGAnimatedLength.h"
-#include "SVGFilterBuilder.h"
-#include "SVGFilterElement.h"
+#include "SVGAnimatedString.h"
#include "SVGStyledElement.h"
#include <wtf/PassRefPtr.h>
@@ -34,6 +32,10 @@
namespace WebCore {
+class Filter;
+class FilterEffect;
+class SVGFilterBuilder;
+
class SVGFilterPrimitiveStandardAttributes : public SVGStyledElement {
public:
void setStandardAttributes(bool, FilterEffect*) const;
diff --git a/Source/WebCore/svg/SVGForeignObjectElement.cpp b/Source/WebCore/svg/SVGForeignObjectElement.cpp
index c2fcecb..6b5cd41 100644
--- a/Source/WebCore/svg/SVGForeignObjectElement.cpp
+++ b/Source/WebCore/svg/SVGForeignObjectElement.cpp
@@ -25,7 +25,7 @@
#include "Attribute.h"
#include "CSSPropertyNames.h"
-#include "RenderForeignObject.h"
+#include "RenderSVGForeignObject.h"
#include "RenderSVGResource.h"
#include "SVGLength.h"
#include "SVGNames.h"
@@ -139,7 +139,7 @@ void SVGForeignObjectElement::synchronizeProperty(const QualifiedName& attrName)
RenderObject* SVGForeignObjectElement::createRenderer(RenderArena* arena, RenderStyle*)
{
- return new (arena) RenderForeignObject(this);
+ return new (arena) RenderSVGForeignObject(this);
}
bool SVGForeignObjectElement::childShouldCreateRenderer(Node* child) const
diff --git a/Source/WebCore/svg/SVGTextContentElement.cpp b/Source/WebCore/svg/SVGTextContentElement.cpp
index de75f5b..f723ecc 100644
--- a/Source/WebCore/svg/SVGTextContentElement.cpp
+++ b/Source/WebCore/svg/SVGTextContentElement.cpp
@@ -27,6 +27,7 @@
#include "CSSValueKeywords.h"
#include "Frame.h"
#include "RenderObject.h"
+#include "SVGDocumentExtensions.h"
#include "SVGNames.h"
#include "SVGTextQuery.h"
#include "SelectionController.h"
diff --git a/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp b/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp
index 6ed305e..d6d6f99 100644
--- a/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp
+++ b/Source/WebCore/svg/graphics/filters/SVGFEImage.cpp
@@ -28,7 +28,9 @@
#include "AffineTransform.h"
#include "Filter.h"
#include "GraphicsContext.h"
+#include "RenderTreeAsText.h"
#include "SVGPreserveAspectRatio.h"
+#include "TextStream.h"
namespace WebCore {
diff --git a/Source/WebCore/svg/graphics/filters/SVGFEImage.h b/Source/WebCore/svg/graphics/filters/SVGFEImage.h
index 9ac5527..a5383cc 100644
--- a/Source/WebCore/svg/graphics/filters/SVGFEImage.h
+++ b/Source/WebCore/svg/graphics/filters/SVGFEImage.h
@@ -29,6 +29,8 @@
namespace WebCore {
+class Image;
+
class FEImage : public FilterEffect {
public:
static PassRefPtr<FEImage> create(Filter*, RefPtr<Image>, const SVGPreserveAspectRatio&);
diff --git a/Source/WebCore/websockets/WebSocketHandshake.cpp b/Source/WebCore/websockets/WebSocketHandshake.cpp
index 5049098..9506ad4 100644
--- a/Source/WebCore/websockets/WebSocketHandshake.cpp
+++ b/Source/WebCore/websockets/WebSocketHandshake.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) Research In Motion Limited 2011. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -427,6 +428,10 @@ KURL WebSocketHandshake::httpURLForAuthenticationAndCookies() const
// statusCode and statusText will be set to -1 and a null string, respectively.
int WebSocketHandshake::readStatusLine(const char* header, size_t headerLength, int& statusCode, String& statusText)
{
+ // Arbitrary size limit to prevent the server from sending an unbounded
+ // amount of data with no newlines and forcing us to buffer it all.
+ static const int maximumLength = 1024;
+
statusCode = -1;
statusText = String();
@@ -441,6 +446,12 @@ int WebSocketHandshake::readStatusLine(const char* header, size_t headerLength,
space1 = p;
else if (!space2)
space2 = p;
+ } else if (*p == '\0') {
+ // The caller isn't prepared to deal with null bytes in status
+ // line. WebSockets specification doesn't prohibit this, but HTTP
+ // does, so we'll just treat this as an error.
+ m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Status line contains embedded null", 0, clientOrigin());
+ return p + 1 - header;
} else if (*p == '\n')
break;
}
@@ -448,9 +459,9 @@ int WebSocketHandshake::readStatusLine(const char* header, size_t headerLength,
return -1; // We have not received '\n' yet.
const char* end = p + 1;
- if (end - header > INT_MAX) {
- m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Status line is too long: " + trimConsoleMessage(header, maxConsoleMessageSize + 1), 0, clientOrigin());
- return INT_MAX;
+ if (end - header > maximumLength) {
+ m_context->addMessage(JSMessageSource, LogMessageType, ErrorMessageLevel, "Status line is too long", 0, clientOrigin());
+ return maximumLength;
}
int lineLength = end - header;
diff --git a/Source/WebCore/wml/WMLInputElement.cpp b/Source/WebCore/wml/WMLInputElement.cpp
index 2d7310a..687a387 100644
--- a/Source/WebCore/wml/WMLInputElement.cpp
+++ b/Source/WebCore/wml/WMLInputElement.cpp
@@ -142,7 +142,7 @@ String WMLInputElement::value() const
return value;
}
-void WMLInputElement::setValue(const String& value, bool sendChangeEvent)
+void WMLInputElement::setValue(const String& value, bool)
{
setFormControlValueMatchesRenderer(false);
m_data.setValue(constrainValue(value));
@@ -161,7 +161,7 @@ void WMLInputElement::setValue(const String& value, bool sendChangeEvent)
InputElement::notifyFormStateChanged(this);
}
-void WMLInputElement::setValueForUser(const String& value)
+void WMLInputElement::setValueForUser(const String&)
{
/* InputElement class defines pure virtual function 'setValueForUser', which
will be useful only in HTMLInputElement. Do nothing in 'WMLInputElement'.
@@ -374,7 +374,7 @@ void WMLInputElement::initialize()
if (!hasAttribute(WMLNames::emptyokAttr)) {
if (m_formatMask.isEmpty() ||
// check if the format codes is just "*f"
- (m_formatMask.length() == 2 && m_formatMask[0] == '*' && formatCodes().find(m_formatMask[1]) != -1))
+ (m_formatMask.length() == 2 && m_formatMask[0] == '*' && formatCodes().find(m_formatMask[1]) != notFound))
m_isEmptyOk = true;
}
}
@@ -389,11 +389,11 @@ String WMLInputElement::validateInputMask(const String& inputMask)
for (unsigned i = 0; i < maskLength; ++i) {
formatCode = inputMask[i];
- if (formatCodes().find(formatCode) == -1) {
+ if (formatCodes().find(formatCode) == notFound) {
if (formatCode == '*' || (WTF::isASCIIDigit(formatCode) && formatCode != '0')) {
// validate codes which ends with '*f' or 'nf'
formatCode = inputMask[++i];
- if ((i + 1 != maskLength) || formatCodes().find(formatCode) == -1) {
+ if ((i + 1 != maskLength) || formatCodes().find(formatCode) == notFound) {
isValid = false;
break;
}
diff --git a/Source/WebCore/wml/WMLSelectElement.cpp b/Source/WebCore/wml/WMLSelectElement.cpp
index 78749b3..a00edab 100644
--- a/Source/WebCore/wml/WMLSelectElement.cpp
+++ b/Source/WebCore/wml/WMLSelectElement.cpp
@@ -552,7 +552,7 @@ String WMLSelectElement::ivalue() const
return parseValueSubstitutingVariableReferences(getAttribute(ivalueAttr));
}
-void WMLSelectElement::listBoxSelectItem(int listIndex, bool allowMultiplySelections, bool shift, bool fireOnChangeNow)
+void WMLSelectElement::listBoxSelectItem(int, bool, bool, bool)
{
/* Dummy implementation as listBoxSelectItem is pure virtual in SelectElement class */
}
diff --git a/Source/WebCore/workers/AbstractWorker.cpp b/Source/WebCore/workers/AbstractWorker.cpp
index 10bc95f..18a94b5 100644
--- a/Source/WebCore/workers/AbstractWorker.cpp
+++ b/Source/WebCore/workers/AbstractWorker.cpp
@@ -38,7 +38,7 @@
#include "Event.h"
#include "EventException.h"
#include "EventNames.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "ScriptExecutionContext.h"
#include "SecurityOrigin.h"
@@ -56,10 +56,7 @@ AbstractWorker::~AbstractWorker()
void AbstractWorker::onDestroyWorker()
{
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = scriptExecutionContext() ? scriptExecutionContext()->inspectorController() : 0)
- inspector->didDestroyWorker(asID());
-#endif
+ InspectorInstrumentation::didDestroyWorker(scriptExecutionContext(), asID());
}
void AbstractWorker::contextDestroyed()
diff --git a/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp b/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp
index 4a8e947..3a14b62 100644
--- a/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp
+++ b/Source/WebCore/workers/DefaultSharedWorkerRepository.cpp
@@ -37,7 +37,7 @@
#include "ActiveDOMObject.h"
#include "CrossThreadTask.h"
#include "Document.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "MessageEvent.h"
#include "MessagePort.h"
#include "NotImplemented.h"
@@ -291,10 +291,7 @@ void SharedWorkerScriptLoader::notifyFinished()
if (m_scriptLoader->failed())
m_worker->dispatchEvent(Event::create(eventNames().errorEvent, false, true));
else {
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = m_worker->scriptExecutionContext()->inspectorController())
- inspector->scriptImported(m_scriptLoader->identifier(), m_scriptLoader->script());
-#endif
+ InspectorInstrumentation::scriptImported(m_worker->scriptExecutionContext(), m_scriptLoader->identifier(), m_scriptLoader->script());
DefaultSharedWorkerRepository::instance().workerScriptLoaded(*m_proxy, m_worker->scriptExecutionContext()->userAgent(m_scriptLoader->url()), m_scriptLoader->script(), m_port.release());
}
m_worker->unsetPendingActivity(m_worker.get());
diff --git a/Source/WebCore/workers/SharedWorker.cpp b/Source/WebCore/workers/SharedWorker.cpp
index 997f9cd..874ea64 100644
--- a/Source/WebCore/workers/SharedWorker.cpp
+++ b/Source/WebCore/workers/SharedWorker.cpp
@@ -35,7 +35,7 @@
#include "SharedWorker.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "KURL.h"
#include "MessageChannel.h"
#include "MessagePort.h"
@@ -64,10 +64,7 @@ PassRefPtr<SharedWorker> SharedWorker::create(const String& url, const String& n
SharedWorkerRepository::connect(worker.get(), remotePort.release(), scriptURL, name, ec);
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = context->inspectorController())
- inspector->didCreateWorker(worker->asID(), scriptURL.string(), true);
-#endif
+ InspectorInstrumentation::didCreateWorker(context, worker->asID(), scriptURL.string(), true);
return worker.release();
}
diff --git a/Source/WebCore/workers/Worker.cpp b/Source/WebCore/workers/Worker.cpp
index 32ec997..968352c 100644
--- a/Source/WebCore/workers/Worker.cpp
+++ b/Source/WebCore/workers/Worker.cpp
@@ -40,7 +40,7 @@
#include "ExceptionCode.h"
#include "Frame.h"
#include "FrameLoader.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "MessageEvent.h"
#include "TextEncoding.h"
#include "WorkerContextProxy.h"
@@ -70,10 +70,7 @@ PassRefPtr<Worker> Worker::create(const String& url, ScriptExecutionContext* con
// The worker context does not exist while loading, so we must ensure that the worker object is not collected, nor are its event listeners.
worker->setPendingActivity(worker.get());
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = context->inspectorController())
- inspector->didCreateWorker(worker->asID(), scriptURL.string(), false);
-#endif
+ InspectorInstrumentation::didCreateWorker(context, worker->asID(), scriptURL.string(), false);
return worker.release();
}
@@ -135,10 +132,7 @@ void Worker::notifyFinished()
dispatchEvent(Event::create(eventNames().errorEvent, false, true));
else {
m_contextProxy->startWorkerContext(m_scriptLoader->url(), scriptExecutionContext()->userAgent(m_scriptLoader->url()), m_scriptLoader->script());
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = scriptExecutionContext()->inspectorController())
- inspector->scriptImported(m_scriptLoader->identifier(), m_scriptLoader->script());
-#endif
+ InspectorInstrumentation::scriptImported(scriptExecutionContext(), m_scriptLoader->identifier(), m_scriptLoader->script());
}
m_scriptLoader = 0;
diff --git a/Source/WebCore/workers/WorkerContext.cpp b/Source/WebCore/workers/WorkerContext.cpp
index 345e5b7..d5d1ccc 100644
--- a/Source/WebCore/workers/WorkerContext.cpp
+++ b/Source/WebCore/workers/WorkerContext.cpp
@@ -38,11 +38,12 @@
#include "DatabaseSync.h"
#include "DatabaseTracker.h"
#include "DOMTimer.h"
+#include "DOMURL.h"
#include "DOMWindow.h"
#include "ErrorEvent.h"
#include "Event.h"
#include "EventException.h"
-#include "InspectorController.h"
+#include "InspectorInstrumentation.h"
#include "KURL.h"
#include "MessagePort.h"
#include "NotImplemented.h"
@@ -245,10 +246,7 @@ void WorkerContext::importScripts(const Vector<String>& urls, ExceptionCode& ec)
return;
}
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = scriptExecutionContext()->inspectorController())
- inspector->scriptImported(scriptLoader.identifier(), scriptLoader.script());
-#endif
+ InspectorInstrumentation::scriptImported(scriptExecutionContext(), scriptLoader.identifier(), scriptLoader.script());
ScriptValue exception;
m_script->evaluate(ScriptSourceCode(scriptLoader.script(), *it), &exception);
@@ -341,14 +339,11 @@ EventTargetData* WorkerContext::ensureEventTargetData()
}
#if ENABLE(BLOB)
-String WorkerContext::createObjectURL(Blob* blob)
-{
- return scriptExecutionContext()->createPublicBlobURL(blob).string();
-}
-
-void WorkerContext::revokeObjectURL(const String& blobURLString)
+DOMURL* WorkerContext::webkitURL() const
{
- scriptExecutionContext()->revokePublicBlobURL(KURL(ParsedURLString, blobURLString));
+ if (!m_domURL)
+ m_domURL = DOMURL::create(this->scriptExecutionContext());
+ return m_domURL.get();
}
#endif
diff --git a/Source/WebCore/workers/WorkerContext.h b/Source/WebCore/workers/WorkerContext.h
index 7b6c9a2..a0dbaae 100644
--- a/Source/WebCore/workers/WorkerContext.h
+++ b/Source/WebCore/workers/WorkerContext.h
@@ -46,6 +46,7 @@ namespace WebCore {
class Blob;
class DOMFileSystemSync;
+ class DOMURL;
class Database;
class DatabaseCallback;
class DatabaseSync;
@@ -121,8 +122,7 @@ namespace WebCore {
virtual bool isJSExecutionTerminated() const;
#if ENABLE(BLOB)
- String createObjectURL(Blob*);
- void revokeObjectURL(const String&);
+ DOMURL* webkitURL() const;
#endif
#if ENABLE(FILE_SYSTEM)
@@ -186,6 +186,9 @@ namespace WebCore {
#if ENABLE_NOTIFICATIONS
mutable RefPtr<NotificationCenter> m_notifications;
#endif
+#if ENABLE(BLOB)
+ mutable RefPtr<DOMURL> m_domURL;
+#endif
bool m_closing;
bool m_reportingException;
EventTargetData m_eventTargetData;
diff --git a/Source/WebCore/workers/WorkerContext.idl b/Source/WebCore/workers/WorkerContext.idl
index 45ac5b1..ccbd964 100644
--- a/Source/WebCore/workers/WorkerContext.idl
+++ b/Source/WebCore/workers/WorkerContext.idl
@@ -101,10 +101,10 @@ module threads {
attribute BlobBuilderConstructor BlobBuilder;
attribute FileReaderConstructor FileReader;
attribute FileReaderSyncConstructor FileReaderSync;
- DOMString createObjectURL(in Blob blob);
- void revokeObjectURL(in DOMString blobURL);
#endif
+ readonly attribute [Conditional=BLOB] DOMURL webkitURL;
+
#if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
const unsigned short TEMPORARY = 0;
const unsigned short PERSISTENT = 1;
diff --git a/Source/WebCore/workers/WorkerMessagingProxy.cpp b/Source/WebCore/workers/WorkerMessagingProxy.cpp
index 10700c6..e89ccb4 100644
--- a/Source/WebCore/workers/WorkerMessagingProxy.cpp
+++ b/Source/WebCore/workers/WorkerMessagingProxy.cpp
@@ -38,7 +38,6 @@
#include "Document.h"
#include "ErrorEvent.h"
#include "ExceptionCode.h"
-#include "InspectorController.h"
#include "MessageEvent.h"
#include "ScriptExecutionContext.h"
#include "Worker.h"
diff --git a/Source/WebCore/xml/DOMParser.cpp b/Source/WebCore/xml/DOMParser.cpp
index e6aa3b0..c0d146c 100644
--- a/Source/WebCore/xml/DOMParser.cpp
+++ b/Source/WebCore/xml/DOMParser.cpp
@@ -24,20 +24,15 @@
#include "PlatformString.h"
namespace WebCore {
-
+
PassRefPtr<Document> DOMParser::parseFromString(const String& str, const String& contentType)
{
if (!DOMImplementation::isXMLMIMEType(contentType))
return 0;
RefPtr<Document> doc = DOMImplementation::createDocument(contentType, 0, KURL(), false);
-
- doc->open();
- doc->write(str);
- doc->finishParsing();
- doc->close();
-
+ doc->setContent(str);
return doc.release();
}
-}
+} // namespace WebCore
diff --git a/Source/WebCore/xml/XMLHttpRequest.cpp b/Source/WebCore/xml/XMLHttpRequest.cpp
index fc7eb9e..ee9e20f 100644
--- a/Source/WebCore/xml/XMLHttpRequest.cpp
+++ b/Source/WebCore/xml/XMLHttpRequest.cpp
@@ -35,7 +35,6 @@
#include "EventNames.h"
#include "File.h"
#include "HTTPParsers.h"
-#include "InspectorController.h"
#include "InspectorInstrumentation.h"
#include "ResourceError.h"
#include "ResourceRequest.h"
@@ -245,12 +244,8 @@ Document* XMLHttpRequest::responseXML(ExceptionCode& ec)
m_responseXML = 0;
} else {
m_responseXML = Document::create(0, m_url);
- m_responseXML->open();
// FIXME: Set Last-Modified.
- m_responseXML->write(m_responseBuilder.toStringPreserveCapacity());
- m_responseXML->finishParsing();
- m_responseXML->close();
-
+ m_responseXML->setContent(m_responseBuilder.toStringPreserveCapacity());
if (!m_responseXML->wellFormed())
m_responseXML = 0;
}
@@ -1002,10 +997,7 @@ void XMLHttpRequest::didFinishLoading(unsigned long identifier)
// FIXME: Set m_responseBlob to something here in the ResponseTypeBlob case.
#endif
-#if ENABLE(INSPECTOR)
- if (InspectorController* inspector = scriptExecutionContext()->inspectorController())
- inspector->resourceRetrievedByXMLHttpRequest(identifier, m_responseBuilder.toStringPreserveCapacity(), m_url, m_lastSendURL, m_lastSendLineNumber);
-#endif
+ InspectorInstrumentation::resourceRetrievedByXMLHttpRequest(scriptExecutionContext(), identifier, m_responseBuilder.toStringPreserveCapacity(), m_url, m_lastSendURL, m_lastSendLineNumber);
bool hadLoader = m_loader;
m_loader = 0;
diff --git a/Source/WebCore/xml/XSLTProcessor.cpp b/Source/WebCore/xml/XSLTProcessor.cpp
index 9b6a067..fe5f420 100644
--- a/Source/WebCore/xml/XSLTProcessor.cpp
+++ b/Source/WebCore/xml/XSLTProcessor.cpp
@@ -88,14 +88,11 @@ PassRefPtr<Document> XSLTProcessor::createDocumentFromSource(const String& sourc
frame->setDocument(result);
}
- result->open();
-
RefPtr<TextResourceDecoder> decoder = TextResourceDecoder::create(sourceMIMEType);
decoder->setEncoding(sourceEncoding.isEmpty() ? UTF8Encoding() : TextEncoding(sourceEncoding), TextResourceDecoder::EncodingFromXMLHeader);
result->setDecoder(decoder.release());
- result->write(documentSource);
- result->close();
+ result->setContent(documentSource);
return result.release();
}