summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DEPS4
-rw-r--r--webkit/SConscript1
-rw-r--r--webkit/SConscript.port5
-rw-r--r--webkit/build/KJSBindings/KJSBindings.vcproj8
-rw-r--r--webkit/build/V8Bindings/SConscript3
-rw-r--r--webkit/build/V8Bindings/V8Bindings.vcproj44
-rw-r--r--webkit/build/WebCore/SConscript46
-rw-r--r--webkit/build/WebCore/WebCore.vcproj452
-rw-r--r--webkit/build/port/SConscript2
-rw-r--r--webkit/build/port/port.vcproj20
-rw-r--r--webkit/build/webkit_common_includes.vsprops2
-rw-r--r--webkit/glue/chrome_client_impl.cc92
-rw-r--r--webkit/glue/chrome_client_impl.h32
-rw-r--r--webkit/glue/event_conversion.cc8
-rw-r--r--webkit/glue/glue_util.cc3
-rw-r--r--webkit/glue/inspector_client_impl.cc1
-rw-r--r--webkit/glue/localized_strings.cc8
-rw-r--r--webkit/glue/searchable_form_data.cc10
-rw-r--r--webkit/glue/webframe_impl.cc116
-rw-r--r--webkit/glue/webplugin_impl.cc52
-rw-r--r--webkit/glue/webplugin_impl.h12
-rw-r--r--webkit/glue/webview_impl.cc56
-rw-r--r--webkit/glue/webview_impl.h17
-rw-r--r--webkit/glue/webwidget_impl.cc105
-rw-r--r--webkit/glue/webwidget_impl.h34
-rw-r--r--webkit/pending/AccessibleBase.cpp3
-rw-r--r--webkit/pending/DeleteButtonController.cpp308
-rw-r--r--webkit/pending/RenderMenuList.cpp423
-rw-r--r--webkit/pending/RenderMenuList.h116
-rw-r--r--webkit/pending/RenderStyle.h2487
-rw-r--r--webkit/pending/RenderTheme.h224
-rw-r--r--webkit/pending/SMILTimeContainer.h96
-rw-r--r--webkit/pending/Traversal.cpp55
-rw-r--r--webkit/pending/Traversal.h58
-rw-r--r--webkit/pending/TreeShared.h214
-rw-r--r--webkit/port/DerivedSources.make5
-rw-r--r--webkit/port/bindings/scripts/CodeGeneratorV8.pm44
-rw-r--r--webkit/port/bindings/v8/JSNSResolver.cpp99
-rw-r--r--webkit/port/bindings/v8/ScriptController.h1
-rw-r--r--webkit/port/bindings/v8/V8MessagePortCustom.cpp232
-rw-r--r--webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp192
-rw-r--r--webkit/port/bindings/v8/v8_custom.cpp347
-rw-r--r--webkit/port/bindings/v8/v8_custom.h22
-rw-r--r--webkit/port/bindings/v8/v8_events.cpp26
-rw-r--r--webkit/port/bindings/v8/v8_events.h16
-rw-r--r--webkit/port/bindings/v8/v8_index.cpp4
-rw-r--r--webkit/port/bindings/v8/v8_index.h4
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp73
-rw-r--r--webkit/port/bindings/v8/v8_proxy.h8
-rw-r--r--webkit/port/bindings/v8/v8_utility.h3
-rw-r--r--webkit/port/bindings/v8/v8_vectornodelist.cpp1
-rw-r--r--webkit/port/dom/Document.idl8
-rw-r--r--webkit/port/dom/NSResolver.idl32
-rw-r--r--webkit/port/html/HTMLSelectionInputElement.idl14
-rw-r--r--webkit/port/page/DOMWindow.idl1
-rw-r--r--webkit/port/page/chromium/ChromeClientChromium.h14
-rw-r--r--webkit/port/page/chromium/EventHandlerChromium.cpp8
-rw-r--r--webkit/port/page/inspector/InspectorController.cpp40
-rw-r--r--webkit/port/platform/GKURL_unittest.cpp2
-rw-r--r--webkit/port/platform/chromium/FileChooserChromium.cpp22
-rw-r--r--webkit/port/platform/chromium/FileChooserChromiumMac.mm44
-rw-r--r--webkit/port/platform/chromium/FileSystemChromium.cpp (renamed from webkit/pending/DNS.h)100
-rw-r--r--webkit/port/platform/chromium/FileSystemChromiumMac.mm (renamed from webkit/port/bindings/v8/JSNSResolver.h)31
-rw-r--r--webkit/port/platform/chromium/FileSystemChromiumWin.cpp (renamed from webkit/port/platform/chromium/FileChooserChromiumMac.h)32
-rw-r--r--webkit/port/platform/chromium/FramelessScrollView.cpp51
-rw-r--r--webkit/port/platform/chromium/FramelessScrollView.h41
-rw-r--r--webkit/port/platform/chromium/FramelessScrollViewClient.h17
-rw-r--r--webkit/port/platform/chromium/PlatformScrollBar.h180
-rw-r--r--webkit/port/platform/chromium/PlatformScrollBarChromium.cpp848
-rw-r--r--webkit/port/platform/chromium/PlatformWidget.h4
-rw-r--r--webkit/port/platform/chromium/PopupMenuChromium.cpp157
-rw-r--r--webkit/port/platform/chromium/ScrollViewChromium.cpp1251
-rw-r--r--webkit/port/platform/chromium/ScrollbarThemeChromiumWin.cpp361
-rw-r--r--webkit/port/platform/chromium/ScrollbarThemeChromiumWin.h68
-rw-r--r--webkit/port/platform/chromium/TemporaryLinkStubs.cpp2
-rw-r--r--webkit/port/platform/chromium/WidgetChromium.cpp190
-rw-r--r--webkit/port/platform/chromium/WidgetClientChromium.h75
-rw-r--r--webkit/port/platform/graphics/GraphicsContextSkia.cpp39
-rw-r--r--webkit/port/platform/graphics/ImageSkia.cpp13
-rw-r--r--webkit/port/platform/graphics/PlatformContextSkia.h1
-rw-r--r--webkit/port/platform/graphics/SkPaintContext.cpp4
-rw-r--r--webkit/port/platform/graphics/SkPaintContext.h4
-rw-r--r--webkit/port/platform/win/PlatformScreenWin.cpp (renamed from webkit/port/platform/win/ScreenWin.cpp)5
-rw-r--r--webkit/port/rendering/RenderThemeWin.cpp4
-rw-r--r--webkit/port/svg/SVGElementInstance.idl103
-rw-r--r--[-rwxr-xr-x]webkit/tools/layout_tests/layout_package/http_server.sh0
-rw-r--r--webkit/tools/layout_tests/test_lists/win/tests_fixable.txt349
-rw-r--r--webkit/tools/layout_tests/test_lists/win/tests_ignored.txt3
-rw-r--r--webkit/tools/test_shell/test_shell_main.cc6
-rw-r--r--webkit/webkit.xcodeproj/project.pbxproj677
90 files changed, 3144 insertions, 7851 deletions
diff --git a/DEPS b/DEPS
index 050ab46..2f6a533 100644
--- a/DEPS
+++ b/DEPS
@@ -12,7 +12,7 @@ deps = {
"http://googletest.googlecode.com/svn/trunk@63",
"src/third_party/WebKit":
- "/trunk/deps/third_party/WebKit@4091",
+ "/trunk/deps/third_party/WebKit@4220",
"src/third_party/icu38":
"/trunk/deps/third_party/icu38@4040",
@@ -21,7 +21,7 @@ deps = {
"http://v8.googlecode.com/svn/trunk@660",
"src/webkit/data/layout_tests/LayoutTests":
- "http://svn.webkit.org/repository/webkit/trunk/LayoutTests@36102",
+ "http://svn.webkit.org/repository/webkit/trunk/LayoutTests@37604",
}
diff --git a/webkit/SConscript b/webkit/SConscript
index a622930..b1ae05a 100644
--- a/webkit/SConscript
+++ b/webkit/SConscript
@@ -166,6 +166,7 @@ env.Append(
CPPPATH = [
'$WEBCORE_DIR/rendering',
'$WEBCORE_DIR/rendering/style',
+ '$WEBCORE_DIR/inspector',
],
CPPDEFINES = [
diff --git a/webkit/SConscript.port b/webkit/SConscript.port
index 262960c..c93f33e 100644
--- a/webkit/SConscript.port
+++ b/webkit/SConscript.port
@@ -57,7 +57,6 @@ input_files = [
'$PORT_DIR/platform/chromium/PlatformScrollBarChromium.cpp',
'$PORT_DIR/platform/chromium/PopupMenuChromium.cpp',
'$PORT_DIR/platform/chromium/SSLKeyGeneratorChromium.cpp',
- '$PORT_DIR/platform/chromium/ScrollViewChromium.cpp',
'$PORT_DIR/platform/chromium/SearchPopupMenuChromium.cpp',
'$PORT_DIR/platform/chromium/SharedTimerChromium.cpp',
'$PORT_DIR/platform/chromium/SystemTimeChromium.cpp',
@@ -138,9 +137,7 @@ if env['PLATFORM'] == 'darwin':
'$PORT_DIR/page/chromium/EventHandlerChromium.cpp',
'$PORT_DIR/platform/chromium/CursorChromium.cpp',
'$PORT_DIR/platform/chromium/DragDataChromium.cpp',
- '$PORT_DIR/platform/chromium/PlatformScrollBarChromium.cpp',
'$PORT_DIR/platform/chromium/PopupMenuChromium.cpp',
- '$PORT_DIR/platform/chromium/ScrollViewChromium.cpp',
'$PORT_DIR/platform/chromium/WidgetChromium.cpp',
'$PORT_DIR/platform/graphics/FontCustomPlatformData.cpp',
'$PORT_DIR/platform/graphics/ImageSkia.cpp',
@@ -157,7 +154,7 @@ if env['PLATFORM'] == 'win32':
'$PORT_DIR/platform/win/ClipboardWin.cpp',
'$PORT_DIR/platform/win/EditorWin.cpp',
'$PORT_DIR/platform/win/PasteboardWin.cpp',
- '$PORT_DIR/platform/win/ScreenWin.cpp',
+ '$PORT_DIR/platform/win/PlatformScreenWin.cpp',
'$PORT_DIR/platform/win/SoundWin.cpp',
'$PORT_DIR/platform/UniscribeStateTextRun.cpp',
'$PORT_DIR/platform/win/WCDataObject.cpp',
diff --git a/webkit/build/KJSBindings/KJSBindings.vcproj b/webkit/build/KJSBindings/KJSBindings.vcproj
index aaf3ccfd..9483d81 100644
--- a/webkit/build/KJSBindings/KJSBindings.vcproj
+++ b/webkit/build/KJSBindings/KJSBindings.vcproj
@@ -1029,10 +1029,6 @@
>
</File>
<File
- RelativePath="$(IntDir)\DerivedSources\JSKeyboardEvent.cpp"
- >
- </File>
- <File
RelativePath="$(IntDir)\DerivedSources\JSKeyboardEvent.h"
>
</File>
@@ -2569,10 +2565,6 @@
Name="page"
>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\page\InspectorController.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\page\JavaScriptProfile.cpp"
>
</File>
diff --git a/webkit/build/V8Bindings/SConscript b/webkit/build/V8Bindings/SConscript
index 84a2271..06c16a0 100644
--- a/webkit/build/V8Bindings/SConscript
+++ b/webkit/build/V8Bindings/SConscript
@@ -140,7 +140,6 @@ inputs = [
'$DERIVED_DIR/V8HTMLQuoteElement.cpp',
'$DERIVED_DIR/V8HTMLScriptElement.cpp',
'$DERIVED_DIR/V8HTMLSelectElement.cpp',
- '$DERIVED_DIR/V8HTMLSelectionInputElement.cpp',
'$DERIVED_DIR/V8HTMLStyleElement.cpp',
'$DERIVED_DIR/V8HTMLTableCaptionElement.cpp',
'$DERIVED_DIR/V8HTMLTableCellElement.cpp',
@@ -168,7 +167,6 @@ inputs = [
'$DERIVED_DIR/V8NodeIterator.cpp',
'$DERIVED_DIR/V8NodeList.cpp',
'$DERIVED_DIR/V8Notation.cpp',
- '$DERIVED_DIR/V8NSResolver.cpp',
'$DERIVED_DIR/V8OverflowEvent.cpp',
'$DERIVED_DIR/V8Plugin.cpp',
'$DERIVED_DIR/V8PluginArray.cpp',
@@ -313,7 +311,6 @@ inputs = [
'$DERIVED_DIR/V8XPathResult.cpp',
'$DERIVED_DIR/V8XSLTProcessor.cpp',
- '$PORT_DIR/bindings/v8/JSNSResolver.cpp',
'$PORT_DIR/bindings/v8/JSXPathNSResolver.cpp',
'$PORT_DIR/bindings/v8/np_v8object.cpp',
'$PORT_DIR/bindings/v8/npruntime.cpp',
diff --git a/webkit/build/V8Bindings/V8Bindings.vcproj b/webkit/build/V8Bindings/V8Bindings.vcproj
index c8e2f45..da3775c 100644
--- a/webkit/build/V8Bindings/V8Bindings.vcproj
+++ b/webkit/build/V8Bindings/V8Bindings.vcproj
@@ -920,14 +920,6 @@
>
</File>
<File
- RelativePath="$(IntDir)\DerivedSources\V8HTMLSelectionInputElement.cpp"
- >
- </File>
- <File
- RelativePath="$(IntDir)\DerivedSources\V8HTMLSelectionInputElement.h"
- >
- </File>
- <File
RelativePath="$(IntDir)\DerivedSources\V8HTMLStyleElement.cpp"
>
</File>
@@ -1048,6 +1040,14 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8MessageChannel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8MessageChannel.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8MessageEvent.cpp"
>
</File>
@@ -1056,6 +1056,14 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8MessagePort.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8MessagePort.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8MimeType.cpp"
>
</File>
@@ -1144,14 +1152,6 @@
>
</File>
<File
- RelativePath="$(IntDir)\DerivedSources\V8NSResolver.h"
- >
- </File>
- <File
- RelativePath="$(IntDir)\DerivedSources\V8NSResolver.cpp"
- >
- </File>
- <File
RelativePath="$(IntDir)\DerivedSources\V8OverflowEvent.cpp"
>
</File>
@@ -2393,14 +2393,6 @@
>
</File>
<File
- RelativePath="..\..\port\bindings\v8\JSNSResolver.cpp"
- >
- </File>
- <File
- RelativePath="..\..\port\bindings\v8\JSNSResolver.h"
- >
- </File>
- <File
RelativePath="..\..\port\bindings\v8\JSXPathNSResolver.cpp"
>
</File>
@@ -2413,6 +2405,10 @@
>
</File>
<File
+ RelativePath="..\..\port\bindings\v8\V8MessagePortCustom.cpp"
+ >
+ </File>
+ <File
RelativePath=".\precompiled_v8bindings.cpp"
>
<FileConfiguration
diff --git a/webkit/build/WebCore/SConscript b/webkit/build/WebCore/SConscript
index 9b93740..e592c47 100644
--- a/webkit/build/WebCore/SConscript
+++ b/webkit/build/WebCore/SConscript
@@ -57,6 +57,7 @@ input_files = [
'$WEBCORE_DIR/css/CSSInitialValue.cpp',
'$WEBCORE_DIR/css/CSSMediaRule.cpp',
'$WEBCORE_DIR/css/CSSMutableStyleDeclaration.cpp',
+ '$WEBCORE_DIR/css/CSSNthSelector.cpp',
'$WEBCORE_DIR/css/CSSPageRule.cpp',
'$WEBCORE_DIR/css/CSSParser.cpp',
'$WEBCORE_DIR/css/CSSParserValues.cpp',
@@ -127,7 +128,9 @@ input_files = [
'$WEBCORE_DIR/dom/ExceptionCode.cpp',
'$WEBCORE_DIR/dom/KeyboardEvent.cpp',
'$WEBCORE_DIR/dom/MappedAttribute.cpp',
+ '$WEBCORE_DIR/dom/MessageChannel.cpp',
'$WEBCORE_DIR/dom/MessageEvent.cpp',
+ '$WEBCORE_DIR/dom/MessagePort.cpp',
'$WEBCORE_DIR/dom/MouseEvent.cpp',
'$WEBCORE_DIR/dom/MouseRelatedEvent.cpp',
'$WEBCORE_DIR/dom/MutationEvent.cpp',
@@ -163,6 +166,7 @@ input_files = [
'$WEBCORE_DIR/dom/WebKitTransitionEvent.cpp',
'$WEBCORE_DIR/dom/WheelEvent.cpp',
'$WEBCORE_DIR/dom/XMLTokenizer.cpp',
+ '$WEBCORE_DIR/dom/XMLTokenizerLibxml2.cpp',
'$WEBCORE_DIR/editing/AppendNodeCommand.cpp',
'$WEBCORE_DIR/editing/ApplyStyleCommand.cpp',
@@ -311,6 +315,7 @@ input_files = [
'$WEBCORE_DIR/loader/CachedFont.cpp',
'$WEBCORE_DIR/loader/CachedImage.cpp',
'$WEBCORE_DIR/loader/CachedResource.cpp',
+ '$WEBCORE_DIR/loader/CachedResourceHandle.cpp',
'$WEBCORE_DIR/loader/CachedResourceClientWalker.cpp',
'$WEBCORE_DIR/loader/CachedScript.cpp',
'$WEBCORE_DIR/loader/CachedXBLDocument.cpp',
@@ -322,6 +327,7 @@ input_files = [
'$WEBCORE_DIR/loader/FTPDirectoryDocument.cpp',
'$WEBCORE_DIR/loader/FTPDirectoryParser.cpp',
'$WEBCORE_DIR/loader/ImageDocument.cpp',
+ '$WEBCORE_DIR/loader/ImageLoader.cpp',
'$WEBCORE_DIR/loader/loader.cpp',
'$WEBCORE_DIR/loader/MainResourceLoader.cpp',
'$WEBCORE_DIR/loader/NavigationAction.cpp',
@@ -367,6 +373,7 @@ input_files = [
'$WEBCORE_DIR/page/Page.cpp',
'$WEBCORE_DIR/page/PageGroup.cpp',
'$WEBCORE_DIR/page/Screen.cpp',
+ '$WEBCORE_DIR/page/SecurityOrigin.cpp',
'$WEBCORE_DIR/page/Settings.cpp',
'$WEBCORE_DIR/page/WindowFeatures.cpp',
@@ -386,8 +393,9 @@ input_files = [
'$WEBCORE_DIR/platform/KURL.cpp',
'$WEBCORE_DIR/platform/Logging.cpp',
'$PORT_DIR/platform/MIMETypeRegistry.cpp',
- '$WEBCORE_DIR/platform/ScrollBar.cpp',
- '$WEBCORE_DIR/platform/SecurityOrigin.cpp',
+ '$WEBCORE_DIR/platform/Scrollbar.cpp',
+ '$WEBCORE_DIR/platform/ScrollbarThemeComposite.cpp',
+ '$WEBCORE_DIR/platform/ScrollView.cpp',
'$WEBCORE_DIR/platform/SharedBuffer.cpp',
'$WEBCORE_DIR/platform/Timer.cpp',
'$WEBCORE_DIR/platform/Widget.cpp',
@@ -421,6 +429,7 @@ input_files = [
'$WEBCORE_DIR/platform/graphics/SegmentedFontData.cpp',
'$WEBCORE_DIR/platform/graphics/SimpleFontData.cpp',
'$WEBCORE_DIR/platform/graphics/StringTruncator.cpp',
+ '$WEBCORE_DIR/platform/graphics/WidthIterator.cpp',
'$WEBCORE_DIR/platform/network/AuthenticationChallengeBase.cpp',
'$WEBCORE_DIR/platform/network/Credential.cpp',
@@ -507,6 +516,9 @@ input_files = [
'$WEBCORE_DIR/rendering/RenderPath.cpp',
'$WEBCORE_DIR/rendering/RenderReplaced.cpp',
'$WEBCORE_DIR/rendering/RenderReplica.cpp',
+ '$WEBCORE_DIR/rendering/RenderScrollbar.cpp',
+ '$WEBCORE_DIR/rendering/RenderScrollbarPart.cpp',
+ '$WEBCORE_DIR/rendering/RenderScrollbarTheme.cpp',
'$WEBCORE_DIR/rendering/RenderSlider.cpp',
'$WEBCORE_DIR/rendering/RenderSVGBlock.cpp',
'$WEBCORE_DIR/rendering/RenderSVGContainer.cpp',
@@ -539,17 +551,43 @@ input_files = [
'$WEBCORE_DIR/rendering/SVGCharacterLayoutInfo.cpp',
'$WEBCORE_DIR/rendering/SVGInlineFlowBox.cpp',
'$WEBCORE_DIR/rendering/SVGInlineTextBox.cpp',
- '$WEBCORE_DIR/rendering/SVGRenderStyle.cpp',
- '$WEBCORE_DIR/rendering/SVGRenderStyleDefs.cpp',
'$WEBCORE_DIR/rendering/SVGRenderSupport.cpp',
'$WEBCORE_DIR/rendering/SVGRenderTreeAsText.cpp',
'$WEBCORE_DIR/rendering/SVGRootInlineBox.cpp',
'$WEBCORE_DIR/rendering/TextControlInnerElements.cpp',
+
+ '$WEBCORE_DIR/rendering/style/Animation.cpp',
+ '$WEBCORE_DIR/rendering/style/AnimationList.cpp',
+ '$WEBCORE_DIR/rendering/style/BindingURI.cpp',
+ '$WEBCORE_DIR/rendering/style/ContentData.cpp',
+ '$WEBCORE_DIR/rendering/style/CounterDirectives.cpp',
+ '$WEBCORE_DIR/rendering/style/FillLayer.cpp',
+ '$WEBCORE_DIR/rendering/style/KeyframeList.cpp',
+ '$WEBCORE_DIR/rendering/style/MatrixTransformOperation.cpp',
'$WEBCORE_DIR/rendering/style/NinePieceImage.cpp',
'$WEBCORE_DIR/rendering/style/RenderStyle.cpp',
+ '$WEBCORE_DIR/rendering/style/RotateTransformOperation.cpp',
+ '$WEBCORE_DIR/rendering/style/ScaleTransformOperation.cpp',
+ '$WEBCORE_DIR/rendering/style/ShadowData.cpp',
+ '$WEBCORE_DIR/rendering/style/SkewTransformOperation.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleBackgroundData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleBoxData.cpp',
'$WEBCORE_DIR/rendering/style/StyleCachedImage.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleFlexibleBoxData.cpp',
'$WEBCORE_DIR/rendering/style/StyleGeneratedImage.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleInheritedData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleMarqueeData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleMultiColData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleRareInheritedData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleRareNonInheritedData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleSurroundData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleTransformData.cpp',
+ '$WEBCORE_DIR/rendering/style/StyleVisualData.cpp',
+ '$WEBCORE_DIR/rendering/style/SVGRenderStyle.cpp',
+ '$WEBCORE_DIR/rendering/style/SVGRenderStyleDefs.cpp',
+ '$WEBCORE_DIR/rendering/style/TransformOperations.cpp',
+ '$WEBCORE_DIR/rendering/style/TranslateTransformOperation.cpp',
'$WEBCORE_DIR/svg/ColorDistance.cpp',
'$WEBCORE_DIR/svg/Filter.cpp',
diff --git a/webkit/build/WebCore/WebCore.vcproj b/webkit/build/WebCore/WebCore.vcproj
index 2a5b89f..1512dc7 100644
--- a/webkit/build/WebCore/WebCore.vcproj
+++ b/webkit/build/WebCore/WebCore.vcproj
@@ -142,6 +142,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\AccessibilityList.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\AccessibilityList.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\page\AccessibilityListBox.cpp"
>
</File>
@@ -242,11 +250,11 @@
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\page\Console.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\Console.cpp"
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\page\Console.cpp"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\Console.h"
>
</File>
<File
@@ -354,14 +362,6 @@
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\page\InspectorClient.h"
- >
- </File>
- <File
- RelativePath="..\..\..\third_party\WebKit\WebCore\page\InspectorController.h"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\page\Location.h"
>
</File>
@@ -410,6 +410,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\SecurityOrigin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\page\SecurityOrigin.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\page\Settings.cpp"
>
</File>
@@ -526,6 +534,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\loader\CachedResourceHandle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\loader\CachedResourceHandle.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\loader\CachedScript.cpp"
>
</File>
@@ -622,6 +638,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\loader\ImageLoader.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\loader\ImageLoader.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\loader\loader.cpp"
>
</File>
@@ -754,10 +778,6 @@
Name="platform"
>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Arena.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Arena.h"
>
</File>
@@ -818,10 +838,6 @@
>
</File>
<File
- RelativePath="..\..\pending\DNS.h"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\DragData.cpp"
>
</File>
@@ -910,6 +926,10 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\HostWindow.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\KURL.cpp"
>
</File>
@@ -954,7 +974,7 @@
>
</File>
<File
- RelativePath="..\..\pending\PlatformKeyboardEvent.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\PlatformKeyboardEvent.h"
>
</File>
<File
@@ -982,6 +1002,10 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\PopupMenuStyle.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollBar.cpp"
>
</File>
@@ -990,23 +1014,35 @@
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollTypes.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollbarClient.h"
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollView.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollbarTheme.h"
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\SearchPopupMenu.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollbarThemeComposite.cpp"
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\SecurityOrigin.cpp"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollbarThemeComposite.h"
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\SecurityOrigin.h"
+ RelativePath="...\..\..\third_party\WebKit\WebCore\platform\ScrollTypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollView.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ScrollView.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\SearchPopupMenu.h"
>
</File>
<File
@@ -1030,7 +1066,7 @@
>
</File>
<File
- RelativePath="..\..\pending\StaticConstructors.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\StaticConstructors.h"
>
</File>
<File
@@ -1065,10 +1101,6 @@
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Widget.h"
>
</File>
- <File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\WidgetClient.h"
- >
- </File>
<Filter
Name="graphics"
>
@@ -1293,7 +1325,7 @@
>
</File>
<File
- RelativePath="..\..\pending\DNS.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\network\DNS.h"
>
</File>
<File
@@ -1373,7 +1405,7 @@
Name="win"
>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\platform\win\FileSystemWin.cpp"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Arena.cpp"
>
</File>
</Filter>
@@ -1580,6 +1612,14 @@
RelativePath="..\..\..\third_party\WebKit\WebCore\platform\text\UnicodeRange.h"
>
</File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\graphics\WidthIterator.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\graphics\WidthIterator.h"
+ >
+ </File>
</Filter>
</Filter>
<Filter
@@ -1758,6 +1798,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\css\CSSNthSelector.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\css\CSSNthSelector.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\css\CSSPageRule.cpp"
>
</File>
@@ -2206,6 +2254,10 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\Length.cpp"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\Length.h"
>
</File>
@@ -2490,6 +2542,30 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbarPart.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbarPart.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbarTheme.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderScrollbarTheme.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\RenderSlider.cpp"
>
</File>
@@ -2742,22 +2818,6 @@
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\SVGRenderStyle.cpp"
- >
- </File>
- <File
- RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\SVGRenderStyle.h"
- >
- </File>
- <File
- RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\SVGRenderStyleDefs.cpp"
- >
- </File>
- <File
- RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\SVGRenderStyleDefs.h"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\SVGRenderSupport.cpp"
>
</File>
@@ -2797,6 +2857,102 @@
Name="style"
>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\Animation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\Animation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\AnimationList.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\AnimationList.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\BindingURI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\BindingURI.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\BorderData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\BorderValue.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CollapsedBorderValue.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ContentData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ContentData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CounterContent.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CounterDirectives.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CounterDirectives.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CursorData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\CursorList.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\DataRef.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\FillLayer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\FillLayer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\IdentityTransformOperation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\KeyframeList.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\KeyframeList.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\MatrixTransformOperation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\MatrixTransformOperation.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\NinePieceImage.cpp"
>
</File>
@@ -2805,6 +2961,10 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\OutlineValue.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\RenderStyle.cpp"
>
</File>
@@ -2813,6 +2973,58 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\RenderStyleConstants.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\RotateTransformOperation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\RotateTransformOperation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ScaleTransformOperation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ScaleTransformOperation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ShadowData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\ShadowData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SkewTransformOperation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SkewTransformOperation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleBackgroundData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleBackgroundData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleBoxData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleBoxData.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleCachedImage.cpp"
>
</File>
@@ -2821,6 +3033,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleFlexibleBoxData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleFlexibleBoxData.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleGeneratedImage.cpp"
>
</File>
@@ -2832,6 +3052,114 @@
RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleImage.h"
>
</File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleInheritedData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleInheritedData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleMarqueeData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleMarqueeData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleMultiColData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleMultiColData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleRareInheritedData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleRareInheritedData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleRareNonInheritedData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleRareNonInheritedData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleReflection.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleSurroundData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleSurroundData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleTransformData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleTransformData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleVisualData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\StyleVisualData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SVGRenderStyle.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SVGRenderStyle.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SVGRenderStyleDefs.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\SVGRenderStyleDefs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TimingFunction.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TransformOperation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TransformOperations.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TransformOperations.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TranslateTransformOperation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\style\TranslateTransformOperation.h"
+ >
+ </File>
</Filter>
</Filter>
<Filter
@@ -2890,7 +3218,7 @@
>
</File>
<File
- RelativePath="..\xml\XPathException.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\xml\XPathException.h"
>
</File>
<File
@@ -3314,7 +3642,7 @@
>
</File>
<File
- RelativePath="..\..\pending\KeyboardEvent.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\KeyboardEvent.h"
>
</File>
<File
@@ -3330,6 +3658,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MessageChannel.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MessageChannel.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MessageEvent.cpp"
>
</File>
@@ -3338,6 +3674,14 @@
>
</File>
<File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MessagePort.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MessagePort.h"
+ >
+ </File>
+ <File
RelativePath="..\..\..\third_party\WebKit\WebCore\dom\MouseEvent.cpp"
>
</File>
@@ -3430,10 +3774,6 @@
>
</File>
<File
- RelativePath="..\..\..\third_party\WebKit\WebCore\dom\NSResolver.h"
- >
- </File>
- <File
RelativePath="..\..\..\third_party\WebKit\WebCore\dom\OverflowEvent.cpp"
>
</File>
@@ -3633,6 +3973,10 @@
RelativePath="..\..\..\third_party\WebKit\WebCore\dom\XMLTokenizer.h"
>
</File>
+ <File
+ RelativePath="..\..\..\third_party\WebKit\WebCore\dom\XMLTokenizerLibxml2.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="bridge"
@@ -5864,7 +6208,7 @@
>
</File>
<File
- RelativePath="..\..\pending\SVGPaintServer.h"
+ RelativePath="..\..\..\third_party\WebKit\WebCore\platform\SVGPaintServer.h"
>
</File>
<File
diff --git a/webkit/build/port/SConscript b/webkit/build/port/SConscript
index 53d3741..7010b0f 100644
--- a/webkit/build/port/SConscript
+++ b/webkit/build/port/SConscript
@@ -196,6 +196,7 @@ idl_files = [
'dom/EventTargetNode.idl',
'dom/KeyboardEvent.idl',
'dom/MessageEvent.idl',
+ 'dom/MessagePort.idl',
'dom/MouseEvent.idl',
'dom/MutationEvent.idl',
'dom/NamedNodeMap.idl',
@@ -204,7 +205,6 @@ idl_files = [
'dom/NodeIterator.idl',
'dom/NodeList.idl',
'dom/Notation.idl',
- 'dom/NSResolver.idl',
'dom/OverflowEvent.idl',
'dom/ProcessingInstruction.idl',
'dom/ProgressEvent.idl',
diff --git a/webkit/build/port/port.vcproj b/webkit/build/port/port.vcproj
index 752088a..a4d9f3c 100644
--- a/webkit/build/port/port.vcproj
+++ b/webkit/build/port/port.vcproj
@@ -719,7 +719,7 @@
>
</File>
<File
- RelativePath="..\..\port\platform\win\ScreenWin.cpp"
+ RelativePath="..\..\port\platform\win\PlatformScreenWin.cpp"
>
</File>
<File
@@ -763,6 +763,14 @@
>
</File>
<File
+ RelativePath="..\..\port\platform\chromium\FileSystemChromium.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\port\platform\chromium\FileSystemChromiumWin.cpp"
+ >
+ </File>
+ <File
RelativePath="..\..\port\platform\chromium\FramelessScrollView.cpp"
>
</File>
@@ -783,19 +791,15 @@
>
</File>
<File
- RelativePath="..\..\port\platform\chromium\PlatformScrollBar.h"
- >
- </File>
- <File
- RelativePath="..\..\port\platform\chromium\PlatformScrollBarChromium.cpp"
+ RelativePath="..\..\port\platform\chromium\PopupMenuChromium.cpp"
>
</File>
<File
- RelativePath="..\..\port\platform\chromium\PopupMenuChromium.cpp"
+ RelativePath="..\..\port\platform\chromium\ScrollbarThemeChromiumWin.cpp"
>
</File>
<File
- RelativePath="..\..\port\platform\chromium\ScrollViewChromium.cpp"
+ RelativePath="..\..\port\platform\chromium\ScrollbarThemeChromiumWin.h"
>
</File>
<File
diff --git a/webkit/build/webkit_common_includes.vsprops b/webkit/build/webkit_common_includes.vsprops
index 8bd0b17..7d0b1ba 100644
--- a/webkit/build/webkit_common_includes.vsprops
+++ b/webkit/build/webkit_common_includes.vsprops
@@ -6,6 +6,6 @@
>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="&quot;$(OutDir)\obj\WebCore&quot;;&quot;$(OutDir)\obj\WebCore\JavaScriptHeaders&quot;;&quot;$(OutDir)\obj\WebCore\JavaScriptHeaders\JavaScriptCore&quot;;..\..\pending\;..\..\pending\kjs;..\..\pending\wtf;..\..\port\bridge;..\..\port\css;..\..\port\dom;..\..\port\history;..\..\port\loader;..\..\port\page;..\..\port\page\chromium;..\..\port\page\win;..\..\port\platform;..\..\port\platform\chromium;..\..\port\platform\win;..\..\port\platform\network\chromium;..\..\port\platform\image-decoders;..\..\port\platform\image-decoders\bmp;..\..\port\platform\image-decoders\gif;..\..\port\platform\image-decoders\ico;..\..\port\platform\image-decoders\jpeg;..\..\port\platform\image-decoders\png;..\..\port\platform\image-decoders\xbm;..\..\port\platform\network;..\..\port\plugins;..\..\port\rendering;..\..\;&quot;$(ProjectDir)&quot;;..\..\..\third_party\WebKit\WebCore\;..\..\..\third_party\WebKit\WebCore\bridge;..\..\..\third_party\WebKit\WebCore\bridge\c;..\..\..\third_party\WebKit\WebCore\css;..\..\..\third_party\WebKit\WebCore\dom;..\..\..\third_party\WebKit\WebCore\editing;..\..\..\third_party\WebKit\WebCore\history;..\..\..\third_party\WebKit\WebCore\html;..\..\..\third_party\WebKit\WebCore\loader;..\..\..\third_party\WebKit\WebCore\loader\appcache;..\..\..\third_party\WebKit\WebCore\loader\archive;..\..\..\third_party\WebKit\WebCore\loader\icon;..\..\..\third_party\WebKit\WebCore\page;..\..\..\third_party\WebKit\WebCore\platform;..\..\..\third_party\WebKit\WebCore\page\animation;..\..\..\third_party\WebKit\WebCore\platform\text;..\..\..\third_party\WebKit\WebCore\platform\graphics;..\..\port\platform\graphics;..\..\port\platform\graphics\chromium;..\..\..\third_party\WebKit\WebCore\svg\graphics;..\..\..\third_party\WebKit\WebCore\platform\network;..\..\..\third_party\WebKit\WebCore\platform\sql;..\..\..\third_party\WebKit\WebCore\rendering;..\..\..\third_party\WebKit\WebCore\rendering\style;..\..\..\third_party\WebKit\WebCore\storage;..\..\..\third_party\WebKit\WebCore\xml;..\..\..\third_party\WebKit\WebCore;&quot;..\..\..\third_party\WebKit\WebCore\os-win32&quot;;..\..\..\third_party\WebKit\WebCore\wtf;..\..\..\third_party\WebKit\JavaScriptCore;..\..\..\third_party\WebKit\JavaScriptCore\wtf;&quot;..\..\..\third_party\WebKit\JavaScriptCore\os-win32&quot;;..\..\build;&quot;$(SDKIncludes)&quot;;&quot;$(IntDir)\..\WebCore\DerivedSources&quot;;..\..\..\third_party\WebKit\WebCore\svg;..\..\..\third_party\WebKit\WebCore\svg\animation;..\..\..\third_party\WebKit\WebCore\svg\graphics\filters;..\..\..\third_party\WebKit\WebCore\plugins"
+ AdditionalIncludeDirectories="&quot;$(OutDir)\obj\WebCore&quot;;&quot;$(OutDir)\obj\WebCore\JavaScriptHeaders&quot;;&quot;$(OutDir)\obj\WebCore\JavaScriptHeaders\JavaScriptCore&quot;;..\..\pending\;..\..\pending\kjs;..\..\pending\wtf;..\..\port\bridge;..\..\port\css;..\..\port\dom;..\..\port\history;..\..\port\loader;..\..\port\page;..\..\port\page\chromium;..\..\port\page\win;..\..\port\platform;..\..\port\platform\chromium;..\..\port\platform\win;..\..\port\platform\network\chromium;..\..\port\platform\image-decoders;..\..\port\platform\image-decoders\bmp;..\..\port\platform\image-decoders\gif;..\..\port\platform\image-decoders\ico;..\..\port\platform\image-decoders\jpeg;..\..\port\platform\image-decoders\png;..\..\port\platform\image-decoders\xbm;..\..\port\platform\network;..\..\port\plugins;..\..\port\rendering;..\..\;&quot;$(ProjectDir)&quot;;..\..\..\third_party\WebKit\WebCore\;..\..\..\third_party\WebKit\WebCore\bridge;..\..\..\third_party\WebKit\WebCore\bridge\c;..\..\..\third_party\WebKit\WebCore\css;..\..\..\third_party\WebKit\WebCore\dom;..\..\..\third_party\WebKit\WebCore\editing;..\..\..\third_party\WebKit\WebCore\history;..\..\..\third_party\WebKit\WebCore\html;..\..\..\third_party\WebKit\WebCore\loader;..\..\..\third_party\WebKit\WebCore\loader\appcache;..\..\..\third_party\WebKit\WebCore\loader\archive;..\..\..\third_party\WebKit\WebCore\loader\icon;..\..\..\third_party\WebKit\WebCore\page;..\..\..\third_party\WebKit\WebCore\platform;..\..\..\third_party\WebKit\WebCore\page\animation;..\..\..\third_party\WebKit\WebCore\platform\text;..\..\..\third_party\WebKit\WebCore\platform\graphics;..\..\port\platform\graphics;..\..\port\platform\graphics\chromium;..\..\..\third_party\WebKit\WebCore\svg\graphics;..\..\..\third_party\WebKit\WebCore\platform\network;..\..\..\third_party\WebKit\WebCore\platform\sql;..\..\..\third_party\WebKit\WebCore\rendering;..\..\..\third_party\WebKit\WebCore\rendering\style;..\..\..\third_party\WebKit\WebCore\storage;..\..\..\third_party\WebKit\WebCore\xml;..\..\..\third_party\WebKit\WebCore;&quot;..\..\..\third_party\WebKit\WebCore\os-win32&quot;;..\..\..\third_party\WebKit\WebCore\wtf;..\..\..\third_party\WebKit\JavaScriptCore;..\..\..\third_party\WebKit\JavaScriptCore\wtf;&quot;..\..\..\third_party\WebKit\JavaScriptCore\os-win32&quot;;..\..\build;&quot;$(SDKIncludes)&quot;;&quot;$(IntDir)\..\WebCore\DerivedSources&quot;;..\..\..\third_party\WebKit\WebCore\svg;..\..\..\third_party\WebKit\WebCore\svg\animation;..\..\..\third_party\WebKit\WebCore\svg\graphics\filters;..\..\..\third_party\WebKit\WebCore\plugins;..\..\..\third_party\WebKit\WebCore\inspector"
/>
</VisualStudioPropertySheet>
diff --git a/webkit/glue/chrome_client_impl.cc b/webkit/glue/chrome_client_impl.cc
index d2bbbb4..24cbb7c 100644
--- a/webkit/glue/chrome_client_impl.cc
+++ b/webkit/glue/chrome_client_impl.cc
@@ -7,6 +7,7 @@
#include "base/compiler_specific.h"
MSVC_PUSH_WARNING_LEVEL(0);
+#include "Cursor.h"
#include "FloatRect.h"
#include "FileChooser.h"
#include "FrameLoadRequest.h"
@@ -29,6 +30,7 @@ MSVC_POP_WARNING();
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/webview_delegate.h"
#include "webkit/glue/webview_impl.h"
+#include "webkit/glue/webwidget_impl.h"
struct IWebURLResponse;
@@ -356,23 +358,52 @@ WebCore::IntRect ChromeClientImpl::windowResizerRect() const {
return rv;
}
-void ChromeClientImpl::addToDirtyRegion(const WebCore::IntRect& damaged_rect) {
- ASSERT_NOT_REACHED();
+void ChromeClientImpl::repaint(
+ const WebCore::IntRect& paint_rect, bool content_changed, bool immediate,
+ bool repaint_content_only) {
+ WebViewDelegate* d = webview_->delegate();
+ if (d)
+ d->DidInvalidateRect(webview_, webkit_glue::FromIntRect(paint_rect));
+}
+
+void ChromeClientImpl::scroll(
+ const WebCore::IntSize& scroll_delta, const WebCore::IntRect& scroll_rect,
+ const WebCore::IntRect& clip_rect) {
+ WebViewDelegate* d = webview_->delegate();
+ if (d) {
+ int dx = scroll_delta.width();
+ int dy = scroll_delta.height();
+ d->DidScrollRect(webview_, dx, dy, webkit_glue::FromIntRect(clip_rect));
+ }
}
-void ChromeClientImpl::scrollBackingStore(int dx, int dy,
- const WebCore::IntRect& scroll_rect,
- const WebCore::IntRect& clip_rect) {
- ASSERT_NOT_REACHED();
+WebCore::IntPoint ChromeClientImpl::screenToWindow(
+ const WebCore::IntPoint&) const {
+ NOTIMPLEMENTED();
+ return WebCore::IntPoint();
}
-void ChromeClientImpl::updateBackingStore() {
- ASSERT_NOT_REACHED();
+WebCore::IntRect ChromeClientImpl::windowToScreen(
+ const WebCore::IntRect& rect) const {
+ WebCore::IntRect screen_rect(rect);
+
+ WebViewDelegate* d = webview_->delegate();
+ if (d) {
+ gfx::Rect window_rect;
+ d->GetWindowRect(webview_, &window_rect);
+ screen_rect.move(window_rect.x(), window_rect.y());
+ }
+
+ return screen_rect;
}
-void ChromeClientImpl::mouseDidMoveOverElement(const WebCore::HitTestResult& result,
- unsigned modifierFlags) {
+PlatformWidget ChromeClientImpl::platformWindow() const {
+ // We have no native widget.
+ return NULL;
+}
+void ChromeClientImpl::mouseDidMoveOverElement(
+ const WebCore::HitTestResult& result, unsigned modifierFlags) {
// Find out if the mouse is over a link, and if so, let our UI know... somehow
WebViewDelegate* d = webview_->delegate();
if (d) {
@@ -392,6 +423,18 @@ void ChromeClientImpl::setToolTip(const WebCore::String& tooltip_text) {
}
}
+void ChromeClientImpl::print(WebCore::Frame* frame) {
+ WebViewDelegate* d = webview_->delegate();
+ if (d) {
+ d->ScriptedPrint(WebFrameImpl::FromFrame(frame));
+ }
+}
+
+void ChromeClientImpl::exceededDatabaseQuota(WebCore::Frame* frame,
+ const WebCore::String& databaseName) {
+ // TODO(tc): If we enable the storage API, we need to implement this function.
+}
+
void ChromeClientImpl::runFileChooser(const WebCore::String& default_path,
PassRefPtr<WebCore::FileChooser> fileChooser) {
WebViewDelegate* delegate = webview_->delegate();
@@ -403,28 +446,21 @@ void ChromeClientImpl::runFileChooser(const WebCore::String& default_path,
delegate->RunFileChooser(suggestion, chooser);
}
-WebCore::IntRect ChromeClientImpl::windowToScreen(const WebCore::IntRect& rect) {
- WebCore::IntRect screen_rect(rect);
-
+void ChromeClientImpl::popupOpened(
+ WebCore::FramelessScrollView* popup_view, const WebCore::IntRect& bounds) {
WebViewDelegate* d = webview_->delegate();
if (d) {
- gfx::Rect window_rect;
- d->GetWindowRect(webview_, &window_rect);
- screen_rect.move(window_rect.x(), window_rect.y());
+ WebWidgetImpl* webwidget =
+ static_cast<WebWidgetImpl*>(d->CreatePopupWidget(webview_));
+ webwidget->Init(popup_view, webkit_glue::FromIntRect(bounds));
}
-
- return screen_rect;
}
-void ChromeClientImpl::print(WebCore::Frame* frame) {
+void ChromeClientImpl::setCursor(const WebCore::Cursor& cursor) {
+#if defined(OS_WIN)
+ // TODO(pinkerton): figure out the cursor delegate methods
WebViewDelegate* d = webview_->delegate();
- if (d) {
- d->ScriptedPrint(WebFrameImpl::FromFrame(frame));
- }
-}
-
-void ChromeClientImpl::exceededDatabaseQuota(WebCore::Frame* frame,
- const WebCore::String& databaseName) {
- // TODO(tc): If we enable the storage API, we need to implement this function.
+ if (d)
+ d->SetCursor(webview_, cursor.impl());
+#endif
}
-
diff --git a/webkit/glue/chrome_client_impl.h b/webkit/glue/chrome_client_impl.h
index a070fd1..acecb44 100644
--- a/webkit/glue/chrome_client_impl.h
+++ b/webkit/glue/chrome_client_impl.h
@@ -72,7 +72,10 @@ public:
virtual void runJavaScriptAlert(WebCore::Frame*, const WebCore::String&);
virtual bool runJavaScriptConfirm(WebCore::Frame*, const WebCore::String&);
- virtual bool runJavaScriptPrompt(WebCore::Frame*, const WebCore::String& message, const WebCore::String& defaultValue, WebCore::String& result);
+ virtual bool runJavaScriptPrompt(WebCore::Frame*,
+ const WebCore::String& message,
+ const WebCore::String& defaultValue,
+ WebCore::String& result);
virtual void setStatusbarText(const WebCore::String&);
virtual bool shouldInterruptJavaScript();
@@ -85,23 +88,32 @@ public:
virtual bool tabsToLinks() const;
virtual WebCore::IntRect windowResizerRect() const;
- virtual void addToDirtyRegion(const WebCore::IntRect&);
- virtual void scrollBackingStore(int dx, int dy, const WebCore::IntRect& scrollViewRect, const WebCore::IntRect& clipRect);
- virtual void updateBackingStore();
-
- virtual void mouseDidMoveOverElement(const WebCore::HitTestResult& result, unsigned modifierFlags);
+
+ virtual void repaint(const WebCore::IntRect&, bool contentChanged,
+ bool immediate = false, bool repaintContentOnly = false);
+ virtual void scroll(const WebCore::IntSize& scrollDelta,
+ const WebCore::IntRect& rectToScroll,
+ const WebCore::IntRect& clipRect);
+ virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const;
+ virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const;
+ virtual PlatformWidget platformWindow() const;
+
+ virtual void mouseDidMoveOverElement(const WebCore::HitTestResult& result,
+ unsigned modifierFlags);
virtual void setToolTip(const WebCore::String& tooltip_text);
- virtual void runFileChooser(const WebCore::String&,
- PassRefPtr<WebCore::FileChooser>);
- virtual WebCore::IntRect windowToScreen(const WebCore::IntRect& rect);
-
virtual void print(WebCore::Frame*);
virtual void exceededDatabaseQuota(WebCore::Frame*,
const WebCore::String& databaseName);
+ virtual void runFileChooser(const WebCore::String&,
+ PassRefPtr<WebCore::FileChooser>);
+ virtual void popupOpened(WebCore::FramelessScrollView* popup_view,
+ const WebCore::IntRect& bounds);
+ virtual void setCursor(const WebCore::Cursor&);
+
private:
WebViewImpl* webview_; // weak pointer
bool toolbars_visible_;
diff --git a/webkit/glue/event_conversion.cc b/webkit/glue/event_conversion.cc
index d5b2f44..517b870 100644
--- a/webkit/glue/event_conversion.cc
+++ b/webkit/glue/event_conversion.cc
@@ -115,18 +115,12 @@ MakePlatformWheelEvent::MakePlatformWheelEvent(Widget* widget,
m_globalPosition = IntPoint(e.global_x, e.global_y);
m_deltaX = static_cast<float>(e.delta_x);
m_deltaY = static_cast<float>(e.delta_y);
- m_charsToScrollPerDelta = 1;
- m_linesToScrollPerDelta = 1;
- m_pageXScrollMode = false;
- m_pageYScrollMode = false;
m_isAccepted = false;
+ m_granularity = ScrollByLineWheelEvent;
m_shiftKey = (e.modifiers & WebInputEvent::SHIFT_KEY) != 0;
m_ctrlKey = (e.modifiers & WebInputEvent::CTRL_KEY) != 0;
m_altKey = (e.modifiers & WebInputEvent::ALT_KEY) != 0;
m_metaKey = (e.modifiers & WebInputEvent::META_KEY) != 0;
- m_isContinuous = false;
- m_continuousDeltaX = 0;
- m_continuousDeltaY = 0;
}
// MakePlatformKeyboardEvent --------------------------------------------------
diff --git a/webkit/glue/glue_util.cc b/webkit/glue/glue_util.cc
index 7b609e04..5bbae41 100644
--- a/webkit/glue/glue_util.cc
+++ b/webkit/glue/glue_util.cc
@@ -101,7 +101,8 @@ GURL StringToGURL(const WebCore::String& spec) {
// Rect conversions ------------------------------------------------------------
gfx::Rect FromIntRect(const WebCore::IntRect& r) {
- return gfx::Rect(r.x(), r.y(), r.width(), r.height());
+ return gfx::Rect(r.x(), r.y(), r.width() < 0 ? 0 : r.width(),
+ r.height() < 0 ? 0 : r.height());
}
WebCore::IntRect ToIntRect(const gfx::Rect& r) {
diff --git a/webkit/glue/inspector_client_impl.cc b/webkit/glue/inspector_client_impl.cc
index b87afbb..dfc89fb 100644
--- a/webkit/glue/inspector_client_impl.cc
+++ b/webkit/glue/inspector_client_impl.cc
@@ -7,6 +7,7 @@
#include "base/compiler_specific.h"
MSVC_PUSH_WARNING_LEVEL(0);
+#include "DOMWindow.h"
#include "FloatRect.h"
#include "InspectorController.h"
#include "Page.h"
diff --git a/webkit/glue/localized_strings.cc b/webkit/glue/localized_strings.cc
index 5bb66a5..cc3053f 100644
--- a/webkit/glue/localized_strings.cc
+++ b/webkit/glue/localized_strings.cc
@@ -98,6 +98,14 @@ String WebCore::AXImageMapText() {
String WebCore::AXHeadingText() {
return GetLocalizedString(IDS_AX_ROLE_HEADING);
}
+String WebCore::AXDefinitionListTermText() {
+ NOTIMPLEMENTED();
+ return String("term");
+}
+String WebCore::AXDefinitionListDefinitionText() {
+ NOTIMPLEMENTED();
+ return String("definition");
+}
String WebCore::AXButtonActionVerb() {
return GetLocalizedString(IDS_AX_BUTTON_ACTION_VERB);
}
diff --git a/webkit/glue/searchable_form_data.cc b/webkit/glue/searchable_form_data.cc
index cd0a88f..420c19a 100644
--- a/webkit/glue/searchable_form_data.cc
+++ b/webkit/glue/searchable_form_data.cc
@@ -268,24 +268,24 @@ WebCore::HTMLInputElement* GetTextElement(
text_element = static_cast<WebCore::HTMLInputElement*>(form_element);
}
for (int j = 0, max = static_cast<int>(lst.list().size()); j < max; ++j) {
- const WebCore::FormDataListItem& item = lst.list()[j];
+ const WebCore::FormDataList::Item& item = lst.list()[j];
// handle ISINDEX / <input name=isindex> special
// but only if its the first entry
- if (enc_string->isEmpty() && item.m_data == "isindex") {
+ if (enc_string->isEmpty() && item.data() == "isindex") {
if (form_element == text_element)
appendString(*enc_string, "{searchTerms}");
else
- appendEncodedString(*enc_string, (lst.list()[j + 1].m_data));
+ appendEncodedString(*enc_string, (lst.list()[j + 1].data()));
++j;
} else {
if (!enc_string->isEmpty())
enc_string->append('&');
- appendEncodedString(*enc_string, item.m_data);
+ appendEncodedString(*enc_string, item.data());
enc_string->append('=');
if (form_element == text_element)
appendString(*enc_string, "{searchTerms}");
else
- appendEncodedString(*enc_string, lst.list()[j + 1].m_data);
+ appendEncodedString(*enc_string, lst.list()[j + 1].data());
++j;
}
}
diff --git a/webkit/glue/webframe_impl.cc b/webkit/glue/webframe_impl.cc
index f9e9c5f..8875057 100644
--- a/webkit/glue/webframe_impl.cc
+++ b/webkit/glue/webframe_impl.cc
@@ -107,20 +107,19 @@ MSVC_PUSH_WARNING_LEVEL(0);
#include "HistoryItem.h"
#include "markup.h"
#include "Page.h"
-#include "PlatformScrollBar.h"
#include "RenderFrame.h"
#include "RenderWidget.h"
#include "ReplaceSelectionCommand.h"
#include "ResourceHandle.h"
#include "ResourceRequest.h"
#include "ScriptController.h"
+#include "ScrollbarTheme.h"
#include "SelectionController.h"
#include "Settings.h"
#include "SkiaUtils.h"
#include "SubstituteData.h"
#include "TextIterator.h"
#include "TextAffinity.h"
-#include "WidgetClientChromium.h"
#include "XPathResult.h"
MSVC_POP_WARNING();
@@ -174,7 +173,6 @@ using WebCore::HTMLFrameElementBase;
using WebCore::IntRect;
using WebCore::KURL;
using WebCore::Node;
-using WebCore::PlatformScrollbar;
using WebCore::Range;
using WebCore::ReloadIgnoringCacheData;
using WebCore::RenderObject;
@@ -187,9 +185,13 @@ using WebCore::String;
using WebCore::SubstituteData;
using WebCore::TextIterator;
using WebCore::VisiblePosition;
-using WebCore::WidgetClientChromium;
using WebCore::XPathResult;
+// TODO(darin): This used to be defined on WidgetClientChromium, but that
+// interface no longer exists. We'll need to come up with something better
+// once we figure out how to make tickmark support work again!
+static const size_t kNoTickmark = size_t(-1);
+
static const wchar_t* const kWebFrameActiveCount = L"WebFrameActiveCount";
static const char* const kOSDType = "application/opensearchdescription+xml";
@@ -286,7 +288,7 @@ MSVC_POP_WARNING()
margin_height_(-1),
inspected_node_(NULL),
active_tickmark_frame_(NULL),
- active_tickmark_(WidgetClientChromium::kNoTickmark),
+ active_tickmark_(kNoTickmark),
locating_active_rect_(false),
last_active_range_(NULL),
last_match_count_(-1),
@@ -536,7 +538,7 @@ void WebFrameImpl::LoadDocumentData(const KURL& base_url,
StopLoading();
// Reset any pre-existing scroll offset
- frameview()->setContentsPos(0, 0);
+ frameview()->setScrollPosition(WebCore::IntPoint());
// Make sure the correct document type is constructed.
frame_->loader()->setResponseMIMEType(mime_type);
@@ -754,23 +756,21 @@ void WebFrameImpl::InvalidateArea(AreaToInvalidate area) {
FrameView* view = frame()->view();
if ((area & INVALIDATE_ALL) == INVALIDATE_ALL) {
- view->addToDirtyRegion(view->frameGeometry());
+ view->invalidateRect(view->frameRect());
} else {
if ((area & INVALIDATE_CONTENT_AREA) == INVALIDATE_CONTENT_AREA) {
- IntRect content_area(view->x(),
- view->y(),
- view->visibleWidth(),
- view->visibleHeight());
- view->addToDirtyRegion(content_area);
+ IntRect content_area(
+ view->x(), view->y(), view->visibleWidth(), view->visibleHeight());
+ view->invalidateRect(content_area);
}
if ((area & INVALIDATE_SCROLLBAR) == INVALIDATE_SCROLLBAR) {
// Invalidate the vertical scroll bar region for the view.
- IntRect scroll_bar_vert(view->x() + view->visibleWidth(),
- view->y(),
- PlatformScrollbar::verticalScrollbarWidth(),
- view->visibleHeight());
- view->addToDirtyRegion(scroll_bar_vert);
+ IntRect scroll_bar_vert(
+ view->x() + view->visibleWidth(), view->y(),
+ WebCore::ScrollbarTheme::nativeTheme()->scrollbarThickness(),
+ view->visibleHeight());
+ view->invalidateRect(scroll_bar_vert);
}
}
#endif
@@ -783,8 +783,8 @@ void WebFrameImpl::InvalidateTickmark(RefPtr<WebCore::Range> tickmark) {
FrameView* view = frame()->view();
IntRect pos = tickmark->boundingBox();
- pos.move(-view->contentsX(), -view->contentsY());
- view->addToDirtyRegion(pos);
+ pos.move(-view->scrollX(), -view->scrollY());
+ view->invalidateRect(pos);
#endif
}
@@ -913,7 +913,7 @@ bool WebFrameImpl::FindNext(const FindInPageRequest& request,
WebFrameImpl* const active_frame = main_frame_impl->active_tickmark_frame_;
RefPtr<WebCore::Range> old_tickmark = NULL;
if (active_frame &&
- (active_frame->active_tickmark_ != WidgetClientChromium::kNoTickmark)) {
+ (active_frame->active_tickmark_ != kNoTickmark)) {
// When we get a reference to |old_tickmark| we can be in a state where
// the |active_tickmark_| points outside the tickmark vector, possibly
// during teardown of the frame. This doesn't reproduce normally, so if you
@@ -929,7 +929,7 @@ bool WebFrameImpl::FindNext(const FindInPageRequest& request,
// See if we have another match to select, and select it.
if (request.forward) {
const bool at_end = (active_tickmark_ == (tickmarks_.size() - 1));
- if ((active_tickmark_ == WidgetClientChromium::kNoTickmark) ||
+ if ((active_tickmark_ == kNoTickmark) ||
(at_end && wrap_within_frame)) {
// Wrapping within a frame is only done for single frame pages. So when we
// reach the end we go back to the beginning (or back to the end if
@@ -943,7 +943,7 @@ bool WebFrameImpl::FindNext(const FindInPageRequest& request,
}
} else {
const bool at_end = (active_tickmark_ == 0);
- if ((active_tickmark_ == WidgetClientChromium::kNoTickmark) ||
+ if ((active_tickmark_ == kNoTickmark) ||
(at_end && wrap_within_frame)) {
// Wrapping within a frame is not done for multi-frame pages, but if no
// tickmark is active we still need to set the index to the end so that
@@ -960,7 +960,7 @@ bool WebFrameImpl::FindNext(const FindInPageRequest& request,
if (active_frame != this) {
// If we are jumping between frames, reset the active tickmark in the old
// frame and invalidate the area.
- active_frame->active_tickmark_ = WidgetClientChromium::kNoTickmark;
+ active_frame->active_tickmark_ = kNoTickmark;
active_frame->InvalidateArea(INVALIDATE_CONTENT_AREA);
main_frame_impl->active_tickmark_frame_ = this;
} else {
@@ -1250,7 +1250,7 @@ void WebFrameImpl::ScopeStringMatches(FindInPageRequest request,
void WebFrameImpl::CancelPendingScopingEffort() {
scope_matches_factory_.RevokeAll();
- active_tickmark_ = WidgetClientChromium::kNoTickmark;
+ active_tickmark_ = kNoTickmark;
}
void WebFrameImpl::SetFindEndstateFocusAndSelection() {
@@ -1258,7 +1258,7 @@ void WebFrameImpl::SetFindEndstateFocusAndSelection() {
static_cast<WebFrameImpl*>(GetView()->GetMainFrame());
if (this == main_frame_impl->active_tickmark_frame() &&
- active_tickmark_ != WidgetClientChromium::kNoTickmark) {
+ active_tickmark_ != kNoTickmark) {
RefPtr<Range> range = tickmarks_[active_tickmark_];
// Set the selection to what the active match is.
@@ -1424,54 +1424,39 @@ void WebFrameImpl::CreateFrameView() {
DCHECK(page->mainFrame() != NULL);
-#if defined(OS_WIN)
- // TODO(pinkerton): figure out view show/hide like win
- // Detach the current view. This ensures that UI widgets like plugins,
- // etc are detached(hidden)
- if (frame_->view())
- frame_->view()->detachFromWindow();
-#endif
+ bool is_main_frame = frame_ == page->mainFrame();
+ if (is_main_frame && frame_->view())
+ frame_->view()->setParentVisible(false);
frame_->setView(0);
- WebCore::FrameView* view = new FrameView(frame_.get());
+ WebCore::FrameView* view;
+ if (is_main_frame) {
+ IntSize initial_size(
+ webview_impl_->size().width(), webview_impl_->size().height());
+ view = new FrameView(frame_.get(), initial_size);
+ } else {
+ view = new FrameView(frame_.get());
+ }
frame_->setView(view);
-#if defined(OS_WIN)
- // Attaching the view ensures that UI widgets like plugins, display/hide
- // correctly.
- frame_->view()->attachToWindow();
-#endif
-
- if (margin_width_ >= 0)
- view->setMarginWidth(margin_width_);
- if (margin_height_ >= 0)
- view->setMarginHeight(margin_height_);
- if (!allows_scrolling_)
- view->setScrollbarsMode(WebCore::ScrollbarAlwaysOff);
-
// TODO(darin): The Mac code has a comment about this possibly being
// unnecessary. See installInFrame in WebCoreFrameBridge.mm
if (frame_->ownerRenderer())
frame_->ownerRenderer()->setWidget(view);
- view->initScrollbars();
+ if (HTMLFrameOwnerElement* owner = frame_->ownerElement()) {
+ view->setCanHaveScrollbars(
+ owner->scrollingMode() != WebCore::ScrollbarAlwaysOff);
+ }
+
+ if (is_main_frame)
+ view->setParentVisible(true);
// FrameViews are created with a refcount of 1 so it needs releasing after we
// assign it to a RefPtr.
view->deref();
-
- WebFrameImpl* parent = static_cast<WebFrameImpl*>(GetParent());
- if (parent) {
- parent->frameview()->addChild(view);
- } else {
- view->setClient(webview_impl_);
-
- IntRect geom(0, 0, webview_impl_->size().width(),
- webview_impl_->size().height());
- view->setFrameGeometry(geom);
- }
}
// static
@@ -1799,10 +1784,7 @@ gfx::Size WebFrameImpl::ScrollOffset() const {
void WebFrameImpl::SetAllowsScrolling(bool flag) {
allows_scrolling_ = flag;
-#if defined(OS_WIN)
- // TODO(pinkerton): fix when we figure out scrolling apis
- frame_->view()->setAllowsScrolling(flag);
-#endif
+ frame_->view()->setCanHaveScrollbars(flag);
}
bool WebFrameImpl::SetPrintingMode(bool printing,
@@ -1817,9 +1799,11 @@ bool WebFrameImpl::SetPrintingMode(bool printing,
}
printing_ = printing;
if (printing) {
- view->setScrollbarsMode(WebCore::ScrollbarAlwaysOff);
+ view->setScrollbarModes(WebCore::ScrollbarAlwaysOff,
+ WebCore::ScrollbarAlwaysOff);
} else {
- view->setScrollbarsMode(WebCore::ScrollbarAuto);
+ view->setScrollbarModes(WebCore::ScrollbarAuto,
+ WebCore::ScrollbarAuto);
}
DCHECK_EQ(frame()->isFrameSet(), false);
@@ -1862,7 +1846,7 @@ void WebFrameImpl::GetPageRect(int page, gfx::Rect* page_size) const {
}
bool WebFrameImpl::SpoolPage(int page,
- PlatformContextSkia* context) {
+ PlatformContextSkia* context) {
// Ensure correct state.
if (!context ||
!printing_ ||
@@ -1881,7 +1865,7 @@ bool WebFrameImpl::SpoolPage(int page,
DCHECK(pages_[page].x() == 0);
// Offset to get the right square.
spool.translate(0, -static_cast<float>(pages_[page].y()));
- frame()->paint(&spool, pages_[page]);
+ frame()->view()->paint(&spool, pages_[page]);
return true;
}
diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc
index 36d7fc6..0251409 100644
--- a/webkit/glue/webplugin_impl.cc
+++ b/webkit/glue/webplugin_impl.cc
@@ -118,10 +118,6 @@ NPObject* WebPluginContainer::GetPluginScriptableObject() {
return impl_->GetPluginScriptableObject();
}
-WebCore::IntRect WebPluginContainer::windowClipRect() const {
- return impl_->windowClipRect();
-}
-
#if USE(JSC)
bool WebPluginContainer::isPluginView() const {
return true;
@@ -129,13 +125,9 @@ bool WebPluginContainer::isPluginView() const {
#endif
-void WebPluginContainer::geometryChanged() const {
- impl_->geometryChanged();
-}
-
-void WebPluginContainer::setFrameGeometry(const WebCore::IntRect& rect) {
- WebCore::Widget::setFrameGeometry(rect);
- impl_->setFrameGeometry(rect);
+void WebPluginContainer::setFrameRect(const WebCore::IntRect& rect) {
+ WebCore::Widget::setFrameRect(rect);
+ impl_->setFrameRect(rect);
}
void WebPluginContainer::paint(WebCore::GraphicsContext* gc,
@@ -146,6 +138,18 @@ void WebPluginContainer::paint(WebCore::GraphicsContext* gc,
impl_->paint(gc, damage_rect);
}
+void WebPluginContainer::invalidateRect(const WebCore::IntRect& rect) {
+ if (parent()) {
+ WebCore::IntRect damageRect = convertToContainingWindow(rect);
+
+ // Get our clip rect and intersect with it to ensure we don't invalidate too much.
+ WebCore::IntRect clipRect = parent()->windowClipRect();
+ damageRect.intersect(clipRect);
+
+ parent()->hostWindow()->repaint(damageRect, true);
+ }
+}
+
void WebPluginContainer::setFocus() {
WebCore::Widget::setFocus();
impl_->setFocus();
@@ -164,7 +168,7 @@ void WebPluginContainer::show() {
WebCore::Widget::show();
// This is to force an updategeometry call to the plugin process
// where the plugin window can be hidden or shown.
- geometryChanged();
+ frameRectsChanged();
}
}
@@ -176,7 +180,7 @@ void WebPluginContainer::hide() {
WebCore::Widget::hide();
// This is to force an updategeometry call to the plugin process
// where the plugin window can be hidden or shown.
- geometryChanged();
+ frameRectsChanged();
}
}
@@ -184,16 +188,6 @@ void WebPluginContainer::handleEvent(WebCore::Event* event) {
impl_->handleEvent(event);
}
-void WebPluginContainer::attachToWindow() {
- Widget::attachToWindow();
- show();
-}
-
-void WebPluginContainer::detachFromWindow() {
- Widget::detachFromWindow();
- hide();
-}
-
void WebPluginContainer::windowCutoutRects(const WebCore::IntRect& bounds,
WTF::Vector<WebCore::IntRect>*
cutouts) const {
@@ -602,11 +596,11 @@ void WebPluginImpl::geometryChanged() const {
// This is a hack to tickle re-positioning of the plugin in the case where
// our parent view was scrolled.
- const_cast<WebPluginImpl*>(this)->widget_->setFrameGeometry(
- widget_->frameGeometry());
+ const_cast<WebPluginImpl*>(this)->widget_->setFrameRect(
+ widget_->frameRect());
}
-void WebPluginImpl::setFrameGeometry(const WebCore::IntRect& rect) {
+void WebPluginImpl::setFrameRect(const WebCore::IntRect& rect) {
// Compute a new position and clip rect for ourselves relative to the
// containing window. We ask our delegate to reposition us accordingly.
@@ -679,7 +673,7 @@ void WebPluginImpl::paint(WebCore::GraphicsContext* gc,
return;
// Don't paint anything if the plugin doesn't intersect the damage rect.
- if (!widget_->frameGeometry().intersects(damage_rect))
+ if (!widget_->frameRect().intersects(damage_rect))
return;
// A windowed plugin starts out by being invisible regardless of the style
@@ -697,7 +691,7 @@ void WebPluginImpl::paint(WebCore::GraphicsContext* gc,
WebCore::IntRect clip_rect;
std::vector<gfx::Rect> cutout_rects;
- CalculateBounds(widget_->frameGeometry(), &window_rect, &clip_rect,
+ CalculateBounds(widget_->frameRect(), &window_rect, &clip_rect,
&cutout_rects);
delegate_->UpdateGeometry(webkit_glue::FromIntRect(window_rect),
@@ -1111,7 +1105,7 @@ void WebPluginImpl::CalculateBounds(const WebCore::IntRect& frame_rect,
WebCore::IntRect(view->contentsToWindow(frame_rect.location()),
frame_rect.size());
// Calculate a clip-rect so that we don't overlap the scrollbars, etc.
- *clip_rect = widget_->windowClipRect();
+ *clip_rect = windowClipRect();
clip_rect->move(-window_rect->x(), -window_rect->y());
cutout_rects->clear();
diff --git a/webkit/glue/webplugin_impl.h b/webkit/glue/webplugin_impl.h
index b5473c5..77e0100 100644
--- a/webkit/glue/webplugin_impl.h
+++ b/webkit/glue/webplugin_impl.h
@@ -55,16 +55,16 @@ class WebPluginContainer : public WebCore::Widget {
WebPluginContainer(WebPluginImpl* impl);
virtual ~WebPluginContainer();
NPObject* GetPluginScriptableObject();
- virtual WebCore::IntRect windowClipRect() const;
- virtual void geometryChanged() const;
- virtual void setFrameGeometry(const WebCore::IntRect& rect);
+
+ // Widget methods:
+ virtual void setFrameRect(const WebCore::IntRect& rect);
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect& rect);
+ virtual void invalidateRect(const WebCore::IntRect&);
virtual void setFocus();
virtual void show();
virtual void hide();
virtual void handleEvent(WebCore::Event* event);
- virtual void attachToWindow();
- virtual void detachFromWindow();
+ virtual void frameRectsChanged() const {}
#if USE(JSC)
virtual bool isPluginView() const;
@@ -203,7 +203,7 @@ class WebPluginImpl : public WebPlugin,
// Override for when our window changes size or position.
// Used to notify the plugin when the size or position changes.
- virtual void setFrameGeometry(const WebCore::IntRect& rect);
+ virtual void setFrameRect(const WebCore::IntRect& rect);
// Overrides paint so we can notify the underlying widget to repaint.
virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect& rect);
diff --git a/webkit/glue/webview_impl.cc b/webkit/glue/webview_impl.cc
index 8dfb3f5..7c5ecac 100644
--- a/webkit/glue/webview_impl.cc
+++ b/webkit/glue/webview_impl.cc
@@ -686,13 +686,13 @@ void WebViewImpl::Layout() {
// they need to be told that we are updating the screen. The problem is
// that the native widgets need to recalculate their clip region and not
// overlap any of our non-native widgets. To force the resizing, call
- // setFrameGeometry(). This will be a quick operation for most frames, but
+ // setFrameRect(). This will be a quick operation for most frames, but
// the NativeWindowWidgets will update a proper clipping region.
FrameView* frameview = main_frame_->frameview();
if (frameview)
- frameview->setFrameGeometry(frameview->frameGeometry());
+ frameview->setFrameRect(frameview->frameRect());
- // setFrameGeometry may have the side-effect of causing existing page
+ // setFrameRect may have the side-effect of causing existing page
// layout to be invalidated, so layout needs to be called last.
main_frame_->Layout();
@@ -1126,6 +1126,9 @@ void WebViewImpl::SetPreferences(const WebPreferences& preferences) {
settings->setFontRenderingMode(NormalRenderingMode);
settings->setJavaEnabled(preferences.java_enabled);
+ // Turn this on to cause WebCore to paint the resize corner for us.
+ settings->setShouldPaintCustomScrollbars(true);
+
#if defined(OS_WIN)
// RenderTheme is a singleton that needs to know the default font size to
// draw some form controls. We let it know each time the size changes.
@@ -1372,54 +1375,12 @@ void WebViewImpl::ImageResourceDownloadDone(ImageResourceFetcher* fetcher,
//-----------------------------------------------------------------------------
// WebCore::WidgetClientWin
+// TODO(darin): Figure out what to do with these methods.
+#if 0
gfx::ViewHandle WebViewImpl::containingWindow() {
return delegate_ ? delegate_->GetContainingWindow(this) : NULL;
}
-void WebViewImpl::invalidateRect(const IntRect& damaged_rect) {
- if (delegate_)
- delegate_->DidInvalidateRect(this, gfx::Rect(damaged_rect.x(),
- damaged_rect.y(),
- damaged_rect.width(),
- damaged_rect.height()));
-}
-
-void WebViewImpl::scrollRect(int dx, int dy, const IntRect& clip_rect) {
- if (delegate_)
- delegate_->DidScrollRect(this, dx, dy, gfx::Rect(clip_rect.x(),
- clip_rect.y(),
- clip_rect.width(),
- clip_rect.height()));
-}
-
-void WebViewImpl::popupOpened(WebCore::Widget* widget,
- const WebCore::IntRect& bounds) {
- if (!delegate_)
- return;
-
- WebWidgetImpl* webwidget =
- static_cast<WebWidgetImpl*>(delegate_->CreatePopupWidget(this));
- webwidget->Init(widget, gfx::Rect(bounds.x(), bounds.y(),
- bounds.width(), bounds.height()));
-}
-
-void WebViewImpl::popupClosed(WebCore::Widget* widget) {
- NOTREACHED() << "popupClosed called on a non-popup";
-}
-
-void WebViewImpl::setCursor(const WebCore::Cursor& cursor) {
-#if defined(OS_WIN)
- // TODO(pinkerton): figure out the cursor delegate methods
- if (delegate_)
- delegate_->SetCursor(this, cursor.impl());
-#endif
-}
-
-void WebViewImpl::setFocus() {
- if (delegate_)
- delegate_->Focus(this);
-}
-
const SkBitmap* WebViewImpl::getPreloadedResourceBitmap(int resource_id) {
if (!delegate_)
return NULL;
@@ -1462,6 +1423,7 @@ bool WebViewImpl::isHidden() {
return delegate_->IsHidden();
}
+#endif
//-----------------------------------------------------------------------------
// WebCore::BackForwardListClient
diff --git a/webkit/glue/webview_impl.h b/webkit/glue/webview_impl.h
index 0e09bf9..e4ec4b4 100644
--- a/webkit/glue/webview_impl.h
+++ b/webkit/glue/webview_impl.h
@@ -18,8 +18,7 @@
#include "webkit/glue/webview.h"
MSVC_PUSH_WARNING_LEVEL(0);
-#include "webkit/port/history/BackForwardList.h"
-#include "webkit/port/platform/chromium/WidgetClientChromium.h"
+#include "BackForwardList.h"
MSVC_POP_WARNING();
namespace WebCore {
@@ -41,9 +40,7 @@ class WebMouseEvent;
class WebMouseWheelEvent;
class WebViewDelegate;
-class WebViewImpl : public WebView,
- public WebCore::WidgetClientChromium,
- public WebCore::BackForwardListClient {
+class WebViewImpl : public WebView, public WebCore::BackForwardListClient {
public:
// WebView
virtual bool ShouldClose();
@@ -189,21 +186,17 @@ class WebViewImpl : public WebView,
WebCore::Frame* frame,
const WebCore::PlatformKeyboardEvent& e);
+ // TODO(darin): Figure out what happens to these methods.
+#if 0
// WebCore::WidgetClientWin
virtual gfx::ViewHandle containingWindow();
- virtual void invalidateRect(const WebCore::IntRect& damaged_rect);
- virtual void scrollRect(int dx, int dy, const WebCore::IntRect& clip_rect);
- virtual void popupOpened(WebCore::Widget* widget,
- const WebCore::IntRect& bounds);
- virtual void popupClosed(WebCore::Widget* widget);
- virtual void setCursor(const WebCore::Cursor& cursor);
- virtual void setFocus();
virtual const SkBitmap* getPreloadedResourceBitmap(int resource_id);
virtual void onScrollPositionChanged(WebCore::Widget* widget);
virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks(
WebCore::Frame* frame);
virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame);
virtual bool isHidden();
+#endif
// WebCore::BackForwardListClient
virtual void didAddHistoryItem(WebCore::HistoryItem* item);
diff --git a/webkit/glue/webwidget_impl.cc b/webkit/glue/webwidget_impl.cc
index 381c4b8..c04bedb 100644
--- a/webkit/glue/webwidget_impl.cc
+++ b/webkit/glue/webwidget_impl.cc
@@ -22,6 +22,7 @@ MSVC_POP_WARNING();
#include "base/gfx/rect.h"
#include "base/logging.h"
#include "webkit/glue/event_conversion.h"
+#include "webkit/glue/glue_util.h"
#include "webkit/glue/webinputevent.h"
#include "webkit/glue/webwidget_delegate.h"
#include "webkit/glue/webwidget_impl.h"
@@ -45,15 +46,13 @@ WebWidgetImpl::WebWidgetImpl(WebWidgetDelegate* delegate)
}
WebWidgetImpl::~WebWidgetImpl() {
- if (widget_) {
+ if (widget_)
widget_->setClient(NULL);
- }
}
-void WebWidgetImpl::Init(WebCore::Widget* widget, const gfx::Rect& bounds) {
- DCHECK(widget->isFrameView());
- widget_ = static_cast<FramelessScrollView*>(widget);
-
+void WebWidgetImpl::Init(WebCore::FramelessScrollView* widget,
+ const gfx::Rect& bounds) {
+ widget_ = widget;
widget_->setClient(this);
if (delegate_) {
@@ -109,7 +108,7 @@ void WebWidgetImpl::Resize(const gfx::Size& new_size) {
if (widget_) {
IntRect new_geometry(0, 0, size_.width(), size_.height());
- widget_->setFrameGeometry(new_geometry);
+ widget_->setFrameRect(new_geometry);
}
if (delegate_) {
@@ -197,51 +196,47 @@ bool WebWidgetImpl::ImeUpdateStatus(bool* enable_ime, const void** id,
return false;
}
-const SkBitmap* WebWidgetImpl::getPreloadedResourceBitmap(int resource_id) {
- return NULL;
-}
-
-const WTF::Vector<RefPtr<WebCore::Range> >* WebWidgetImpl::getTickmarks(
- WebCore::Frame* frame) {
- return NULL;
-}
+//-----------------------------------------------------------------------------
+// WebCore::HostWindow
-size_t WebWidgetImpl::getActiveTickmarkIndex(WebCore::Frame* frame) {
- return kNoTickmark;
+void WebWidgetImpl::repaint(const WebCore::IntRect& paint_rect,
+ bool content_changed,
+ bool immediate,
+ bool repaint_content_only) {
+ if (delegate_)
+ delegate_->DidInvalidateRect(this, webkit_glue::FromIntRect(paint_rect));
}
-void WebWidgetImpl::onScrollPositionChanged(Widget* widget) {
+void WebWidgetImpl::scroll(const WebCore::IntSize& scroll_delta,
+ const WebCore::IntRect& scroll_rect,
+ const WebCore::IntRect& clip_rect) {
+ if (delegate_) {
+ int dx = scroll_delta.width();
+ int dy = scroll_delta.height();
+ delegate_->DidScrollRect(this, dx, dy, webkit_glue::FromIntRect(clip_rect));
+ }
}
-//-----------------------------------------------------------------------------
-// WebCore::WidgetClientWin
-
-gfx::ViewHandle WebWidgetImpl::containingWindow() {
- return delegate_ ? delegate_->GetContainingWindow(this) : NULL;
+WebCore::IntPoint WebWidgetImpl::screenToWindow(
+ const WebCore::IntPoint& point) const {
+ NOTIMPLEMENTED();
+ return WebCore::IntPoint();
}
-void WebWidgetImpl::invalidateRect(const IntRect& damaged_rect) {
- if (delegate_)
- delegate_->DidInvalidateRect(this, gfx::Rect(damaged_rect.x(),
- damaged_rect.y(),
- damaged_rect.width(),
- damaged_rect.height()));
+WebCore::IntRect WebWidgetImpl::windowToScreen(
+ const WebCore::IntRect& rect) const {
+ NOTIMPLEMENTED();
+ return WebCore::IntRect();
}
-void WebWidgetImpl::scrollRect(int dx, int dy, const IntRect& clip_rect) {
- if (delegate_)
- delegate_->DidScrollRect(this, dx, dy, gfx::Rect(clip_rect.x(),
- clip_rect.y(),
- clip_rect.width(),
- clip_rect.height()));
+PlatformWidget WebWidgetImpl::platformWindow() const {
+ return NULL;
}
-void WebWidgetImpl::popupOpened(WebCore::Widget* widget,
- const WebCore::IntRect& bounds) {
- NOTREACHED() << "popupOpened called on a popup";
-}
+//-----------------------------------------------------------------------------
+// WebCore::FramelessScrollViewClient
-void WebWidgetImpl::popupClosed(WebCore::Widget* widget) {
+void WebWidgetImpl::popupClosed(WebCore::FramelessScrollView* widget) {
DCHECK(widget == widget_);
if (widget_) {
widget_->setClient(NULL);
@@ -250,16 +245,29 @@ void WebWidgetImpl::popupClosed(WebCore::Widget* widget) {
delegate_->CloseWidgetSoon(this);
}
-void WebWidgetImpl::setCursor(const WebCore::Cursor& cursor) {
-#if defined(OS_WIN)
- // TODO(pinkerton): re-enable when WebCursor is ported
- if (delegate_)
- delegate_->SetCursor(this, cursor.impl());
-#endif
+//-----------------------------------------------------------------------------
+// WebCore::WidgetClientWin
+
+// TODO(darin): Figure out what happens to these methods.
+#if 0
+gfx::ViewHandle WebWidgetImpl::containingWindow() {
+ return delegate_ ? delegate_->GetContainingWindow(this) : NULL;
}
-void WebWidgetImpl::setFocus() {
- delegate_->Focus(this);
+const SkBitmap* WebWidgetImpl::getPreloadedResourceBitmap(int resource_id) {
+ return NULL;
+}
+
+void WebWidgetImpl::onScrollPositionChanged(Widget* widget) {
+}
+
+const WTF::Vector<RefPtr<WebCore::Range> >* WebWidgetImpl::getTickmarks(
+ WebCore::Frame* frame) {
+ return NULL;
+}
+
+size_t WebWidgetImpl::getActiveTickmarkIndex(WebCore::Frame* frame) {
+ return kNoTickmark;
}
bool WebWidgetImpl::isHidden() {
@@ -268,3 +276,4 @@ bool WebWidgetImpl::isHidden() {
return delegate_->IsHidden();
}
+#endif
diff --git a/webkit/glue/webwidget_impl.h b/webkit/glue/webwidget_impl.h
index 32bcbde..288485f 100644
--- a/webkit/glue/webwidget_impl.h
+++ b/webkit/glue/webwidget_impl.h
@@ -12,9 +12,7 @@
#include "base/gfx/size.h"
#include "webkit/glue/webwidget.h"
-MSVC_PUSH_WARNING_LEVEL(0);
-#include "WidgetClientChromium.h"
-MSVC_POP_WARNING();
+#include "FramelessScrollViewClient.h"
namespace WebCore {
class Frame;
@@ -31,7 +29,8 @@ class WebMouseEvent;
class WebMouseWheelEvent;
class WebWidgetDelegate;
-class WebWidgetImpl : public WebWidget, public WebCore::WidgetClientChromium {
+class WebWidgetImpl : public WebWidget,
+ public WebCore::FramelessScrollViewClient {
public:
// WebWidget
virtual void Close();
@@ -50,7 +49,7 @@ class WebWidgetImpl : public WebWidget, public WebCore::WidgetClientChromium {
int* x, int* y);
// WebWidgetImpl
- void Init(WebCore::Widget* widget, const gfx::Rect& bounds);
+ void Init(WebCore::FramelessScrollView* widget, const gfx::Rect& bounds);
const gfx::Size& size() const { return size_; }
@@ -72,21 +71,32 @@ class WebWidgetImpl : public WebWidget, public WebCore::WidgetClientChromium {
WebWidgetImpl(WebWidgetDelegate* delegate);
~WebWidgetImpl();
+ // WebCore::HostWindow methods:
+ virtual void repaint(const WebCore::IntRect&,
+ bool content_changed,
+ bool immediate = false,
+ bool repaint_content_only = false);
+ virtual void scroll(const WebCore::IntSize& scroll_delta,
+ const WebCore::IntRect& scroll_rect,
+ const WebCore::IntRect& clip_rect);
+ virtual WebCore::IntPoint screenToWindow(const WebCore::IntPoint&) const;
+ virtual WebCore::IntRect windowToScreen(const WebCore::IntRect&) const;
+ virtual PlatformWidget platformWindow() const;
+
+ // WebCore::FramelessScrollViewClient methods:
+ virtual void popupClosed(WebCore::FramelessScrollView* popup_view);
+
+ // TODO(darin): Figure out what happens to these methods.
+#if 0
// WebCore::WidgetClientWin
virtual gfx::ViewHandle containingWindow();
- virtual void invalidateRect(const WebCore::IntRect& damaged_rect);
- virtual void scrollRect(int dx, int dy, const WebCore::IntRect& clip_rect);
- virtual void popupOpened(WebCore::Widget* widget,
- const WebCore::IntRect& bounds);
- virtual void popupClosed(WebCore::Widget* widget);
- virtual void setCursor(const WebCore::Cursor& cursor);
- virtual void setFocus();
virtual const SkBitmap* getPreloadedResourceBitmap(int resource_id);
virtual void onScrollPositionChanged(WebCore::Widget* widget);
virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks(
WebCore::Frame* frame);
virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame);
virtual bool isHidden();
+#endif
WebWidgetDelegate* delegate_;
gfx::Size size_;
diff --git a/webkit/pending/AccessibleBase.cpp b/webkit/pending/AccessibleBase.cpp
index 9f4c320..e123ae3 100644
--- a/webkit/pending/AccessibleBase.cpp
+++ b/webkit/pending/AccessibleBase.cpp
@@ -33,6 +33,7 @@
#include "Element.h"
#include "EventHandler.h"
#include "FrameView.h"
+#include "HostWindow.h"
#include "HTMLNames.h"
#include "HTMLFrameElementBase.h"
#include "HTMLInputElement.h"
@@ -114,7 +115,7 @@ HRESULT STDMETHODCALLTYPE AccessibleBase::get_accParent(IDispatch** parent)
if (!procPtr)
return E_FAIL;
- return procPtr(m_object->topDocumentFrameView()->containingWindow(), OBJID_WINDOW, __uuidof(IAccessible), reinterpret_cast<void**>(parent));
+ return procPtr(m_object->topDocumentFrameView()->hostWindow()->platformWindow(), OBJID_WINDOW, __uuidof(IAccessible), reinterpret_cast<void**>(parent));
}
HRESULT STDMETHODCALLTYPE AccessibleBase::get_accChildCount(long* count)
diff --git a/webkit/pending/DeleteButtonController.cpp b/webkit/pending/DeleteButtonController.cpp
deleted file mode 100644
index d00220d..0000000
--- a/webkit/pending/DeleteButtonController.cpp
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * 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 "DeleteButtonController.h"
-
-#include "CachedImage.h"
-#include "CSSMutableStyleDeclaration.h"
-#include "CSSPrimitiveValue.h"
-#include "CSSPropertyNames.h"
-#include "CSSValueKeywords.h"
-#include "DeleteButton.h"
-#include "Document.h"
-#include "Editor.h"
-#include "Frame.h"
-#include "htmlediting.h"
-#include "HTMLDivElement.h"
-#include "HTMLNames.h"
-#include "Image.h"
-#include "Node.h"
-#include "Range.h"
-#include "RemoveNodeCommand.h"
-#include "RenderObject.h"
-#include "SelectionController.h"
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-const char* const DeleteButtonController::containerElementIdentifier = "WebKit-Editing-Delete-Container";
-const char* const DeleteButtonController::buttonElementIdentifier = "WebKit-Editing-Delete-Button";
-const char* const DeleteButtonController::outlineElementIdentifier = "WebKit-Editing-Delete-Outline";
-
-DeleteButtonController::DeleteButtonController(Frame* frame)
- : m_frame(frame)
- , m_wasStaticPositioned(false)
- , m_wasAutoZIndex(false)
- , m_disableStack(0)
-{
-}
-
-static bool isDeletableElement(const Node* node)
-{
- if (!node || !node->isHTMLElement() || !node->inDocument() || !node->isContentEditable())
- return false;
-
- const int minimumWidth = 25;
- const int minimumHeight = 25;
- const unsigned minimumVisibleBorders = 3;
-
- RenderObject* renderer = node->renderer();
- if (!renderer || renderer->width() < minimumWidth || renderer->height() < minimumHeight)
- return false;
-
- if (renderer->isTable())
- return true;
-
- if (node->hasTagName(ulTag) || node->hasTagName(olTag))
- return true;
-
- if (renderer->isPositioned())
- return true;
-
- // allow block elements (excluding table cells) that have some non-transparent borders
- if (renderer->isRenderBlock() && !renderer->isTableCell()) {
- RenderStyle* style = renderer->style();
- if (style && style->hasBorder()) {
- unsigned visibleBorders = style->borderTop().isVisible() + style->borderBottom().isVisible() + style->borderLeft().isVisible() + style->borderRight().isVisible();
- if (visibleBorders >= minimumVisibleBorders)
- return true;
- }
- }
-
- return false;
-}
-
-static HTMLElement* enclosingDeletableElement(const Selection& selection)
-{
- if (!selection.isContentEditable())
- return 0;
-
- RefPtr<Range> range = selection.toRange();
- if (!range)
- return 0;
-
- ExceptionCode ec = 0;
- Node* container = range->commonAncestorContainer(ec);
- ASSERT(container);
- ASSERT(ec == 0);
-
- // The enclosingNodeOfType function only works on nodes that are editable
- // (which is strange, given its name).
- if (!container->isContentEditable())
- return 0;
-
- Node* element = enclosingNodeOfType(Position(container, 0), &isDeletableElement);
- if (!element)
- return 0;
-
- ASSERT(element->isHTMLElement());
- return static_cast<HTMLElement*>(element);
-}
-
-void DeleteButtonController::respondToChangedSelection(const Selection& oldSelection)
-{
- if (!enabled())
- return;
-
- HTMLElement* oldElement = enclosingDeletableElement(oldSelection);
- HTMLElement* newElement = enclosingDeletableElement(m_frame->selection()->selection());
- if (oldElement == newElement)
- return;
-
- // If the base is inside a deletable element, give the element a delete widget.
- if (newElement)
- show(newElement);
- else
- hide();
-}
-
-void DeleteButtonController::createDeletionUI()
-{
- RefPtr<HTMLDivElement> container = new HTMLDivElement(m_target->document());
- container->setId(containerElementIdentifier);
-
- CSSMutableStyleDeclaration* style = container->getInlineStyleDecl();
- style->setProperty(CSSPropertyWebkitUserDrag, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserSelect, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserModify, CSSValueNone);
-
- RefPtr<HTMLDivElement> outline = new HTMLDivElement(m_target->document());
- outline->setId(outlineElementIdentifier);
-
- const int borderWidth = 4;
- const int borderRadius = 6;
-
- style = outline->getInlineStyleDecl();
- style->setProperty(CSSPropertyPosition, CSSValueAbsolute);
- style->setProperty(CSSPropertyCursor, CSSValueDefault);
- style->setProperty(CSSPropertyWebkitUserDrag, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserSelect, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserModify, CSSValueNone);
- style->setProperty(CSSPropertyZIndex, String::number(-1000000));
- style->setProperty(CSSPropertyTop, String::number(-borderWidth - m_target->renderer()->borderTop()) + "px");
- style->setProperty(CSSPropertyRight, String::number(-borderWidth - m_target->renderer()->borderRight()) + "px");
- style->setProperty(CSSPropertyBottom, String::number(-borderWidth - m_target->renderer()->borderBottom()) + "px");
- style->setProperty(CSSPropertyLeft, String::number(-borderWidth - m_target->renderer()->borderLeft()) + "px");
- style->setProperty(CSSPropertyBorder, String::number(borderWidth) + "px solid rgba(0, 0, 0, 0.6)");
- style->setProperty(CSSPropertyWebkitBorderRadius, String::number(borderRadius) + "px");
-
- ExceptionCode ec = 0;
- container->appendChild(outline.get(), ec);
- ASSERT(ec == 0);
- if (ec)
- return;
-
- RefPtr<DeleteButton> button = new DeleteButton(m_target->document());
- button->setId(buttonElementIdentifier);
-
- const int buttonWidth = 30;
- const int buttonHeight = 30;
- const int buttonBottomShadowOffset = 2;
-
- style = button->getInlineStyleDecl();
- style->setProperty(CSSPropertyPosition, CSSValueAbsolute);
- style->setProperty(CSSPropertyCursor, CSSValueDefault);
- style->setProperty(CSSPropertyWebkitUserDrag, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserSelect, CSSValueNone);
- style->setProperty(CSSPropertyWebkitUserModify, CSSValueNone);
- style->setProperty(CSSPropertyZIndex, String::number(1000000));
- style->setProperty(CSSPropertyTop, String::number((-buttonHeight / 2) - m_target->renderer()->borderTop() - (borderWidth / 2) + buttonBottomShadowOffset) + "px");
- style->setProperty(CSSPropertyLeft, String::number((-buttonWidth / 2) - m_target->renderer()->borderLeft() - (borderWidth / 2)) + "px");
- style->setProperty(CSSPropertyWidth, String::number(buttonWidth) + "px");
- style->setProperty(CSSPropertyHeight, String::number(buttonHeight) + "px");
-
- RefPtr<Image> buttonImage = Image::loadPlatformResource("deleteButton");
- if (buttonImage->isNull())
- return;
-
- button->setCachedImage(new CachedImage(buttonImage.get()));
-
- container->appendChild(button.get(), ec);
- ASSERT(ec == 0);
- if (ec)
- return;
-
- m_containerElement = container.release();
- m_outlineElement = outline.release();
- m_buttonElement = button.release();
-}
-
-void DeleteButtonController::show(HTMLElement* element)
-{
- hide();
-
- if (!enabled() || !element || !element->inDocument() || !isDeletableElement(element))
- return;
-
- if (!m_frame->editor()->shouldShowDeleteInterface(static_cast<HTMLElement*>(element)))
- return;
-
- // we rely on the renderer having current information, so we should update the layout if needed
- m_frame->document()->updateLayoutIgnorePendingStylesheets();
-
- m_target = element;
-
- if (!m_containerElement) {
- createDeletionUI();
- if (!m_containerElement) {
- hide();
- return;
- }
- }
-
- ExceptionCode ec = 0;
- m_target->appendChild(m_containerElement.get(), ec);
- ASSERT(ec == 0);
- if (ec) {
- hide();
- return;
- }
-
- if (m_target->renderer()->style()->position() == StaticPosition) {
- m_target->getInlineStyleDecl()->setProperty(CSSPropertyPosition, CSSValueRelative);
- m_wasStaticPositioned = true;
- }
-
- if (m_target->renderer()->style()->hasAutoZIndex()) {
- m_target->getInlineStyleDecl()->setProperty(CSSPropertyZIndex, "0");
- m_wasAutoZIndex = true;
- }
-}
-
-void DeleteButtonController::hide()
-{
- m_outlineElement = 0;
- m_buttonElement = 0;
-
- ExceptionCode ec = 0;
- if (m_containerElement && m_containerElement->parentNode())
- m_containerElement->parentNode()->removeChild(m_containerElement.get(), ec);
-
- if (m_target) {
- if (m_wasStaticPositioned)
- m_target->getInlineStyleDecl()->setProperty(CSSPropertyPosition, CSSValueStatic);
- if (m_wasAutoZIndex)
- m_target->getInlineStyleDecl()->setProperty(CSSPropertyZIndex, CSSValueAuto);
- }
-
- m_wasStaticPositioned = false;
- m_wasAutoZIndex = false;
-}
-
-void DeleteButtonController::enable()
-{
- ASSERT(m_disableStack > 0);
- if (m_disableStack > 0)
- m_disableStack--;
- if (enabled())
- show(enclosingDeletableElement(m_frame->selection()->selection()));
-}
-
-void DeleteButtonController::disable()
-{
- if (enabled())
- hide();
- m_disableStack++;
-}
-
-void DeleteButtonController::deleteTarget()
-{
- if (!enabled() || !m_target)
- return;
-
- RefPtr<Node> element = m_target;
- hide();
-
- // Because the deletion UI only appears when the selection is entirely
- // within the target, we unconditionally update the selection to be
- // a caret where the target had been.
- Position pos = positionBeforeNode(element.get());
- applyCommand(RemoveNodeCommand::create(element.release()));
- m_frame->selection()->setSelection(VisiblePosition(pos));
-}
-
-} // namespace WebCore
diff --git a/webkit/pending/RenderMenuList.cpp b/webkit/pending/RenderMenuList.cpp
deleted file mode 100644
index 69bc104e..0000000
--- a/webkit/pending/RenderMenuList.cpp
+++ /dev/null
@@ -1,423 +0,0 @@
-/**
- * This file is part of the select element renderer in WebCore.
- *
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "RenderMenuList.h"
-
-#include "CSSStyleSelector.h"
-#include "Document.h"
-#include "FontSelector.h"
-#include "FrameView.h"
-#include "GraphicsContext.h"
-#include "HTMLNames.h"
-#include "HTMLOptionElement.h"
-#include "HTMLOptGroupElement.h"
-#include "HTMLSelectElement.h"
-#include "PopupMenu.h"
-#include "RenderBR.h"
-#include "RenderText.h"
-#include "RenderTheme.h"
-#include <math.h>
-
-using namespace std;
-
-namespace WebCore {
-
-using namespace HTMLNames;
-
-RenderMenuList::RenderMenuList(HTMLSelectElement* element)
- : RenderFlexibleBox(element)
- , m_buttonText(0)
- , m_innerBlock(0)
- , m_optionsChanged(true)
- , m_optionsWidth(0)
- , m_popup(0)
- , m_popupIsVisible(false)
-{
-}
-
-RenderMenuList::~RenderMenuList()
-{
- if (m_popup)
- m_popup->disconnectClient();
- m_popup = 0;
-}
-
-// this static cast is safe because RenderMenuLists are only created for HTMLSelectElements
-HTMLSelectElement* RenderMenuList::selectElement()
-{
- return static_cast<HTMLSelectElement*>(node());
-}
-
-void RenderMenuList::createInnerBlock()
-{
- if (m_innerBlock) {
- ASSERT(firstChild() == m_innerBlock);
- ASSERT(!m_innerBlock->nextSibling());
- return;
- }
-
- // Create an anonymous block.
- ASSERT(!firstChild());
- m_innerBlock = createAnonymousBlock();
- adjustInnerStyle();
- RenderFlexibleBox::addChild(m_innerBlock);
-}
-
-void RenderMenuList::adjustInnerStyle()
-{
- m_innerBlock->style()->setBoxFlex(1.0f);
-
- m_innerBlock->style()->setPaddingLeft(Length(theme()->popupInternalPaddingLeft(style()), Fixed));
- m_innerBlock->style()->setPaddingRight(Length(theme()->popupInternalPaddingRight(style()), Fixed));
- m_innerBlock->style()->setPaddingTop(Length(theme()->popupInternalPaddingTop(style()), Fixed));
- m_innerBlock->style()->setPaddingBottom(Length(theme()->popupInternalPaddingBottom(style()), Fixed));
-
- if (PopupMenu::itemWritingDirectionIsNatural()) {
- // Items in the popup will not respect the CSS text-align and direction properties,
- // so we must adjust our own style to match.
- m_innerBlock->style()->setTextAlign(LEFT);
- TextDirection direction = (m_buttonText && m_buttonText->text()->defaultWritingDirection() == WTF::Unicode::RightToLeft) ? RTL : LTR;
- m_innerBlock->style()->setDirection(direction);
- }
-}
-
-void RenderMenuList::addChild(RenderObject* newChild, RenderObject* beforeChild)
-{
- createInnerBlock();
- m_innerBlock->addChild(newChild, beforeChild);
-}
-
-void RenderMenuList::removeChild(RenderObject* oldChild)
-{
- if (oldChild == m_innerBlock || !m_innerBlock) {
- RenderFlexibleBox::removeChild(oldChild);
- m_innerBlock = 0;
- } else
- m_innerBlock->removeChild(oldChild);
-}
-
-void RenderMenuList::setStyle(RenderStyle* newStyle)
-{
- bool fontChanged = !style() || style()->font() != newStyle->font();
-
- // Don't allow overflow on menu lists.
- newStyle->setOverflowX(OVISIBLE);
- newStyle->setOverflowY(OVISIBLE);
-
- RenderBlock::setStyle(newStyle);
-
- if (m_buttonText)
- m_buttonText->setStyle(newStyle);
- if (m_innerBlock) // RenderBlock handled updating the anonymous block's style.
- adjustInnerStyle();
- setReplaced(isInline());
- if (fontChanged)
- updateOptionsWidth();
-}
-
-void RenderMenuList::updateOptionsWidth()
-{
- float maxOptionWidth = 0;
- const Vector<HTMLElement*>& listItems = static_cast<HTMLSelectElement*>(node())->listItems();
- int size = listItems.size();
- for (int i = 0; i < size; ++i) {
- HTMLElement* element = listItems[i];
- if (element->hasTagName(optionTag)) {
- String text = static_cast<HTMLOptionElement*>(element)->optionText();
- if (!text.isEmpty())
- maxOptionWidth = max(maxOptionWidth, style()->font().floatWidth(text));
- }
- }
-
- int width = static_cast<int>(ceilf(maxOptionWidth));
- if (m_optionsWidth == width)
- return;
-
- m_optionsWidth = width;
- setNeedsLayoutAndPrefWidthsRecalc();
-}
-
-void RenderMenuList::updateFromElement()
-{
- if (m_optionsChanged) {
- updateOptionsWidth();
- m_optionsChanged = false;
- }
-
- if (m_popupIsVisible)
- m_popup->updateFromElement();
- else
- setTextFromOption(static_cast<HTMLSelectElement*>(node())->selectedIndex());
-}
-
-void RenderMenuList::setTextFromOption(int optionIndex)
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- const Vector<HTMLElement*>& listItems = select->listItems();
- int size = listItems.size();
-
- int i = select->optionToListIndex(optionIndex);
- String text = "";
- if (i >= 0 && i < size) {
- HTMLElement* element = listItems[i];
- if (element->hasTagName(optionTag))
- text = static_cast<HTMLOptionElement*>(listItems[i])->optionText();
- }
- setText(text.stripWhiteSpace());
-}
-
-void RenderMenuList::setText(const String& s)
-{
- if (s.isEmpty()) {
- if (!m_buttonText || !m_buttonText->isBR()) {
- if (m_buttonText)
- m_buttonText->destroy();
- m_buttonText = new (renderArena()) RenderBR(document());
- m_buttonText->setStyle(style());
- addChild(m_buttonText);
- }
- } else {
- if (m_buttonText && !m_buttonText->isBR())
- m_buttonText->setText(s.impl());
- else {
- if (m_buttonText)
- m_buttonText->destroy();
- m_buttonText = new (renderArena()) RenderText(document(), s.impl());
- m_buttonText->setStyle(style());
- addChild(m_buttonText);
- }
- adjustInnerStyle();
- }
-}
-
-String RenderMenuList::text() const
-{
- return m_buttonText ? m_buttonText->text() : 0;
-}
-
-IntRect RenderMenuList::controlClipRect(int tx, int ty) const
-{
- // Clip to the intersection of the content box and the content box for the inner box
- // This will leave room for the arrows which sit in the inner box padding,
- // and if the inner box ever spills out of the outer box, that will get clipped too.
- IntRect outerBox(tx + borderLeft() + paddingLeft(),
- ty + borderTop() + paddingTop(),
- contentWidth(),
- contentHeight());
-
- IntRect innerBox(tx + m_innerBlock->xPos() + m_innerBlock->paddingLeft(),
- ty + m_innerBlock->yPos() + m_innerBlock->paddingTop(),
- m_innerBlock->contentWidth(),
- m_innerBlock->contentHeight());
-
- return intersection(outerBox, innerBox);
-}
-
-void RenderMenuList::calcPrefWidths()
-{
- m_minPrefWidth = 0;
- m_maxPrefWidth = 0;
-
- if (style()->width().isFixed() && style()->width().value() > 0)
- m_minPrefWidth = m_maxPrefWidth = calcContentBoxWidth(style()->width().value());
- else
- m_maxPrefWidth = max(m_optionsWidth, theme()->minimumMenuListSize(style())) + m_innerBlock->paddingLeft() + m_innerBlock->paddingRight();
-
- if (style()->minWidth().isFixed() && style()->minWidth().value() > 0) {
- m_maxPrefWidth = max(m_maxPrefWidth, calcContentBoxWidth(style()->minWidth().value()));
- m_minPrefWidth = max(m_minPrefWidth, calcContentBoxWidth(style()->minWidth().value()));
- } else if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent()))
- m_minPrefWidth = 0;
- else
- m_minPrefWidth = m_maxPrefWidth;
-
- if (style()->maxWidth().isFixed() && style()->maxWidth().value() != undefinedLength) {
- m_maxPrefWidth = min(m_maxPrefWidth, calcContentBoxWidth(style()->maxWidth().value()));
- m_minPrefWidth = min(m_minPrefWidth, calcContentBoxWidth(style()->maxWidth().value()));
- }
-
- int toAdd = paddingLeft() + paddingRight() + borderLeft() + borderRight();
- m_minPrefWidth += toAdd;
- m_maxPrefWidth += toAdd;
-
- setPrefWidthsDirty(false);
-}
-
-void RenderMenuList::showPopup()
-{
- if (m_popupIsVisible)
- return;
-
- // Create m_innerBlock here so it ends up as the first child.
- // This is important because otherwise we might try to create m_innerBlock
- // inside the showPopup call and it would fail.
- createInnerBlock();
- if (!m_popup)
- m_popup = PopupMenu::create(this);
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- m_popupIsVisible = true;
- m_popup->show(absoluteBoundingBoxRect(), document()->view(),
- select->optionToListIndex(select->selectedIndex()));
-}
-
-void RenderMenuList::hidePopup()
-{
- if (m_popup)
- m_popup->hide();
- m_popupIsVisible = false;
-}
-
-void RenderMenuList::valueChanged(unsigned listIndex, bool fireOnChange)
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- select->setSelectedIndex(select->listToOptionIndex(listIndex), true, fireOnChange);
-}
-
-String RenderMenuList::itemText(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
- if (element->hasTagName(optgroupTag))
- return static_cast<HTMLOptGroupElement*>(element)->groupLabelText();
- else if (element->hasTagName(optionTag))
- return static_cast<HTMLOptionElement*>(element)->optionText();
- return String();
-}
-
-bool RenderMenuList::itemIsEnabled(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
- if (!element->hasTagName(optionTag))
- return false;
- bool groupEnabled = true;
- if (element->parentNode() && element->parentNode()->hasTagName(optgroupTag))
- groupEnabled = element->parentNode()->isEnabled();
- return element->isEnabled() && groupEnabled;
-}
-
-RenderStyle* RenderMenuList::itemStyle(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
-
- RenderStyle* style = element->renderStyle() ? element->renderStyle() : element->computedStyle();
- return style ? style : clientStyle();
-}
-
-Color RenderMenuList::itemBackgroundColor(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
-
- Color backgroundColor;
- if (element->renderStyle())
- backgroundColor = element->renderStyle()->backgroundColor();
- // If the item has an opaque background color, return that.
- if (!backgroundColor.hasAlpha())
- return backgroundColor;
-
- // Otherwise, the item's background is overlayed on top of the menu background.
- backgroundColor = style()->backgroundColor().blend(backgroundColor);
- if (!backgroundColor.hasAlpha())
- return backgroundColor;
-
- // If the menu background is not opaque, then add an opaque white background behind.
- return Color(Color::white).blend(backgroundColor);
-}
-
-RenderStyle* RenderMenuList::clientStyle() const
-{
- return m_innerBlock ? m_innerBlock->style() : style();
-}
-
-Document* RenderMenuList::clientDocument() const
-{
- return document();
-}
-
-int RenderMenuList::clientInsetLeft() const
-{
- return 0;
-}
-
-int RenderMenuList::clientInsetRight() const
-{
- return 0;
-}
-
-int RenderMenuList::clientPaddingLeft() const
-{
- return paddingLeft();
-}
-
-int RenderMenuList::clientPaddingRight() const
-{
- return paddingRight();
-}
-
-int RenderMenuList::listSize() const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- return select->listItems().size();
-}
-
-int RenderMenuList::selectedIndex() const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- return select->optionToListIndex(select->selectedIndex());
-}
-
-bool RenderMenuList::itemIsSeparator(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
- return element->hasTagName(hrTag);
-}
-
-bool RenderMenuList::itemIsLabel(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
- return element->hasTagName(optgroupTag);
-}
-
-bool RenderMenuList::itemIsSelected(unsigned listIndex) const
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- HTMLElement* element = select->listItems()[listIndex];
- return element->hasTagName(optionTag)&& static_cast<HTMLOptionElement*>(element)->selected();
-}
-
-void RenderMenuList::setTextFromItem(unsigned listIndex)
-{
- HTMLSelectElement* select = static_cast<HTMLSelectElement*>(node());
- setTextFromOption(select->listToOptionIndex(listIndex));
-}
-
-FontSelector* RenderMenuList::fontSelector() const
-{
- return document()->styleSelector()->fontSelector();
-}
-
-}
diff --git a/webkit/pending/RenderMenuList.h b/webkit/pending/RenderMenuList.h
deleted file mode 100644
index 286931b..0000000
--- a/webkit/pending/RenderMenuList.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * This file is part of the select element renderer in WebCore.
- *
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef RenderMenuList_h
-#define RenderMenuList_h
-
-#include "RenderFlexibleBox.h"
-#include "PopupMenuClient.h"
-
-#if PLATFORM(MAC)
-#define POPUP_MENU_PULLS_DOWN 0
-#else
-#define POPUP_MENU_PULLS_DOWN 1
-#endif
-
-namespace WebCore {
-
-class HTMLSelectElement;
-class PopupMenu;
-
-class RenderMenuList : public RenderFlexibleBox, private PopupMenuClient {
-public:
- RenderMenuList(HTMLSelectElement*);
- ~RenderMenuList();
-
-
- HTMLSelectElement* selectElement();
-
- virtual bool isMenuList() const { return true; }
-
- virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0);
- virtual void removeChild(RenderObject*);
- virtual bool createsAnonymousWrapper() const { return true; }
- virtual bool canHaveChildren() const { return false; }
-
- virtual void setStyle(RenderStyle*);
- virtual void updateFromElement();
-
- virtual bool hasControlClip() const { return true; }
- virtual IntRect controlClipRect(int tx, int ty) const;
-
- virtual const char* renderName() const { return "RenderMenuList"; }
-
- virtual void calcPrefWidths();
-
- bool popupIsVisible() const { return m_popupIsVisible; }
- void showPopup();
- void hidePopup();
-
- void setOptionsChanged(bool changed) { m_optionsChanged = changed; }
-
- String text() const;
-
-private:
- // PopupMenuClient methods
- virtual String itemText(unsigned listIndex) const;
- virtual bool itemIsEnabled(unsigned listIndex) const;
- virtual Color itemBackgroundColor(unsigned listIndex) const;
- virtual RenderStyle* itemStyle(unsigned listIndex) const;
- virtual RenderStyle* clientStyle() const;
- virtual Document* clientDocument() const;
- virtual int clientInsetLeft() const;
- virtual int clientInsetRight() const;
- virtual int clientPaddingLeft() const;
- virtual int clientPaddingRight() const;
- virtual int listSize() const;
- virtual int selectedIndex() const;
- virtual bool itemIsSeparator(unsigned listIndex) const;
- virtual bool itemIsLabel(unsigned listIndex) const;
- virtual bool itemIsSelected(unsigned listIndex) const;
- virtual void setTextFromItem(unsigned listIndex);
- virtual bool valueShouldChangeOnHotTrack() const { return true; }
- virtual bool shouldPopOver() const { return !POPUP_MENU_PULLS_DOWN; }
- virtual void valueChanged(unsigned listIndex, bool fireOnChange = true);
- virtual FontSelector* fontSelector() const;
-
- virtual bool hasLineIfEmpty() const { return true; }
-
- void createInnerBlock();
- void adjustInnerStyle();
- void setText(const String&);
- void setTextFromOption(int optionIndex);
- void updateOptionsWidth();
-
- RenderText* m_buttonText;
- RenderBlock* m_innerBlock;
-
- bool m_optionsChanged;
- int m_optionsWidth;
-
- RefPtr<PopupMenu> m_popup;
- bool m_popupIsVisible;
-};
-
-}
-
-#endif
diff --git a/webkit/pending/RenderStyle.h b/webkit/pending/RenderStyle.h
deleted file mode 100644
index 5afa9f4..0000000
--- a/webkit/pending/RenderStyle.h
+++ /dev/null
@@ -1,2487 +0,0 @@
-/*
- * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
- * (C) 2000 Antti Koivisto (koivisto@kde.org)
- * (C) 2000 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
- * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef RenderStyle_h
-#define RenderStyle_h
-
-/*
- * WARNING:
- * --------
- *
- * The order of the values in the enums have to agree with the order specified
- * in CSSValueKeywords.in, otherwise some optimizations in the parser will fail,
- * and produce invalid results.
- */
-
-#include "AffineTransform.h"
-#include "CSSHelper.h"
-#include "CSSImageGeneratorValue.h"
-#include "CSSPrimitiveValue.h"
-#include "CSSReflectionDirection.h"
-#include "CSSValueList.h"
-#include "Color.h"
-#include "DataRef.h"
-#include "FloatPoint.h"
-#include "Font.h"
-#include "GraphicsTypes.h"
-#include "IntRect.h"
-#include "Length.h"
-#include "NinePieceImage.h"
-#include "Pair.h"
-#include "TextDirection.h"
-#include <wtf/HashMap.h>
-#include <wtf/OwnPtr.h>
-#include <wtf/RefCounted.h>
-#include <wtf/Vector.h>
-
-#if ENABLE(SVG)
-#include "SVGRenderStyle.h"
-#endif
-
-template<typename T, typename U> inline bool compareEqual(const T& t, const U& u) { return t == static_cast<T>(u); }
-
-#define SET_VAR(group, variable, value) \
- if (!compareEqual(group->variable, value)) \
- group.access()->variable = value;
-
-namespace WebCore {
-
-using std::max;
-
-class CSSStyleSelector;
-class CSSValueList;
-class CachedImage;
-class CachedResource;
-class CursorList;
-class KeyframeList;
-class Pair;
-class RenderArena;
-class ShadowValue;
-class StringImpl;
-class StyleImage;
-
-struct CursorData;
-
-enum PseudoState { PseudoUnknown, PseudoNone, PseudoAnyLink, PseudoLink, PseudoVisited};
-
-//------------------------------------------------
-
-//------------------------------------------------
-// Box model attributes. Not inherited.
-
-enum EPosition {
- StaticPosition, RelativePosition, AbsolutePosition, FixedPosition
-};
-
-enum EFloat {
- FNONE = 0, FLEFT, FRIGHT
-};
-
-//------------------------------------------------
-// Border attributes. Not inherited.
-
-// These have been defined in the order of their precedence for border-collapsing. Do
-// not change this order!
-enum EBorderStyle {
- BNONE, BHIDDEN, INSET, GROOVE, RIDGE, OUTSET, DOTTED, DASHED, SOLID, DOUBLE
-};
-
-class BorderValue {
-public:
- BorderValue() {
- width = 3; // medium is default value
- m_style = BNONE;
- }
-
- Color color;
- unsigned width : 12;
- unsigned m_style : 4; // EBorderStyle
-
- EBorderStyle style() const { return static_cast<EBorderStyle>(m_style); }
-
- bool nonZero(bool checkStyle = true) const {
- return width != 0 && (!checkStyle || m_style != BNONE);
- }
-
- bool isTransparent() const {
- return color.isValid() && color.alpha() == 0;
- }
-
- bool isVisible(bool checkStyle = true) const {
- return nonZero(checkStyle) && !isTransparent() && (!checkStyle || m_style != BHIDDEN);
- }
-
- bool operator==(const BorderValue& o) const
- {
- return width == o.width && m_style == o.m_style && color == o.color;
- }
-
- bool operator!=(const BorderValue& o) const
- {
- return !(*this == o);
- }
-};
-
-class OutlineValue : public BorderValue {
-public:
- OutlineValue()
- {
- _offset = 0;
- _auto = false;
- }
-
- bool operator==(const OutlineValue& o) const
- {
- return width == o.width && m_style == o.m_style && color == o.color && _offset == o._offset && _auto == o._auto;
- }
-
- bool operator!=(const OutlineValue& o) const
- {
- return !(*this == o);
- }
-
- int _offset;
- bool _auto;
-};
-
-enum EBorderPrecedence { BOFF, BTABLE, BCOLGROUP, BCOL, BROWGROUP, BROW, BCELL };
-
-struct CollapsedBorderValue {
- CollapsedBorderValue() : border(0), precedence(BOFF) {}
- CollapsedBorderValue(const BorderValue* b, EBorderPrecedence p) :border(b), precedence(p) {}
-
- int width() const { return border && border->nonZero() ? border->width : 0; }
- EBorderStyle style() const { return border ? border->style() : BHIDDEN; }
- bool exists() const { return border; }
- Color color() const { return border ? border->color : Color(); }
- bool isTransparent() const { return border ? border->isTransparent() : true; }
-
- bool operator==(const CollapsedBorderValue& o) const
- {
- if (!border) return !o.border;
- if (!o.border) return false;
- return *border == *o.border && precedence == o.precedence;
- }
-
- const BorderValue* border;
- EBorderPrecedence precedence;
-};
-
-class BorderData {
-public:
- BorderValue left;
- BorderValue right;
- BorderValue top;
- BorderValue bottom;
-
- NinePieceImage image;
-
- IntSize topLeft;
- IntSize topRight;
- IntSize bottomLeft;
- IntSize bottomRight;
-
- bool hasBorder() const
- {
- bool haveImage = image.hasImage();
- return left.nonZero(!haveImage) || right.nonZero(!haveImage) || top.nonZero(!haveImage) || bottom.nonZero(!haveImage);
- }
-
- bool hasBorderRadius() const {
- if (topLeft.width() > 0)
- return true;
- if (topRight.width() > 0)
- return true;
- if (bottomLeft.width() > 0)
- return true;
- if (bottomRight.width() > 0)
- return true;
- return false;
- }
-
- unsigned short borderLeftWidth() const {
- if (!image.hasImage() && (left.style() == BNONE || left.style() == BHIDDEN))
- return 0;
- return left.width;
- }
-
- unsigned short borderRightWidth() const {
- if (!image.hasImage() && (right.style() == BNONE || right.style() == BHIDDEN))
- return 0;
- return right.width;
- }
-
- unsigned short borderTopWidth() const {
- if (!image.hasImage() && (top.style() == BNONE || top.style() == BHIDDEN))
- return 0;
- return top.width;
- }
-
- unsigned short borderBottomWidth() const {
- if (!image.hasImage() && (bottom.style() == BNONE || bottom.style() == BHIDDEN))
- return 0;
- return bottom.width;
- }
-
- bool operator==(const BorderData& o) const
- {
- return left == o.left && right == o.right && top == o.top && bottom == o.bottom && image == o.image &&
- topLeft == o.topLeft && topRight == o.topRight && bottomLeft == o.bottomLeft && bottomRight == o.bottomRight;
- }
-
- bool operator!=(const BorderData& o) const {
- return !(*this == o);
- }
-};
-
-enum EMarginCollapse { MCOLLAPSE, MSEPARATE, MDISCARD };
-
-class StyleSurroundData : public RefCounted<StyleSurroundData> {
-public:
- static PassRefPtr<StyleSurroundData> create() { return adoptRef(new StyleSurroundData); }
- PassRefPtr<StyleSurroundData> copy() const { return adoptRef(new StyleSurroundData(*this)); }
-
- bool operator==(const StyleSurroundData& o) const;
- bool operator!=(const StyleSurroundData& o) const {
- return !(*this == o);
- }
-
- LengthBox offset;
- LengthBox margin;
- LengthBox padding;
- BorderData border;
-
-private:
- StyleSurroundData();
- StyleSurroundData(const StyleSurroundData&);
-};
-
-
-//------------------------------------------------
-// Box attributes. Not inherited.
-
-enum EBoxSizing { CONTENT_BOX, BORDER_BOX };
-
-class StyleBoxData : public RefCounted<StyleBoxData> {
-public:
- static PassRefPtr<StyleBoxData> create() { return adoptRef(new StyleBoxData); }
- PassRefPtr<StyleBoxData> copy() const { return adoptRef(new StyleBoxData(*this)); }
-
- bool operator==(const StyleBoxData& o) const;
- bool operator!=(const StyleBoxData& o) const {
- return !(*this == o);
- }
-
- Length width;
- Length height;
-
- Length min_width;
- Length max_width;
-
- Length min_height;
- Length max_height;
-
- Length vertical_align;
-
- int z_index;
- bool z_auto : 1;
- unsigned boxSizing : 1; // EBoxSizing
-
-private:
- StyleBoxData();
- StyleBoxData(const StyleBoxData&);
-};
-
-#if ENABLE(DASHBOARD_SUPPORT)
-//------------------------------------------------
-// Dashboard region attributes. Not inherited.
-
-struct StyleDashboardRegion {
- String label;
- LengthBox offset;
- int type;
-
- enum {
- None,
- Circle,
- Rectangle
- };
-
- bool operator==(const StyleDashboardRegion& o) const
- {
- return type == o.type && offset == o.offset && label == o.label;
- }
-
- bool operator!=(const StyleDashboardRegion& o) const
- {
- return !(*this == o);
- }
-};
-#endif
-
-//------------------------------------------------
-// Random visual rendering model attributes. Not inherited.
-
-enum EOverflow {
- OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OOVERLAY, OMARQUEE
-};
-
-enum EVerticalAlign {
- BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
- TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
-};
-
-enum EClear{
- CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3
-};
-
-enum ETableLayout {
- TAUTO, TFIXED
-};
-
-enum EUnicodeBidi {
- UBNormal, Embed, Override
-};
-
-class StyleVisualData : public RefCounted<StyleVisualData> {
-public:
- static PassRefPtr<StyleVisualData> create() { return adoptRef(new StyleVisualData); }
- PassRefPtr<StyleVisualData> copy() const { return adoptRef(new StyleVisualData(*this)); }
- ~StyleVisualData();
-
- bool operator==(const StyleVisualData& o) const {
- return ( clip == o.clip &&
- hasClip == o.hasClip &&
- counterIncrement == o.counterIncrement &&
- counterReset == o.counterReset &&
- textDecoration == o.textDecoration &&
- m_zoom == o.m_zoom);
- }
- bool operator!=(const StyleVisualData& o) const { return !(*this == o); }
-
- LengthBox clip;
- bool hasClip : 1;
- unsigned textDecoration : 4; // Text decorations defined *only* by this element.
-
- short counterIncrement; // ok, so these are not visual mode specific
- short counterReset; // can't go to inherited, since these are not inherited
-
- float m_zoom;
-
-private:
- StyleVisualData();
- StyleVisualData(const StyleVisualData&);
-};
-
-//------------------------------------------------
-enum EFillBox {
- BorderFillBox, PaddingFillBox, ContentFillBox, TextFillBox
-};
-
-enum EFillRepeat {
- RepeatFill, RepeatXFill, RepeatYFill, NoRepeatFill
-};
-
-enum EFillLayerType {
- BackgroundFillLayer, MaskFillLayer
-};
-
-struct FillLayer {
-public:
- FillLayer(EFillLayerType);
- ~FillLayer();
-
- StyleImage* image() const { return m_image.get(); }
- Length xPosition() const { return m_xPosition; }
- Length yPosition() const { return m_yPosition; }
- bool attachment() const { return m_attachment; }
- EFillBox clip() const { return static_cast<EFillBox>(m_clip); }
- EFillBox origin() const { return static_cast<EFillBox>(m_origin); }
- EFillRepeat repeat() const { return static_cast<EFillRepeat>(m_repeat); }
- CompositeOperator composite() const { return static_cast<CompositeOperator>(m_composite); }
- LengthSize size() const { return m_size; }
-
- const FillLayer* next() const { return m_next; }
- FillLayer* next() { return m_next; }
-
- bool isImageSet() const { return m_imageSet; }
- bool isXPositionSet() const { return m_xPosSet; }
- bool isYPositionSet() const { return m_yPosSet; }
- bool isAttachmentSet() const { return m_attachmentSet; }
- bool isClipSet() const { return m_clipSet; }
- bool isOriginSet() const { return m_originSet; }
- bool isRepeatSet() const { return m_repeatSet; }
- bool isCompositeSet() const { return m_compositeSet; }
- bool isSizeSet() const { return m_sizeSet; }
-
- void setImage(StyleImage* i) { m_image = i; m_imageSet = true; }
- void setXPosition(const Length& l) { m_xPosition = l; m_xPosSet = true; }
- void setYPosition(const Length& l) { m_yPosition = l; m_yPosSet = true; }
- void setAttachment(bool b) { m_attachment = b; m_attachmentSet = true; }
- void setClip(EFillBox b) { m_clip = b; m_clipSet = true; }
- void setOrigin(EFillBox b) { m_origin = b; m_originSet = true; }
- void setRepeat(EFillRepeat r) { m_repeat = r; m_repeatSet = true; }
- void setComposite(CompositeOperator c) { m_composite = c; m_compositeSet = true; }
- void setSize(const LengthSize& b) { m_size = b; m_sizeSet = true; }
-
- void clearImage() { m_imageSet = false; }
- void clearXPosition() { m_xPosSet = false; }
- void clearYPosition() { m_yPosSet = false; }
- void clearAttachment() { m_attachmentSet = false; }
- void clearClip() { m_clipSet = false; }
- void clearOrigin() { m_originSet = false; }
- void clearRepeat() { m_repeatSet = false; }
- void clearComposite() { m_compositeSet = false; }
- void clearSize() { m_sizeSet = false; }
-
- void setNext(FillLayer* n) { if (m_next != n) { delete m_next; m_next = n; } }
-
- FillLayer& operator=(const FillLayer& o);
- FillLayer(const FillLayer& o);
-
- bool operator==(const FillLayer& o) const;
- bool operator!=(const FillLayer& o) const {
- return !(*this == o);
- }
-
- bool containsImage(StyleImage*) const;
-
- bool hasImage() const {
- if (m_image)
- return true;
- return m_next ? m_next->hasImage() : false;
- }
- bool hasFixedImage() const {
- if (m_image && !m_attachment)
- return true;
- return m_next ? m_next->hasFixedImage() : false;
- }
-
- EFillLayerType type() const { return static_cast<EFillLayerType>(m_type); }
-
- void fillUnsetProperties();
- void cullEmptyLayers();
-
- static bool initialFillAttachment(EFillLayerType) { return true; }
- static EFillBox initialFillClip(EFillLayerType) { return BorderFillBox; }
- static EFillBox initialFillOrigin(EFillLayerType type) { return type == BackgroundFillLayer ? PaddingFillBox : BorderFillBox; }
- static EFillRepeat initialFillRepeat(EFillLayerType) { return RepeatFill; }
- static CompositeOperator initialFillComposite(EFillLayerType) { return CompositeSourceOver; }
- static LengthSize initialFillSize(EFillLayerType) { return LengthSize(); }
- static Length initialFillXPosition(EFillLayerType type) { return Length(0.0, Percent); }
- static Length initialFillYPosition(EFillLayerType type) { return Length(0.0, Percent); }
- static StyleImage* initialFillImage(EFillLayerType) { return 0; }
-
-private:
- FillLayer() { }
-
-public:
- RefPtr<StyleImage> m_image;
-
- Length m_xPosition;
- Length m_yPosition;
-
- bool m_attachment : 1;
- unsigned m_clip : 2; // EFillBox
- unsigned m_origin : 2; // EFillBox
- unsigned m_repeat : 2; // EFillRepeat
- unsigned m_composite : 4; // CompositeOperator
-
- LengthSize m_size;
-
- bool m_imageSet : 1;
- bool m_attachmentSet : 1;
- bool m_clipSet : 1;
- bool m_originSet : 1;
- bool m_repeatSet : 1;
- bool m_xPosSet : 1;
- bool m_yPosSet : 1;
- bool m_compositeSet : 1;
- bool m_sizeSet : 1;
-
- unsigned m_type : 1; // EFillLayerType
-
- FillLayer* m_next;
-};
-
-class StyleBackgroundData : public RefCounted<StyleBackgroundData> {
-public:
- static PassRefPtr<StyleBackgroundData> create() { return adoptRef(new StyleBackgroundData); }
- PassRefPtr<StyleBackgroundData> copy() const { return adoptRef(new StyleBackgroundData(*this)); }
- ~StyleBackgroundData() {}
-
- bool operator==(const StyleBackgroundData& o) const;
- bool operator!=(const StyleBackgroundData &o) const {
- return !(*this == o);
- }
-
- FillLayer m_background;
- Color m_color;
- OutlineValue m_outline;
-
-private:
- StyleBackgroundData();
- StyleBackgroundData(const StyleBackgroundData& o );
-};
-
-//------------------------------------------------
-// CSS3 Marquee Properties
-
-enum EMarqueeBehavior { MNONE, MSCROLL, MSLIDE, MALTERNATE };
-enum EMarqueeDirection { MAUTO = 0, MLEFT = 1, MRIGHT = -1, MUP = 2, MDOWN = -2, MFORWARD = 3, MBACKWARD = -3 };
-
-class StyleMarqueeData : public RefCounted<StyleMarqueeData> {
-public:
- static PassRefPtr<StyleMarqueeData> create() { return adoptRef(new StyleMarqueeData); }
- PassRefPtr<StyleMarqueeData> copy() const { return adoptRef(new StyleMarqueeData(*this)); }
-
- bool operator==(const StyleMarqueeData& o) const;
- bool operator!=(const StyleMarqueeData& o) const {
- return !(*this == o);
- }
-
- Length increment;
- int speed;
-
- int loops; // -1 means infinite.
-
- unsigned behavior : 2; // EMarqueeBehavior
- EMarqueeDirection direction : 3; // not unsigned because EMarqueeDirection has negative values
-
-private:
- StyleMarqueeData();
- StyleMarqueeData(const StyleMarqueeData&);
-};
-
-// CSS3 Multi Column Layout
-
-class StyleMultiColData : public RefCounted<StyleMultiColData> {
-public:
- static PassRefPtr<StyleMultiColData> create() { return adoptRef(new StyleMultiColData); }
- PassRefPtr<StyleMultiColData> copy() const { return adoptRef(new StyleMultiColData(*this)); }
-
- bool operator==(const StyleMultiColData& o) const;
- bool operator!=(const StyleMultiColData &o) const {
- return !(*this == o);
- }
-
- unsigned short ruleWidth() const {
- if (m_rule.style() == BNONE || m_rule.style() == BHIDDEN)
- return 0;
- return m_rule.width;
- }
-
- float m_width;
- unsigned short m_count;
- float m_gap;
- BorderValue m_rule;
-
- bool m_autoWidth : 1;
- bool m_autoCount : 1;
- bool m_normalGap : 1;
- unsigned m_breakBefore : 2; // EPageBreak
- unsigned m_breakAfter : 2; // EPageBreak
- unsigned m_breakInside : 2; // EPageBreak
-
-private:
- StyleMultiColData();
- StyleMultiColData(const StyleMultiColData&);
-};
-
-// CSS Transforms (may become part of CSS3)
-
-class TransformOperation : public RefCounted<TransformOperation> {
-public:
- virtual ~TransformOperation() { }
-
- virtual bool operator==(const TransformOperation&) const = 0;
- bool operator!=(const TransformOperation& o) const { return !(*this == o); }
-
- virtual void apply(AffineTransform&, const IntSize& borderBoxSize) = 0;
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false) = 0;
-
- virtual bool isScaleOperation() const { return false; }
- virtual bool isRotateOperation() const { return false; }
- virtual bool isSkewOperation() const { return false; }
- virtual bool isTranslateOperation() const { return false; }
- virtual bool isMatrixOperation() const { return false; }
-};
-
-class ScaleTransformOperation : public TransformOperation {
-public:
- static PassRefPtr<ScaleTransformOperation> create(double sx, double sy)
- {
- return adoptRef(new ScaleTransformOperation(sx, sy));
- }
-
- virtual bool isScaleOperation() const { return true; }
-
- virtual bool operator==(const TransformOperation& o) const
- {
- if (o.isScaleOperation()) {
- const ScaleTransformOperation* s = static_cast<const ScaleTransformOperation*>(&o);
- return m_x == s->m_x && m_y == s->m_y;
- }
- return false;
- }
-
- virtual void apply(AffineTransform& transform, const IntSize& borderBoxSize)
- {
- transform.scale(m_x, m_y);
- }
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false);
-
-private:
- ScaleTransformOperation(double sx, double sy)
- : m_x(sx), m_y(sy)
- {
- }
-
- double m_x;
- double m_y;
-};
-
-class RotateTransformOperation : public TransformOperation {
-public:
- static PassRefPtr<RotateTransformOperation> create(double angle)
- {
- return adoptRef(new RotateTransformOperation(angle));
- }
-
- virtual bool isRotateOperation() const { return true; }
-
- virtual bool operator==(const TransformOperation& o) const
- {
- if (o.isRotateOperation()) {
- const RotateTransformOperation* r = static_cast<const RotateTransformOperation*>(&o);
- return m_angle == r->m_angle;
- }
- return false;
- }
-
- virtual void apply(AffineTransform& transform, const IntSize& borderBoxSize)
- {
- transform.rotate(m_angle);
- }
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false);
-
-private:
- RotateTransformOperation(double angle)
- : m_angle(angle)
- {
- }
-
- double m_angle;
-};
-
-class SkewTransformOperation : public TransformOperation {
-public:
- static PassRefPtr<SkewTransformOperation> create(double angleX, double angleY)
- {
- return adoptRef(new SkewTransformOperation(angleX, angleY));
- }
-
- virtual bool isSkewOperation() const { return true; }
-
- virtual bool operator==(const TransformOperation& o) const
- {
- if (!o.isSkewOperation())
- return false;
- const SkewTransformOperation* s = static_cast<const SkewTransformOperation*>(&o);
- return m_angleX == s->m_angleX && m_angleY == s->m_angleY;
- }
-
- virtual void apply(AffineTransform& transform, const IntSize& borderBoxSize)
- {
- transform.skew(m_angleX, m_angleY);
- }
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false);
-
-private:
- SkewTransformOperation(double angleX, double angleY)
- : m_angleX(angleX), m_angleY(angleY)
- {
- }
-
- double m_angleX;
- double m_angleY;
-};
-
-class TranslateTransformOperation : public TransformOperation {
-public:
- static PassRefPtr<TranslateTransformOperation> create(const Length& tx, const Length& ty)
- {
- return adoptRef(new TranslateTransformOperation(tx, ty));
- }
-
- virtual bool isTranslateOperation() const { return true; }
-
- virtual bool operator==(const TransformOperation& o) const
- {
- if (!o.isTranslateOperation())
- return false;
- const TranslateTransformOperation* t = static_cast<const TranslateTransformOperation*>(&o);
- return m_x == t->m_x && m_y == t->m_y;
- }
-
- virtual void apply(AffineTransform& transform, const IntSize& borderBoxSize)
- {
- transform.translate(m_x.calcFloatValue(borderBoxSize.width()), m_y.calcFloatValue(borderBoxSize.height()));
- }
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false);
-
-private:
- TranslateTransformOperation(const Length& tx, const Length& ty)
- : m_x(tx), m_y(ty)
- {
- }
-
- Length m_x;
- Length m_y;
-};
-
-class MatrixTransformOperation : public TransformOperation {
-public:
- static PassRefPtr<MatrixTransformOperation> create(double a, double b, double c, double d, double e, double f)
- {
- return adoptRef(new MatrixTransformOperation(a, b, c, d, e, f));
- }
-
- virtual bool isMatrixOperation() const { return true; }
-
- virtual bool operator==(const TransformOperation& o) const
- {
- if (o.isMatrixOperation()) {
- const MatrixTransformOperation* m = static_cast<const MatrixTransformOperation*>(&o);
- return m_a == m->m_a && m_b == m->m_b && m_c == m->m_c && m_d == m->m_d && m_e == m->m_e && m_f == m->m_f;
- }
- return false;
- }
-
- virtual void apply(AffineTransform& transform, const IntSize& borderBoxSize)
- {
- AffineTransform matrix(m_a, m_b, m_c, m_d, m_e, m_f);
- transform = matrix * transform;
- }
-
- virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false);
-
-private:
- MatrixTransformOperation(double a, double b, double c, double d, double e, double f)
- : m_a(a), m_b(b), m_c(c), m_d(d), m_e(e), m_f(f)
- {
- }
-
- double m_a;
- double m_b;
- double m_c;
- double m_d;
- double m_e;
- double m_f;
-};
-
-class TransformOperations {
-public:
- bool operator==(const TransformOperations&) const;
- bool operator!=(const TransformOperations& o) const {
- return !(*this == o);
- }
-
- bool isEmpty() const { return m_operations.isEmpty(); }
- size_t size() const { return m_operations.size(); }
- const RefPtr<TransformOperation>& operator[](size_t i) const { return m_operations.at(i); }
-
- void append(const RefPtr<TransformOperation>& op) { return m_operations.append(op); }
-
-private:
- Vector<RefPtr<TransformOperation> > m_operations;
-};
-
-class StyleTransformData : public RefCounted<StyleTransformData> {
-public:
- static PassRefPtr<StyleTransformData> create() { return adoptRef(new StyleTransformData); }
- PassRefPtr<StyleTransformData> copy() const { return adoptRef(new StyleTransformData(*this)); }
-
- bool operator==(const StyleTransformData&) const;
- bool operator!=(const StyleTransformData& o) const {
- return !(*this == o);
- }
-
- TransformOperations m_operations;
- Length m_x;
- Length m_y;
-
-private:
- StyleTransformData();
- StyleTransformData(const StyleTransformData&);
-};
-
-//------------------------------------------------
-// CSS3 Flexible Box Properties
-
-enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BJUSTIFY, BBASELINE };
-enum EBoxOrient { HORIZONTAL, VERTICAL };
-enum EBoxLines { SINGLE, MULTIPLE };
-enum EBoxDirection { BNORMAL, BREVERSE };
-
-class StyleFlexibleBoxData : public RefCounted<StyleFlexibleBoxData> {
-public:
- static PassRefPtr<StyleFlexibleBoxData> create() { return adoptRef(new StyleFlexibleBoxData); }
- PassRefPtr<StyleFlexibleBoxData> copy() const { return adoptRef(new StyleFlexibleBoxData(*this)); }
-
- bool operator==(const StyleFlexibleBoxData& o) const;
- bool operator!=(const StyleFlexibleBoxData &o) const {
- return !(*this == o);
- }
-
- float flex;
- unsigned int flex_group;
- unsigned int ordinal_group;
-
- unsigned align : 3; // EBoxAlignment
- unsigned pack: 3; // EBoxAlignment
- unsigned orient: 1; // EBoxOrient
- unsigned lines : 1; // EBoxLines
-
-private:
- StyleFlexibleBoxData();
- StyleFlexibleBoxData(const StyleFlexibleBoxData&);
-};
-
-// This struct holds information about shadows for the text-shadow and box-shadow properties.
-struct ShadowData {
- ShadowData(int _x, int _y, int _blur, const Color& _color)
- :x(_x), y(_y), blur(_blur), color(_color), next(0) {}
- ShadowData(const ShadowData& o);
-
- ~ShadowData() { delete next; }
-
- bool operator==(const ShadowData& o) const;
- bool operator!=(const ShadowData &o) const {
- return !(*this == o);
- }
-
- int x;
- int y;
- int blur;
- Color color;
- ShadowData* next;
-};
-
-#if ENABLE(XBL)
-struct BindingURI {
- BindingURI(StringImpl*);
- ~BindingURI();
-
- BindingURI* copy();
-
- bool operator==(const BindingURI& o) const;
- bool operator!=(const BindingURI& o) const {
- return !(*this == o);
- }
-
- BindingURI* next() { return m_next; }
- void setNext(BindingURI* n) { m_next = n; }
-
- StringImpl* uri() { return m_uri; }
-
- BindingURI* m_next;
- StringImpl* m_uri;
-};
-#endif
-
-//------------------------------------------------
-
-enum ETextSecurity {
- TSNONE, TSDISC, TSCIRCLE, TSSQUARE
-};
-
-// CSS3 User Modify Properties
-
-enum EUserModify {
- READ_ONLY, READ_WRITE, READ_WRITE_PLAINTEXT_ONLY
-};
-
-// CSS3 User Drag Values
-
-enum EUserDrag {
- DRAG_AUTO, DRAG_NONE, DRAG_ELEMENT
-};
-
-// CSS3 User Select Values
-
-enum EUserSelect {
- SELECT_NONE, SELECT_TEXT
-};
-
-// Word Break Values. Matches WinIE, rather than CSS3
-
-enum EWordBreak {
- NormalWordBreak, BreakAllWordBreak, BreakWordBreak
-};
-
-enum EWordWrap {
- NormalWordWrap, BreakWordWrap
-};
-
-enum ENBSPMode {
- NBNORMAL, SPACE
-};
-
-enum EKHTMLLineBreak {
- LBNORMAL, AFTER_WHITE_SPACE
-};
-
-enum EMatchNearestMailBlockquoteColor {
- BCNORMAL, MATCH
-};
-
-enum EResize {
- RESIZE_NONE, RESIZE_BOTH, RESIZE_HORIZONTAL, RESIZE_VERTICAL
-};
-
-enum EAppearance {
- NoAppearance, CheckboxAppearance, RadioAppearance, PushButtonAppearance, SquareButtonAppearance, ButtonAppearance,
- ButtonBevelAppearance, DefaultButtonAppearance, ListboxAppearance, ListItemAppearance,
- MediaFullscreenButtonAppearance, MediaMuteButtonAppearance, MediaPlayButtonAppearance,
- MediaSeekBackButtonAppearance, MediaSeekForwardButtonAppearance, MediaSliderAppearance, MediaSliderThumbAppearance,
- MenulistAppearance, MenulistButtonAppearance, MenulistTextAppearance, MenulistTextFieldAppearance,
- ScrollbarButtonUpAppearance, ScrollbarButtonDownAppearance,
- ScrollbarButtonLeftAppearance, ScrollbarButtonRightAppearance,
- ScrollbarTrackHorizontalAppearance, ScrollbarTrackVerticalAppearance,
- ScrollbarThumbHorizontalAppearance, ScrollbarThumbVerticalAppearance,
- ScrollbarGripperHorizontalAppearance, ScrollbarGripperVerticalAppearance,
- SliderHorizontalAppearance, SliderVerticalAppearance, SliderThumbHorizontalAppearance,
- SliderThumbVerticalAppearance, CaretAppearance, SearchFieldAppearance, SearchFieldDecorationAppearance,
- SearchFieldResultsDecorationAppearance, SearchFieldResultsButtonAppearance,
- SearchFieldCancelButtonAppearance, TextFieldAppearance, TextAreaAppearance
-};
-
-enum EListStyleType {
- DISC, CIRCLE, SQUARE, LDECIMAL, DECIMAL_LEADING_ZERO,
- LOWER_ROMAN, UPPER_ROMAN, LOWER_GREEK,
- LOWER_ALPHA, LOWER_LATIN, UPPER_ALPHA, UPPER_LATIN,
- HEBREW, ARMENIAN, GEORGIAN, CJK_IDEOGRAPHIC,
- HIRAGANA, KATAKANA, HIRAGANA_IROHA, KATAKANA_IROHA, LNONE
-};
-
-struct CounterDirectives {
- CounterDirectives() : m_reset(false), m_increment(false) { }
-
- bool m_reset;
- int m_resetValue;
- bool m_increment;
- int m_incrementValue;
-};
-
-bool operator==(const CounterDirectives&, const CounterDirectives&);
-inline bool operator!=(const CounterDirectives& a, const CounterDirectives& b) { return !(a == b); }
-
-typedef HashMap<RefPtr<AtomicStringImpl>, CounterDirectives> CounterDirectiveMap;
-
-class CounterContent {
-public:
- CounterContent(const AtomicString& identifier, EListStyleType style, const AtomicString& separator)
- : m_identifier(identifier), m_listStyle(style), m_separator(separator)
- {
- }
-
- const AtomicString& identifier() const { return m_identifier; }
- EListStyleType listStyle() const { return m_listStyle; }
- const AtomicString& separator() const { return m_separator; }
-
-private:
- AtomicString m_identifier;
- EListStyleType m_listStyle;
- AtomicString m_separator;
-};
-
-enum ContentType {
- CONTENT_NONE, CONTENT_OBJECT, CONTENT_TEXT, CONTENT_COUNTER
-};
-
-struct ContentData : Noncopyable {
- ContentData() : m_type(CONTENT_NONE), m_next(0) { }
- ~ContentData() { clear(); }
-
- void clear();
-
- ContentType m_type;
- union {
- StyleImage* m_image;
- StringImpl* m_text;
- CounterContent* m_counter;
- } m_content;
- ContentData* m_next;
-};
-
-enum EBorderFit { BorderFitBorder, BorderFitLines };
-
-enum ETimingFunctionType { LinearTimingFunction, CubicBezierTimingFunction };
-
-struct TimingFunction
-{
- TimingFunction()
- : m_type(CubicBezierTimingFunction)
- , m_x1(0.25)
- , m_y1(0.1)
- , m_x2(0.25)
- , m_y2(1.0)
- {}
-
- TimingFunction(ETimingFunctionType timingFunction, double x1 = 0.0, double y1 = 0.0, double x2 = 1.0, double y2 = 1.0)
- : m_type(timingFunction)
- , m_x1(x1)
- , m_y1(y1)
- , m_x2(x2)
- , m_y2(y2)
- {
- }
-
- bool operator==(const TimingFunction& o) const { return m_type == o.m_type && m_x1 == o.m_x1 && m_y1 == o.m_y1 && m_x2 == o.m_x2 && m_y2 == o.m_y2; }
-
- double x1() const { return m_x1; }
- double y1() const { return m_y1; }
- double x2() const { return m_x2; }
- double y2() const { return m_y2; }
-
- ETimingFunctionType type() const { return m_type; }
-
-private:
- ETimingFunctionType m_type;
-
- double m_x1;
- double m_y1;
- double m_x2;
- double m_y2;
-};
-
-enum EAnimPlayState {
- AnimPlayStatePlaying = 0x0,
- AnimPlayStatePaused = 0x1
-};
-
-class Animation : public RefCounted<Animation> {
-public:
-
- static PassRefPtr<Animation> create() { return adoptRef(new Animation); };
-
- bool isDelaySet() const { return m_delaySet; }
- bool isDirectionSet() const { return m_directionSet; }
- bool isDurationSet() const { return m_durationSet; }
- bool isIterationCountSet() const { return m_iterationCountSet; }
- bool isNameSet() const { return m_nameSet; }
- bool isPlayStateSet() const { return m_playStateSet; }
- bool isPropertySet() const { return m_propertySet; }
- bool isTimingFunctionSet() const { return m_timingFunctionSet; }
-
- // Flags this to be the special "none" animation (animation-name: none)
- bool isNoneAnimation() const { return m_isNone; }
- // We can make placeholder Animation objects to keep the comma-separated lists
- // of properties in sync. isValidAnimation means this is not a placeholder.
- bool isValidAnimation() const { return !m_isNone && !m_name.isEmpty(); }
-
- bool isEmpty() const
- {
- return (!m_directionSet && !m_durationSet && !m_nameSet && !m_playStateSet &&
- !m_iterationCountSet && !m_delaySet && !m_timingFunctionSet && !m_propertySet);
- }
-
- bool isEmptyOrZeroDuration() const
- {
- return isEmpty() || (m_duration == 0 && m_delay <= 0);
- }
-
- void clearDelay() { m_delaySet = false; }
- void clearDirection() { m_directionSet = false; }
- void clearDuration() { m_durationSet = false; }
- void clearIterationCount() { m_iterationCountSet = false; }
- void clearName() { m_nameSet = false; }
- void clearPlayState() { m_playStateSet = AnimPlayStatePlaying; }
- void clearProperty() { m_propertySet = false; }
- void clearTimingFunction() { m_timingFunctionSet = false; }
-
- double delay() const { return m_delay; }
- bool direction() const { return m_direction; }
- double duration() const { return m_duration; }
- int iterationCount() const { return m_iterationCount; }
- const String& name() const { return m_name; }
- unsigned playState() const { return m_playState; }
- int property() const { return m_property; }
- const TimingFunction& timingFunction() const { return m_timingFunction; }
-
- const RefPtr<KeyframeList>& keyframeList() const { return m_keyframeList; }
-
- void setDelay(double c) { m_delay = c; m_delaySet = true; }
- void setDirection(bool d) { m_direction = d; m_directionSet = true; }
- void setDuration(double d) { ASSERT(d >= 0); m_duration = d; m_durationSet = true; }
- void setIterationCount(int c) { m_iterationCount = c; m_iterationCountSet = true; }
- void setName(const String& n) { m_name = n; m_nameSet = true; }
- void setPlayState(unsigned d) { m_playState = d; m_playStateSet = true; }
- void setProperty(int t) { m_property = t; m_propertySet = true; }
- void setTimingFunction(const TimingFunction& f) { m_timingFunction = f; m_timingFunctionSet = true; }
-
- void setIsNoneAnimation(bool n) { m_isNone = n; }
-
- void setAnimationKeyframe(const RefPtr<KeyframeList> keyframe) { m_keyframeList = keyframe; }
-
- Animation& operator=(const Animation& o);
-
- // return true if all members of this class match (excluding m_next)
- bool animationsMatch(const Animation* t, bool matchPlayStates=true) const;
-
- // return true every Animation in the chain (defined by m_next) match
- bool operator==(const Animation& o) const { return animationsMatch(&o); }
- bool operator!=(const Animation& o) const { return !(*this == o); }
-
-private:
- Animation();
- Animation(const Animation& o);
-
- double m_delay;
- bool m_direction;
- double m_duration;
- int m_iterationCount;
- String m_name;
- int m_property;
- TimingFunction m_timingFunction;
-
- RefPtr<KeyframeList> m_keyframeList;
-
- unsigned m_playState : 2;
-
- bool m_delaySet : 1;
- bool m_directionSet : 1;
- bool m_durationSet : 1;
- bool m_iterationCountSet : 1;
- bool m_nameSet : 1;
- bool m_playStateSet : 1;
- bool m_propertySet : 1;
- bool m_timingFunctionSet : 1;
-
- bool m_isNone : 1;
-};
-
-class AnimationList : public Vector<RefPtr<Animation> >
-{
-public:
- void fillUnsetProperties();
- bool operator==(const AnimationList& o) const;
-};
-
-
-class StyleReflection : public RefCounted<StyleReflection> {
-public:
- static PassRefPtr<StyleReflection> create()
- {
- return adoptRef(new StyleReflection);
- }
-
- bool operator==(const StyleReflection& o) const
- {
- return m_direction == o.m_direction && m_offset == o.m_offset && m_mask == o.m_mask;
- }
- bool operator!=(const StyleReflection& o) const { return !(*this == o); }
-
- CSSReflectionDirection direction() const { return m_direction; }
- Length offset() const { return m_offset; }
- const NinePieceImage& mask() const { return m_mask; }
-
- void setDirection(CSSReflectionDirection dir) { m_direction = dir; }
- void setOffset(const Length& l) { m_offset = l; }
- void setMask(const NinePieceImage& image) { m_mask = image; }
-
-private:
- StyleReflection()
- : m_direction(ReflectionBelow)
- , m_offset(0, Fixed)
- {
- }
-
- CSSReflectionDirection m_direction;
- Length m_offset;
- NinePieceImage m_mask;
-};
-
-// This struct is for rarely used non-inherited CSS3, CSS2, and WebKit-specific properties.
-// By grouping them together, we save space, and only allocate this object when someone
-// actually uses one of these properties.
-class StyleRareNonInheritedData : public RefCounted<StyleRareNonInheritedData> {
-public:
- static PassRefPtr<StyleRareNonInheritedData> create() { return adoptRef(new StyleRareNonInheritedData); }
- PassRefPtr<StyleRareNonInheritedData> copy() const { return adoptRef(new StyleRareNonInheritedData(*this)); }
- ~StyleRareNonInheritedData();
-
-#if ENABLE(XBL)
- bool bindingsEquivalent(const StyleRareNonInheritedData&) const;
-#endif
-
- bool operator==(const StyleRareNonInheritedData&) const;
- bool operator!=(const StyleRareNonInheritedData& o) const { return !(*this == o); }
-
- bool shadowDataEquivalent(const StyleRareNonInheritedData& o) const;
- bool reflectionDataEquivalent(const StyleRareNonInheritedData& o) const;
- bool animationDataEquivalent(const StyleRareNonInheritedData&) const;
- bool transitionDataEquivalent(const StyleRareNonInheritedData&) const;
- void updateKeyframes(const CSSStyleSelector* styleSelector);
-
- int lineClamp; // An Apple extension.
-#if ENABLE(DASHBOARD_SUPPORT)
- Vector<StyleDashboardRegion> m_dashboardRegions;
-#endif
- float opacity; // Whether or not we're transparent.
-
- DataRef<StyleFlexibleBoxData> flexibleBox; // Flexible box properties
- DataRef<StyleMarqueeData> marquee; // Marquee properties
- DataRef<StyleMultiColData> m_multiCol; // CSS3 multicol properties
- DataRef<StyleTransformData> m_transform; // Transform properties (rotate, scale, skew, etc.)
-
- OwnPtr<ContentData> m_content;
- OwnPtr<CounterDirectiveMap> m_counterDirectives;
-
- unsigned userDrag : 2; // EUserDrag
- bool textOverflow : 1; // Whether or not lines that spill out should be truncated with "..."
- unsigned marginTopCollapse : 2; // EMarginCollapse
- unsigned marginBottomCollapse : 2; // EMarginCollapse
- unsigned matchNearestMailBlockquoteColor : 1; // EMatchNearestMailBlockquoteColor, FIXME: This property needs to be eliminated. It should never have been added.
- unsigned m_appearance : 6; // EAppearance
- unsigned m_borderFit : 1; // EBorderFit
- OwnPtr<ShadowData> m_boxShadow; // For box-shadow decorations.
-
- RefPtr<StyleReflection> m_boxReflect;
-
- OwnPtr<AnimationList> m_animations;
- OwnPtr<AnimationList> m_transitions;
-
- FillLayer m_mask;
- NinePieceImage m_maskBoxImage;
-
-#if ENABLE(XBL)
- OwnPtr<BindingURI> bindingURI; // The XBL binding URI list.
-#endif
-
-private:
- StyleRareNonInheritedData();
- StyleRareNonInheritedData(const StyleRareNonInheritedData&);
-};
-
-// This struct is for rarely used inherited CSS3, CSS2, and WebKit-specific properties.
-// By grouping them together, we save space, and only allocate this object when someone
-// actually uses one of these properties.
-class StyleRareInheritedData : public RefCounted<StyleRareInheritedData> {
-public:
- static PassRefPtr<StyleRareInheritedData> create() { return adoptRef(new StyleRareInheritedData); }
- PassRefPtr<StyleRareInheritedData> copy() const { return adoptRef(new StyleRareInheritedData(*this)); }
- ~StyleRareInheritedData();
-
- bool operator==(const StyleRareInheritedData& o) const;
- bool operator!=(const StyleRareInheritedData &o) const {
- return !(*this == o);
- }
- bool shadowDataEquivalent(const StyleRareInheritedData&) const;
-
- Color textStrokeColor;
- float textStrokeWidth;
- Color textFillColor;
-
- ShadowData* textShadow; // Our text shadow information for shadowed text drawing.
- AtomicString highlight; // Apple-specific extension for custom highlight rendering.
- unsigned textSecurity : 2; // ETextSecurity
- unsigned userModify : 2; // EUserModify (editing)
- unsigned wordBreak : 2; // EWordBreak
- unsigned wordWrap : 1; // EWordWrap
- unsigned nbspMode : 1; // ENBSPMode
- unsigned khtmlLineBreak : 1; // EKHTMLLineBreak
- bool textSizeAdjust : 1; // An Apple extension.
- unsigned resize : 2; // EResize
- unsigned userSelect : 1; // EUserSelect
-
-private:
- StyleRareInheritedData();
- StyleRareInheritedData(const StyleRareInheritedData&);
-};
-
-//------------------------------------------------
-// Inherited attributes.
-//
-
-enum EWhiteSpace {
- NORMAL, PRE, PRE_WRAP, PRE_LINE, NOWRAP, KHTML_NOWRAP
-};
-
-enum ETextAlign {
- TAAUTO, LEFT, RIGHT, CENTER, JUSTIFY, WEBKIT_LEFT, WEBKIT_RIGHT, WEBKIT_CENTER
-};
-
-enum ETextTransform {
- CAPITALIZE, UPPERCASE, LOWERCASE, TTNONE
-};
-
-enum ETextDecoration {
- TDNONE = 0x0 , UNDERLINE = 0x1, OVERLINE = 0x2, LINE_THROUGH= 0x4, BLINK = 0x8
-};
-
-enum EPageBreak {
- PBAUTO, PBALWAYS, PBAVOID
-};
-
-class StyleInheritedData : public RefCounted<StyleInheritedData> {
-public:
- static PassRefPtr<StyleInheritedData> create() { return adoptRef(new StyleInheritedData); }
- PassRefPtr<StyleInheritedData> copy() const { return adoptRef(new StyleInheritedData(*this)); }
- ~StyleInheritedData();
-
- bool operator==(const StyleInheritedData& o) const;
- bool operator != ( const StyleInheritedData &o ) const {
- return !(*this == o);
- }
-
- Length indent;
- // could be packed in a short but doesn't
- // make a difference currently because of padding
- Length line_height;
-
- RefPtr<StyleImage> list_style_image;
- RefPtr<CursorList> cursorData;
-
- Font font;
- Color color;
-
- float m_effectiveZoom;
-
- short horizontal_border_spacing;
- short vertical_border_spacing;
-
- // Paged media properties.
- short widows;
- short orphans;
- unsigned page_break_inside : 2; // EPageBreak
-
-private:
- StyleInheritedData();
- StyleInheritedData(const StyleInheritedData&);
-};
-
-
-enum EEmptyCell {
- SHOW, HIDE
-};
-
-enum ECaptionSide {
- CAPTOP, CAPBOTTOM, CAPLEFT, CAPRIGHT
-};
-
-enum EListStylePosition { OUTSIDE, INSIDE };
-
-enum EVisibility { VISIBLE, HIDDEN, COLLAPSE };
-
-enum ECursor {
- CURSOR_AUTO, CURSOR_CROSS, CURSOR_DEFAULT, CURSOR_POINTER, CURSOR_MOVE, CURSOR_VERTICAL_TEXT, CURSOR_CELL, CURSOR_CONTEXT_MENU,
- CURSOR_ALIAS, CURSOR_PROGRESS, CURSOR_NO_DROP, CURSOR_NOT_ALLOWED, CURSOR_WEBKIT_ZOOM_IN, CURSOR_WEBKIT_ZOOM_OUT,
- CURSOR_E_RESIZE, CURSOR_NE_RESIZE, CURSOR_NW_RESIZE, CURSOR_N_RESIZE, CURSOR_SE_RESIZE, CURSOR_SW_RESIZE,
- CURSOR_S_RESIZE, CURSOR_W_RESIZE, CURSOR_EW_RESIZE, CURSOR_NS_RESIZE, CURSOR_NESW_RESIZE, CURSOR_NWSE_RESIZE,
- CURSOR_COL_RESIZE, CURSOR_ROW_RESIZE, CURSOR_TEXT, CURSOR_WAIT, CURSOR_HELP, CURSOR_ALL_SCROLL,
- CURSOR_COPY, CURSOR_NONE
-};
-
-struct CursorData {
- CursorData()
- : cursorImage(0)
- {}
-
- bool operator==(const CursorData& o) const {
- return hotSpot == o.hotSpot && cursorImage == o.cursorImage;
- }
- bool operator!=(const CursorData& o) const { return !(*this == o); }
-
- IntPoint hotSpot; // for CSS3 support
- CachedImage* cursorImage; // weak pointer, the CSSValueImage takes care of deleting cursorImage
-};
-
-class CursorList : public RefCounted<CursorList> {
-public:
- static PassRefPtr<CursorList> create()
- {
- return adoptRef(new CursorList);
- }
-
- const CursorData& operator[](int i) const {
- return m_vector[i];
- }
-
- bool operator==(const CursorList& o) const { return m_vector == o.m_vector; }
- bool operator!=(const CursorList& o) const { return m_vector != o.m_vector; }
-
- size_t size() const { return m_vector.size(); }
- void append(const CursorData& cursorData) { m_vector.append(cursorData); }
-
-private:
- CursorList() { }
-
- Vector<CursorData> m_vector;
-};
-
-//------------------------------------------------
-
-enum EDisplay {
- INLINE, BLOCK, LIST_ITEM, RUN_IN, COMPACT, INLINE_BLOCK,
- TABLE, INLINE_TABLE, TABLE_ROW_GROUP,
- TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, TABLE_ROW,
- TABLE_COLUMN_GROUP, TABLE_COLUMN, TABLE_CELL,
- TABLE_CAPTION, BOX, INLINE_BOX, NONE
-};
-
-class RenderStyle {
- friend class CSSStyleSelector;
-
-public:
- // static pseudo styles. Dynamic ones are produced on the fly.
- enum PseudoId { NOPSEUDO, FIRST_LINE, FIRST_LETTER, BEFORE, AFTER, SELECTION, FIRST_LINE_INHERITED, FILE_UPLOAD_BUTTON, SLIDER_THUMB,
- 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_TIME_DISPLAY,
- MEDIA_CONTROLS_SEEK_BACK_BUTTON, MEDIA_CONTROLS_SEEK_FORWARD_BUTTON , MEDIA_CONTROLS_FULLSCREEN_BUTTON };
- static const int FIRST_INTERNAL_PSEUDOID = FILE_UPLOAD_BUTTON;
-
- void ref() { m_ref++; }
- void deref(RenderArena* arena) {
- if (m_ref) m_ref--;
- if (!m_ref)
- arenaDelete(arena);
- }
- bool hasOneRef() { return m_ref==1; }
- int refCount() const { return m_ref; }
-
- // Overloaded new operator. Derived classes must override operator new
- // in order to allocate out of the RenderArena.
- void* operator new(size_t sz, RenderArena* renderArena) throw();
-
- // Overridden to prevent the normal delete from being called.
- void operator delete(void* ptr, size_t sz);
-
-private:
- void arenaDelete(RenderArena *arena);
-
-protected:
-
-// !START SYNC!: Keep this in sync with the copy constructor in RenderStyle.cpp
-
- // inherit
- struct InheritedFlags {
- bool operator==( const InheritedFlags &other ) const {
- return (_empty_cells == other._empty_cells) &&
- (_caption_side == other._caption_side) &&
- (_list_style_type == other._list_style_type) &&
- (_list_style_position == other._list_style_position) &&
- (_visibility == other._visibility) &&
- (_text_align == other._text_align) &&
- (_text_transform == other._text_transform) &&
- (_text_decorations == other._text_decorations) &&
- (_text_transform == other._text_transform) &&
- (_cursor_style == other._cursor_style) &&
- (_direction == other._direction) &&
- (_border_collapse == other._border_collapse) &&
- (_white_space == other._white_space) &&
- (_box_direction == other._box_direction) &&
- (_visuallyOrdered == other._visuallyOrdered) &&
- (_htmlHacks == other._htmlHacks) &&
- (_force_backgrounds_to_white == other._force_backgrounds_to_white);
- }
-
- bool operator!=( const InheritedFlags &other ) const {
- return !(*this == other);
- }
-
- unsigned _empty_cells : 1; // EEmptyCell
- unsigned _caption_side : 2; // ECaptionSide
- unsigned _list_style_type : 5 ; // EListStyleType
- unsigned _list_style_position : 1; // EListStylePosition
- unsigned _visibility : 2; // EVisibility
- unsigned _text_align : 3; // ETextAlign
- unsigned _text_transform : 2; // ETextTransform
- unsigned _text_decorations : 4;
- unsigned _cursor_style : 6; // ECursor
- unsigned _direction : 1; // TextDirection
- bool _border_collapse : 1 ;
- unsigned _white_space : 3; // EWhiteSpace
- unsigned _box_direction : 1; // EBoxDirection (CSS3 box_direction property, flexible box layout module)
-
- // non CSS2 inherited
- bool _visuallyOrdered : 1;
- bool _htmlHacks :1;
- bool _force_backgrounds_to_white : 1;
- } inherited_flags;
-
-// don't inherit
- struct NonInheritedFlags {
- bool operator==( const NonInheritedFlags &other ) const {
- return (_effectiveDisplay == other._effectiveDisplay) &&
- (_originalDisplay == other._originalDisplay) &&
- (_overflowX == other._overflowX) &&
- (_overflowY == other._overflowY) &&
- (_vertical_align == other._vertical_align) &&
- (_clear == other._clear) &&
- (_position == other._position) &&
- (_floating == other._floating) &&
- (_table_layout == other._table_layout) &&
- (_page_break_before == other._page_break_before) &&
- (_page_break_after == other._page_break_after) &&
- (_styleType == other._styleType) &&
- (_affectedByHover == other._affectedByHover) &&
- (_affectedByActive == other._affectedByActive) &&
- (_affectedByDrag == other._affectedByDrag) &&
- (_pseudoBits == other._pseudoBits) &&
- (_unicodeBidi == other._unicodeBidi);
- }
-
- bool operator!=( const NonInheritedFlags &other ) const {
- return !(*this == other);
- }
-
- unsigned _effectiveDisplay : 5; // EDisplay
- unsigned _originalDisplay : 5; // EDisplay
- unsigned _overflowX : 3; // EOverflow
- unsigned _overflowY : 3; // EOverflow
- unsigned _vertical_align : 4; // EVerticalAlign
- unsigned _clear : 2; // EClear
- unsigned _position : 2; // EPosition
- unsigned _floating : 2; // EFloat
- unsigned _table_layout : 1; // ETableLayout
-
- unsigned _page_break_before : 2; // EPageBreak
- unsigned _page_break_after : 2; // EPageBreak
-
- unsigned _styleType : 5; // PseudoId
- bool _affectedByHover : 1;
- bool _affectedByActive : 1;
- bool _affectedByDrag : 1;
- unsigned _pseudoBits : 6;
- unsigned _unicodeBidi : 2; // EUnicodeBidi
- } noninherited_flags;
-
-// non-inherited attributes
- DataRef<StyleBoxData> box;
- DataRef<StyleVisualData> visual;
- DataRef<StyleBackgroundData> background;
- DataRef<StyleSurroundData> surround;
- DataRef<StyleRareNonInheritedData> rareNonInheritedData;
-
-// inherited attributes
- DataRef<StyleRareInheritedData> rareInheritedData;
- DataRef<StyleInheritedData> inherited;
-
-// list of associated pseudo styles
- RenderStyle* pseudoStyle;
-
- unsigned m_pseudoState : 3; // PseudoState
- bool m_affectedByAttributeSelectors : 1;
- bool m_unique : 1;
-
- // Bits for dynamic child matching.
- bool m_affectedByEmpty : 1;
- bool m_emptyState : 1;
-
- // We optimize for :first-child and :last-child. The other positional child selectors like nth-child or
- // *-child-of-type, we will just give up and re-evaluate whenever children change at all.
- bool m_childrenAffectedByFirstChildRules : 1;
- bool m_childrenAffectedByLastChildRules : 1;
- bool m_childrenAffectedByDirectAdjacentRules : 1;
- bool m_childrenAffectedByForwardPositionalRules : 1;
- bool m_childrenAffectedByBackwardPositionalRules : 1;
- bool m_firstChildState : 1;
- bool m_lastChildState : 1;
- unsigned m_childIndex : 18; // Plenty of bits to cache an index.
-
- int m_ref;
-
-#if ENABLE(SVG)
- DataRef<SVGRenderStyle> m_svgStyle;
-#endif
-
-// !END SYNC!
-
-protected:
- void setBitDefaults()
- {
- inherited_flags._empty_cells = initialEmptyCells();
- inherited_flags._caption_side = initialCaptionSide();
- inherited_flags._list_style_type = initialListStyleType();
- inherited_flags._list_style_position = initialListStylePosition();
- inherited_flags._visibility = initialVisibility();
- inherited_flags._text_align = initialTextAlign();
- inherited_flags._text_transform = initialTextTransform();
- inherited_flags._text_decorations = initialTextDecoration();
- inherited_flags._cursor_style = initialCursor();
- inherited_flags._direction = initialDirection();
- inherited_flags._border_collapse = initialBorderCollapse();
- inherited_flags._white_space = initialWhiteSpace();
- inherited_flags._visuallyOrdered = initialVisuallyOrdered();
- inherited_flags._htmlHacks=false;
- inherited_flags._box_direction = initialBoxDirection();
- inherited_flags._force_backgrounds_to_white = false;
-
- noninherited_flags._effectiveDisplay = noninherited_flags._originalDisplay = initialDisplay();
- noninherited_flags._overflowX = initialOverflowX();
- noninherited_flags._overflowY = initialOverflowY();
- noninherited_flags._vertical_align = initialVerticalAlign();
- noninherited_flags._clear = initialClear();
- noninherited_flags._position = initialPosition();
- noninherited_flags._floating = initialFloating();
- noninherited_flags._table_layout = initialTableLayout();
- noninherited_flags._page_break_before = initialPageBreak();
- noninherited_flags._page_break_after = initialPageBreak();
- noninherited_flags._styleType = NOPSEUDO;
- noninherited_flags._affectedByHover = false;
- noninherited_flags._affectedByActive = false;
- noninherited_flags._affectedByDrag = false;
- noninherited_flags._pseudoBits = 0;
- noninherited_flags._unicodeBidi = initialUnicodeBidi();
- }
-
-public:
-
- RenderStyle();
- // used to create the default style.
- RenderStyle(bool);
- RenderStyle(const RenderStyle&);
-
- ~RenderStyle();
-
- void inheritFrom(const RenderStyle* inheritParent);
-
- PseudoId styleType() { return static_cast<PseudoId>(noninherited_flags._styleType); }
- void setStyleType(PseudoId styleType) { noninherited_flags._styleType = styleType; }
-
- RenderStyle* getPseudoStyle(PseudoId pi);
- void addPseudoStyle(RenderStyle* pseudo);
-
- bool affectedByHoverRules() const { return noninherited_flags._affectedByHover; }
- bool affectedByActiveRules() const { return noninherited_flags._affectedByActive; }
- bool affectedByDragRules() const { return noninherited_flags._affectedByDrag; }
-
- void setAffectedByHoverRules(bool b) { noninherited_flags._affectedByHover = b; }
- void setAffectedByActiveRules(bool b) { noninherited_flags._affectedByActive = b; }
- void setAffectedByDragRules(bool b) { noninherited_flags._affectedByDrag = b; }
-
- bool operator==(const RenderStyle& other) const;
- bool isFloating() const { return !(noninherited_flags._floating == FNONE); }
- bool hasMargin() const { return surround->margin.nonZero(); }
- bool hasBorder() const { return surround->border.hasBorder(); }
- bool hasPadding() const { return surround->padding.nonZero(); }
- bool hasOffset() const { return surround->offset.nonZero(); }
-
- bool hasBackground() const { if (backgroundColor().isValid() && backgroundColor().alpha() > 0)
- return true;
- return background->m_background.hasImage(); }
- bool hasFixedBackgroundImage() const { return background->m_background.hasFixedImage(); }
- bool hasAppearance() const { return appearance() != NoAppearance; }
-
- bool visuallyOrdered() const { return inherited_flags._visuallyOrdered; }
- void setVisuallyOrdered(bool b) { inherited_flags._visuallyOrdered = b; }
-
- bool isStyleAvailable() const;
-
- bool hasPseudoStyle(PseudoId pseudo) const;
- void setHasPseudoStyle(PseudoId pseudo);
-
-// attribute getter methods
-
- EDisplay display() const { return static_cast<EDisplay>(noninherited_flags._effectiveDisplay); }
- EDisplay originalDisplay() const { return static_cast<EDisplay>(noninherited_flags._originalDisplay); }
-
- Length left() const { return surround->offset.left; }
- Length right() const { return surround->offset.right; }
- Length top() const { return surround->offset.top; }
- Length bottom() const { return surround->offset.bottom; }
-
- EPosition position() const { return static_cast<EPosition>(noninherited_flags._position); }
- EFloat floating() const { return static_cast<EFloat>(noninherited_flags._floating); }
-
- Length width() const { return box->width; }
- Length height() const { return box->height; }
- Length minWidth() const { return box->min_width; }
- Length maxWidth() const { return box->max_width; }
- Length minHeight() const { return box->min_height; }
- Length maxHeight() const { return box->max_height; }
-
- const BorderData& border() const { return surround->border; }
- const BorderValue& borderLeft() const { return surround->border.left; }
- const BorderValue& borderRight() const { return surround->border.right; }
- const BorderValue& borderTop() const { return surround->border.top; }
- const BorderValue& borderBottom() const { return surround->border.bottom; }
-
- const NinePieceImage& borderImage() const { return surround->border.image; }
-
- const IntSize& borderTopLeftRadius() const { return surround->border.topLeft; }
- const IntSize& borderTopRightRadius() const { return surround->border.topRight; }
- const IntSize& borderBottomLeftRadius() const { return surround->border.bottomLeft; }
- const IntSize& borderBottomRightRadius() const { return surround->border.bottomRight; }
- bool hasBorderRadius() const { return surround->border.hasBorderRadius(); }
-
- unsigned short borderLeftWidth() const { return surround->border.borderLeftWidth(); }
- EBorderStyle borderLeftStyle() const { return surround->border.left.style(); }
- const Color& borderLeftColor() const { return surround->border.left.color; }
- bool borderLeftIsTransparent() const { return surround->border.left.isTransparent(); }
- unsigned short borderRightWidth() const { return surround->border.borderRightWidth(); }
- EBorderStyle borderRightStyle() const { return surround->border.right.style(); }
- const Color& borderRightColor() const { return surround->border.right.color; }
- bool borderRightIsTransparent() const { return surround->border.right.isTransparent(); }
- unsigned short borderTopWidth() const { return surround->border.borderTopWidth(); }
- EBorderStyle borderTopStyle() const { return surround->border.top.style(); }
- const Color& borderTopColor() const { return surround->border.top.color; }
- bool borderTopIsTransparent() const { return surround->border.top.isTransparent(); }
- unsigned short borderBottomWidth() const { return surround->border.borderBottomWidth(); }
- EBorderStyle borderBottomStyle() const { return surround->border.bottom.style(); }
- const Color& borderBottomColor() const { return surround->border.bottom.color; }
- bool borderBottomIsTransparent() const { return surround->border.bottom.isTransparent(); }
-
- unsigned short outlineSize() const { return max(0, outlineWidth() + outlineOffset()); }
- unsigned short outlineWidth() const {
- if (background->m_outline.style() == BNONE)
- return 0;
- return background->m_outline.width;
- }
- bool hasOutline() const { return outlineWidth() > 0 && outlineStyle() > BHIDDEN; }
- EBorderStyle outlineStyle() const { return background->m_outline.style(); }
- bool outlineStyleIsAuto() const { return background->m_outline._auto; }
- const Color & outlineColor() const { return background->m_outline.color; }
-
- EOverflow overflowX() const { return static_cast<EOverflow>(noninherited_flags._overflowX); }
- EOverflow overflowY() const { return static_cast<EOverflow>(noninherited_flags._overflowY); }
-
- EVisibility visibility() const { return static_cast<EVisibility>(inherited_flags._visibility); }
- EVerticalAlign verticalAlign() const { return static_cast<EVerticalAlign>(noninherited_flags._vertical_align); }
- Length verticalAlignLength() const { return box->vertical_align; }
-
- Length clipLeft() const { return visual->clip.left; }
- Length clipRight() const { return visual->clip.right; }
- Length clipTop() const { return visual->clip.top; }
- Length clipBottom() const { return visual->clip.bottom; }
- LengthBox clip() const { return visual->clip; }
- bool hasClip() const { return visual->hasClip; }
-
- EUnicodeBidi unicodeBidi() const { return static_cast<EUnicodeBidi>(noninherited_flags._unicodeBidi); }
-
- EClear clear() const { return static_cast<EClear>(noninherited_flags._clear); }
- ETableLayout tableLayout() const { return static_cast<ETableLayout>(noninherited_flags._table_layout); }
-
- const Font& font() { return inherited->font; }
- const FontDescription& fontDescription() { return inherited->font.fontDescription(); }
- int fontSize() const { return inherited->font.pixelSize(); }
-
- const Color & color() const { return inherited->color; }
- Length textIndent() const { return inherited->indent; }
- ETextAlign textAlign() const { return static_cast<ETextAlign>(inherited_flags._text_align); }
- ETextTransform textTransform() const { return static_cast<ETextTransform>(inherited_flags._text_transform); }
- int textDecorationsInEffect() const { return inherited_flags._text_decorations; }
- int textDecoration() const { return visual->textDecoration; }
- int wordSpacing() const { return inherited->font.wordSpacing(); }
- int letterSpacing() const { return inherited->font.letterSpacing(); }
-
- float zoom() const { return visual->m_zoom; }
- float effectiveZoom() const { return inherited->m_effectiveZoom; }
-
- TextDirection direction() const { return static_cast<TextDirection>(inherited_flags._direction); }
- Length lineHeight() const { return inherited->line_height; }
-
- EWhiteSpace whiteSpace() const { return static_cast<EWhiteSpace>(inherited_flags._white_space); }
- static bool autoWrap(EWhiteSpace ws) {
- // Nowrap and pre don't automatically wrap.
- return ws != NOWRAP && ws != PRE;
- }
- bool autoWrap() const {
- return autoWrap(whiteSpace());
- }
- static bool preserveNewline(EWhiteSpace ws) {
- // Normal and nowrap do not preserve newlines.
- return ws != NORMAL && ws != NOWRAP;
- }
- bool preserveNewline() const {
- return preserveNewline(whiteSpace());
- }
- static bool collapseWhiteSpace(EWhiteSpace ws) {
- // Pre and prewrap do not collapse whitespace.
- return ws != PRE && ws != PRE_WRAP;
- }
- bool collapseWhiteSpace() const {
- return collapseWhiteSpace(whiteSpace());
- }
- bool isCollapsibleWhiteSpace(UChar c) const {
- switch (c) {
- case ' ':
- case '\t':
- return collapseWhiteSpace();
- case '\n':
- return !preserveNewline();
- }
- return false;
- }
- bool breakOnlyAfterWhiteSpace() const {
- return whiteSpace() == PRE_WRAP || khtmlLineBreak() == AFTER_WHITE_SPACE;
- }
- bool breakWords() const {
- return wordBreak() == BreakWordBreak || wordWrap() == BreakWordWrap;
- }
-
- const Color & backgroundColor() const { return background->m_color; }
- StyleImage* backgroundImage() const { return background->m_background.m_image.get(); }
- EFillRepeat backgroundRepeat() const { return static_cast<EFillRepeat>(background->m_background.m_repeat); }
- CompositeOperator backgroundComposite() const { return static_cast<CompositeOperator>(background->m_background.m_composite); }
- bool backgroundAttachment() const { return background->m_background.m_attachment; }
- EFillBox backgroundClip() const { return static_cast<EFillBox>(background->m_background.m_clip); }
- EFillBox backgroundOrigin() const { return static_cast<EFillBox>(background->m_background.m_origin); }
- Length backgroundXPosition() const { return background->m_background.m_xPosition; }
- Length backgroundYPosition() const { return background->m_background.m_yPosition; }
- LengthSize backgroundSize() const { return background->m_background.m_size; }
- FillLayer* accessBackgroundLayers() { return &(background.access()->m_background); }
- const FillLayer* backgroundLayers() const { return &(background->m_background); }
-
- StyleImage* maskImage() const { return rareNonInheritedData->m_mask.m_image.get(); }
- EFillRepeat maskRepeat() const { return static_cast<EFillRepeat>(rareNonInheritedData->m_mask.m_repeat); }
- CompositeOperator maskComposite() const { return static_cast<CompositeOperator>(rareNonInheritedData->m_mask.m_composite); }
- bool maskAttachment() const { return rareNonInheritedData->m_mask.m_attachment; }
- EFillBox maskClip() const { return static_cast<EFillBox>(rareNonInheritedData->m_mask.m_clip); }
- EFillBox maskOrigin() const { return static_cast<EFillBox>(rareNonInheritedData->m_mask.m_origin); }
- Length maskXPosition() const { return rareNonInheritedData->m_mask.m_xPosition; }
- Length maskYPosition() const { return rareNonInheritedData->m_mask.m_yPosition; }
- LengthSize maskSize() const { return rareNonInheritedData->m_mask.m_size; }
- FillLayer* accessMaskLayers() { return &(rareNonInheritedData.access()->m_mask); }
- const FillLayer* maskLayers() const { return &(rareNonInheritedData->m_mask); }
- const NinePieceImage& maskBoxImage() const { return rareNonInheritedData->m_maskBoxImage; }
-
- // returns true for collapsing borders, false for separate borders
- bool borderCollapse() const { return inherited_flags._border_collapse; }
- short horizontalBorderSpacing() const { return inherited->horizontal_border_spacing; }
- short verticalBorderSpacing() const { return inherited->vertical_border_spacing; }
- EEmptyCell emptyCells() const { return static_cast<EEmptyCell>(inherited_flags._empty_cells); }
- ECaptionSide captionSide() const { return static_cast<ECaptionSide>(inherited_flags._caption_side); }
-
- short counterIncrement() const { return visual->counterIncrement; }
- short counterReset() const { return visual->counterReset; }
-
- EListStyleType listStyleType() const { return static_cast<EListStyleType>(inherited_flags._list_style_type); }
- StyleImage* listStyleImage() const { return inherited->list_style_image.get(); }
- EListStylePosition listStylePosition() const { return static_cast<EListStylePosition>(inherited_flags._list_style_position); }
-
- Length marginTop() const { return surround->margin.top; }
- Length marginBottom() const { return surround->margin.bottom; }
- Length marginLeft() const { return surround->margin.left; }
- Length marginRight() const { return surround->margin.right; }
-
- Length paddingTop() const { return surround->padding.top; }
- Length paddingBottom() const { return surround->padding.bottom; }
- Length paddingLeft() const { return surround->padding.left; }
- Length paddingRight() const { return surround->padding.right; }
-
- ECursor cursor() const { return static_cast<ECursor>(inherited_flags._cursor_style); }
-
- CursorList* cursors() const { return inherited->cursorData.get(); }
-
- short widows() const { return inherited->widows; }
- short orphans() const { return inherited->orphans; }
- EPageBreak pageBreakInside() const { return static_cast<EPageBreak>(inherited->page_break_inside); }
- EPageBreak pageBreakBefore() const { return static_cast<EPageBreak>(noninherited_flags._page_break_before); }
- EPageBreak pageBreakAfter() const { return static_cast<EPageBreak>(noninherited_flags._page_break_after); }
-
- // CSS3 Getter Methods
-#if ENABLE(XBL)
- BindingURI* bindingURIs() const { return rareNonInheritedData->bindingURI; }
-#endif
- int outlineOffset() const {
- if (background->m_outline.style() == BNONE)
- return 0;
- return background->m_outline._offset;
- }
- ShadowData* textShadow() const { return rareInheritedData->textShadow; }
- const Color& textStrokeColor() const { return rareInheritedData->textStrokeColor; }
- float textStrokeWidth() const { return rareInheritedData->textStrokeWidth; }
- const Color& textFillColor() const { return rareInheritedData->textFillColor; }
- float opacity() const { return rareNonInheritedData->opacity; }
- EAppearance appearance() const { return static_cast<EAppearance>(rareNonInheritedData->m_appearance); }
- EBoxAlignment boxAlign() const { return static_cast<EBoxAlignment>(rareNonInheritedData->flexibleBox->align); }
- EBoxDirection boxDirection() const { return static_cast<EBoxDirection>(inherited_flags._box_direction); }
- float boxFlex() { return rareNonInheritedData->flexibleBox->flex; }
- unsigned int boxFlexGroup() const { return rareNonInheritedData->flexibleBox->flex_group; }
- EBoxLines boxLines() { return static_cast<EBoxLines>(rareNonInheritedData->flexibleBox->lines); }
- unsigned int boxOrdinalGroup() const { return rareNonInheritedData->flexibleBox->ordinal_group; }
- EBoxOrient boxOrient() const { return static_cast<EBoxOrient>(rareNonInheritedData->flexibleBox->orient); }
- EBoxAlignment boxPack() const { return static_cast<EBoxAlignment>(rareNonInheritedData->flexibleBox->pack); }
- ShadowData* boxShadow() const { return rareNonInheritedData->m_boxShadow.get(); }
- StyleReflection* boxReflect() const { return rareNonInheritedData->m_boxReflect.get(); }
- EBoxSizing boxSizing() const { return static_cast<EBoxSizing>(box->boxSizing); }
- Length marqueeIncrement() const { return rareNonInheritedData->marquee->increment; }
- int marqueeSpeed() const { return rareNonInheritedData->marquee->speed; }
- int marqueeLoopCount() const { return rareNonInheritedData->marquee->loops; }
- EMarqueeBehavior marqueeBehavior() const { return static_cast<EMarqueeBehavior>(rareNonInheritedData->marquee->behavior); }
- EMarqueeDirection marqueeDirection() const { return static_cast<EMarqueeDirection>(rareNonInheritedData->marquee->direction); }
- EUserModify userModify() const { return static_cast<EUserModify>(rareInheritedData->userModify); }
- EUserDrag userDrag() const { return static_cast<EUserDrag>(rareNonInheritedData->userDrag); }
- EUserSelect userSelect() const { return static_cast<EUserSelect>(rareInheritedData->userSelect); }
- bool textOverflow() const { return rareNonInheritedData->textOverflow; }
- EMarginCollapse marginTopCollapse() const { return static_cast<EMarginCollapse>(rareNonInheritedData->marginTopCollapse); }
- EMarginCollapse marginBottomCollapse() const { return static_cast<EMarginCollapse>(rareNonInheritedData->marginBottomCollapse); }
- EWordBreak wordBreak() const { return static_cast<EWordBreak>(rareInheritedData->wordBreak); }
- EWordWrap wordWrap() const { return static_cast<EWordWrap>(rareInheritedData->wordWrap); }
- ENBSPMode nbspMode() const { return static_cast<ENBSPMode>(rareInheritedData->nbspMode); }
- EKHTMLLineBreak khtmlLineBreak() const { return static_cast<EKHTMLLineBreak>(rareInheritedData->khtmlLineBreak); }
- EMatchNearestMailBlockquoteColor matchNearestMailBlockquoteColor() const { return static_cast<EMatchNearestMailBlockquoteColor>(rareNonInheritedData->matchNearestMailBlockquoteColor); }
- const AtomicString& highlight() const { return rareInheritedData->highlight; }
- EBorderFit borderFit() const { return static_cast<EBorderFit>(rareNonInheritedData->m_borderFit); }
- EResize resize() const { return static_cast<EResize>(rareInheritedData->resize); }
- float columnWidth() const { return rareNonInheritedData->m_multiCol->m_width; }
- bool hasAutoColumnWidth() const { return rareNonInheritedData->m_multiCol->m_autoWidth; }
- unsigned short columnCount() const { return rareNonInheritedData->m_multiCol->m_count; }
- bool hasAutoColumnCount() const { return rareNonInheritedData->m_multiCol->m_autoCount; }
- float columnGap() const { return rareNonInheritedData->m_multiCol->m_gap; }
- bool hasNormalColumnGap() const { return rareNonInheritedData->m_multiCol->m_normalGap; }
- const Color& columnRuleColor() const { return rareNonInheritedData->m_multiCol->m_rule.color; }
- EBorderStyle columnRuleStyle() const { return rareNonInheritedData->m_multiCol->m_rule.style(); }
- unsigned short columnRuleWidth() const { return rareNonInheritedData->m_multiCol->ruleWidth(); }
- bool columnRuleIsTransparent() const { return rareNonInheritedData->m_multiCol->m_rule.isTransparent(); }
- EPageBreak columnBreakBefore() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakBefore); }
- EPageBreak columnBreakInside() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakInside); }
- EPageBreak columnBreakAfter() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakAfter); }
- const TransformOperations& transform() const { return rareNonInheritedData->m_transform->m_operations; }
- Length transformOriginX() const { return rareNonInheritedData->m_transform->m_x; }
- Length transformOriginY() const { return rareNonInheritedData->m_transform->m_y; }
- bool hasTransform() const { return !rareNonInheritedData->m_transform->m_operations.isEmpty(); }
- void applyTransform(AffineTransform&, const IntSize& borderBoxSize, bool includeTransformOrigin = true) const;
- bool hasMask() const { return rareNonInheritedData->m_mask.hasImage() || rareNonInheritedData->m_maskBoxImage.hasImage(); }
- // End CSS3 Getters
-
- // Apple-specific property getter methods
- const AnimationList* animations() const { return rareNonInheritedData->m_animations.get(); }
- const AnimationList* transitions() const { return rareNonInheritedData->m_transitions.get(); }
-
- AnimationList* accessAnimations();
- AnimationList* accessTransitions();
-
- bool hasAnimations() const { return rareNonInheritedData->m_animations && rareNonInheritedData->m_animations->size() > 0; }
- bool hasTransitions() const { return rareNonInheritedData->m_transitions && rareNonInheritedData->m_transitions->size() > 0; }
-
- // return the first found Animation (including 'all' transitions)
- const Animation* transitionForProperty(int property);
-
- int lineClamp() const { return rareNonInheritedData->lineClamp; }
- bool textSizeAdjust() const { return rareInheritedData->textSizeAdjust; }
- ETextSecurity textSecurity() const { return static_cast<ETextSecurity>(rareInheritedData->textSecurity); }
-
-// attribute setter methods
-
- void setDisplay(EDisplay v) { noninherited_flags._effectiveDisplay = v; }
- void setOriginalDisplay(EDisplay v) { noninherited_flags._originalDisplay = v; }
- void setPosition(EPosition v) { noninherited_flags._position = v; }
- void setFloating(EFloat v) { noninherited_flags._floating = v; }
-
- void setLeft(Length v) { SET_VAR(surround,offset.left,v) }
- void setRight(Length v) { SET_VAR(surround,offset.right,v) }
- void setTop(Length v) { SET_VAR(surround,offset.top,v) }
- void setBottom(Length v){ SET_VAR(surround,offset.bottom,v) }
-
- void setWidth(Length v) { SET_VAR(box,width,v) }
- void setHeight(Length v) { SET_VAR(box,height,v) }
-
- void setMinWidth(Length v) { SET_VAR(box,min_width,v) }
- void setMaxWidth(Length v) { SET_VAR(box,max_width,v) }
- void setMinHeight(Length v) { SET_VAR(box,min_height,v) }
- void setMaxHeight(Length v) { SET_VAR(box,max_height,v) }
-
-#if ENABLE(DASHBOARD_SUPPORT)
- Vector<StyleDashboardRegion> dashboardRegions() const { return rareNonInheritedData->m_dashboardRegions; }
- void setDashboardRegions(Vector<StyleDashboardRegion> regions) { SET_VAR(rareNonInheritedData,m_dashboardRegions,regions); }
- void setDashboardRegion(int type, const String& label, Length t, Length r, Length b, Length l, bool append) {
- StyleDashboardRegion region;
- region.label = label;
- region.offset.top = t;
- region.offset.right = r;
- region.offset.bottom = b;
- region.offset.left = l;
- region.type = type;
- if (!append)
- rareNonInheritedData.access()->m_dashboardRegions.clear();
- rareNonInheritedData.access()->m_dashboardRegions.append(region);
- }
-#endif
-
- void resetBorder() { resetBorderImage(); resetBorderTop(); resetBorderRight(); resetBorderBottom(); resetBorderLeft(); resetBorderRadius(); }
- void resetBorderTop() { SET_VAR(surround, border.top, BorderValue()) }
- void resetBorderRight() { SET_VAR(surround, border.right, BorderValue()) }
- void resetBorderBottom() { SET_VAR(surround, border.bottom, BorderValue()) }
- void resetBorderLeft() { SET_VAR(surround, border.left, BorderValue()) }
- void resetBorderImage() { SET_VAR(surround, border.image, NinePieceImage()) }
- void resetBorderRadius() { resetBorderTopLeftRadius(); resetBorderTopRightRadius(); resetBorderBottomLeftRadius(); resetBorderBottomRightRadius(); }
- void resetBorderTopLeftRadius() { SET_VAR(surround, border.topLeft, initialBorderRadius()) }
- void resetBorderTopRightRadius() { SET_VAR(surround, border.topRight, initialBorderRadius()) }
- void resetBorderBottomLeftRadius() { SET_VAR(surround, border.bottomLeft, initialBorderRadius()) }
- void resetBorderBottomRightRadius() { SET_VAR(surround, border.bottomRight, initialBorderRadius()) }
-
- void resetOutline() { SET_VAR(background, m_outline, OutlineValue()) }
-
- void setBackgroundColor(const Color& v) { SET_VAR(background, m_color, v) }
-
- void setBorderImage(const NinePieceImage& b) { SET_VAR(surround, border.image, b) }
-
- void setBorderTopLeftRadius(const IntSize& s) { SET_VAR(surround, border.topLeft, s) }
- void setBorderTopRightRadius(const IntSize& s) { SET_VAR(surround, border.topRight, s) }
- void setBorderBottomLeftRadius(const IntSize& s) { SET_VAR(surround, border.bottomLeft, s) }
- void setBorderBottomRightRadius(const IntSize& s) { SET_VAR(surround, border.bottomRight, s) }
- void setBorderRadius(const IntSize& s) {
- setBorderTopLeftRadius(s); setBorderTopRightRadius(s); setBorderBottomLeftRadius(s); setBorderBottomRightRadius(s);
- }
-
- void setBorderLeftWidth(unsigned short v) { SET_VAR(surround, border.left.width, v) }
- void setBorderLeftStyle(EBorderStyle v) { SET_VAR(surround, border.left.m_style, v) }
- void setBorderLeftColor(const Color & v) { SET_VAR(surround, border.left.color, v) }
- void setBorderRightWidth(unsigned short v) { SET_VAR(surround, border.right.width, v) }
- void setBorderRightStyle(EBorderStyle v) { SET_VAR(surround, border.right.m_style, v) }
- void setBorderRightColor(const Color & v) { SET_VAR(surround, border.right.color, v) }
- void setBorderTopWidth(unsigned short v) { SET_VAR(surround, border.top.width, v) }
- void setBorderTopStyle(EBorderStyle v) { SET_VAR(surround, border.top.m_style, v) }
- void setBorderTopColor(const Color & v) { SET_VAR(surround, border.top.color, v) }
- void setBorderBottomWidth(unsigned short v) { SET_VAR(surround, border.bottom.width, v) }
- void setBorderBottomStyle(EBorderStyle v) { SET_VAR(surround, border.bottom.m_style, v) }
- void setBorderBottomColor(const Color & v) { SET_VAR(surround, border.bottom.color, v) }
- void setOutlineWidth(unsigned short v) { SET_VAR(background, m_outline.width, v) }
- void setOutlineStyle(EBorderStyle v, bool isAuto = false)
- {
- SET_VAR(background, m_outline.m_style, v)
- SET_VAR(background, m_outline._auto, isAuto)
- }
- void setOutlineColor(const Color & v) { SET_VAR(background,m_outline.color,v) }
-
- void setOverflowX(EOverflow v) { noninherited_flags._overflowX = v; }
- void setOverflowY(EOverflow v) { noninherited_flags._overflowY = v; }
- void setVisibility(EVisibility v) { inherited_flags._visibility = v; }
- void setVerticalAlign(EVerticalAlign v) { noninherited_flags._vertical_align = v; }
- void setVerticalAlignLength(Length l) { SET_VAR(box, vertical_align, l ) }
-
- void setHasClip(bool b = true) { SET_VAR(visual,hasClip,b) }
- void setClipLeft(Length v) { SET_VAR(visual,clip.left,v) }
- void setClipRight(Length v) { SET_VAR(visual,clip.right,v) }
- void setClipTop(Length v) { SET_VAR(visual,clip.top,v) }
- void setClipBottom(Length v) { SET_VAR(visual,clip.bottom,v) }
- void setClip( Length top, Length right, Length bottom, Length left );
-
- void setUnicodeBidi( EUnicodeBidi b ) { noninherited_flags._unicodeBidi = b; }
-
- void setClear(EClear v) { noninherited_flags._clear = v; }
- void setTableLayout(ETableLayout v) { noninherited_flags._table_layout = v; }
-
- bool setFontDescription(const FontDescription& v) {
- if (inherited->font.fontDescription() != v) {
- inherited.access()->font = Font(v, inherited->font.letterSpacing(), inherited->font.wordSpacing());
- return true;
- }
- return false;
- }
-
- // Only used for blending font sizes when animating.
- void setBlendedFontSize(int);
-
- void setColor(const Color & v) { SET_VAR(inherited,color,v) }
- void setTextIndent(Length v) { SET_VAR(inherited,indent,v) }
- void setTextAlign(ETextAlign v) { inherited_flags._text_align = v; }
- void setTextTransform(ETextTransform v) { inherited_flags._text_transform = v; }
- void addToTextDecorationsInEffect(int v) { inherited_flags._text_decorations |= v; }
- void setTextDecorationsInEffect(int v) { inherited_flags._text_decorations = v; }
- void setTextDecoration(int v) { SET_VAR(visual, textDecoration, v); }
- void setDirection(TextDirection v) { inherited_flags._direction = v; }
- void setLineHeight(Length v) { SET_VAR(inherited,line_height,v) }
- void setZoom(float f) { SET_VAR(visual, m_zoom, f); setEffectiveZoom(effectiveZoom() * zoom()); }
- void setEffectiveZoom(float f) { SET_VAR(inherited, m_effectiveZoom, f) }
-
- void setWhiteSpace(EWhiteSpace v) { inherited_flags._white_space = v; }
-
- void setWordSpacing(int v) { inherited.access()->font.setWordSpacing(v); }
- void setLetterSpacing(int v) { inherited.access()->font.setLetterSpacing(v); }
-
- void clearBackgroundLayers() { background.access()->m_background = FillLayer(BackgroundFillLayer); }
- void inheritBackgroundLayers(const FillLayer& parent) { background.access()->m_background = parent; }
- void adjustBackgroundLayers() {
- if (backgroundLayers()->next()) {
- accessBackgroundLayers()->cullEmptyLayers();
- accessBackgroundLayers()->fillUnsetProperties();
- }
- }
-
- void clearMaskLayers() { rareNonInheritedData.access()->m_mask = FillLayer(MaskFillLayer); }
- void inheritMaskLayers(const FillLayer& parent) { rareNonInheritedData.access()->m_mask = parent; }
- void adjustMaskLayers() {
- if (maskLayers()->next()) {
- accessMaskLayers()->cullEmptyLayers();
- accessMaskLayers()->fillUnsetProperties();
- }
- }
- void setMaskBoxImage(const NinePieceImage& b) { SET_VAR(rareNonInheritedData, m_maskBoxImage, b) }
-
- void setBorderCollapse(bool collapse) { inherited_flags._border_collapse = collapse; }
- void setHorizontalBorderSpacing(short v) { SET_VAR(inherited,horizontal_border_spacing,v) }
- void setVerticalBorderSpacing(short v) { SET_VAR(inherited,vertical_border_spacing,v) }
- void setEmptyCells(EEmptyCell v) { inherited_flags._empty_cells = v; }
- void setCaptionSide(ECaptionSide v) { inherited_flags._caption_side = v; }
-
- void setCounterIncrement(short v) { SET_VAR(visual,counterIncrement,v) }
- void setCounterReset(short v) { SET_VAR(visual,counterReset,v) }
-
- void setListStyleType(EListStyleType v) { inherited_flags._list_style_type = v; }
- void setListStyleImage(StyleImage* v) { if (inherited->list_style_image != v) inherited.access()->list_style_image = v; }
- void setListStylePosition(EListStylePosition v) { inherited_flags._list_style_position = v; }
-
- void resetMargin() { SET_VAR(surround, margin, LengthBox(Fixed)) }
- void setMarginTop(Length v) { SET_VAR(surround,margin.top,v) }
- void setMarginBottom(Length v) { SET_VAR(surround,margin.bottom,v) }
- void setMarginLeft(Length v) { SET_VAR(surround,margin.left,v) }
- void setMarginRight(Length v) { SET_VAR(surround,margin.right,v) }
-
- void resetPadding() { SET_VAR(surround, padding, LengthBox(Auto)) }
- void setPaddingTop(Length v) { SET_VAR(surround,padding.top,v) }
- void setPaddingBottom(Length v) { SET_VAR(surround,padding.bottom,v) }
- void setPaddingLeft(Length v) { SET_VAR(surround,padding.left,v) }
- void setPaddingRight(Length v) { SET_VAR(surround,padding.right,v) }
-
- void setCursor( ECursor c ) { inherited_flags._cursor_style = c; }
- void addCursor(CachedImage*, const IntPoint& = IntPoint());
- void setCursorList(PassRefPtr<CursorList>);
- void clearCursorList();
-
- bool forceBackgroundsToWhite() const { return inherited_flags._force_backgrounds_to_white; }
- void setForceBackgroundsToWhite(bool b=true) { inherited_flags._force_backgrounds_to_white = b; }
-
- bool htmlHacks() const { return inherited_flags._htmlHacks; }
- void setHtmlHacks(bool b=true) { inherited_flags._htmlHacks = b; }
-
- bool hasAutoZIndex() { return box->z_auto; }
- void setHasAutoZIndex() { SET_VAR(box, z_auto, true); SET_VAR(box, z_index, 0) }
- int zIndex() const { return box->z_index; }
- void setZIndex(int v) { SET_VAR(box, z_auto, false); SET_VAR(box, z_index, v) }
-
- void setWidows(short w) { SET_VAR(inherited, widows, w); }
- void setOrphans(short o) { SET_VAR(inherited, orphans, o); }
- void setPageBreakInside(EPageBreak b) { SET_VAR(inherited, page_break_inside, b); }
- void setPageBreakBefore(EPageBreak b) { noninherited_flags._page_break_before = b; }
- void setPageBreakAfter(EPageBreak b) { noninherited_flags._page_break_after = b; }
-
- // CSS3 Setters
-#if ENABLE(XBL)
- void deleteBindingURIs() {
- SET_VAR(rareNonInheritedData, bindingURI, (BindingURI*) 0);
- }
- void inheritBindingURIs(BindingURI* other) {
- SET_VAR(rareNonInheritedData, bindingURI, other->copy());
- }
- void addBindingURI(StringImpl* uri);
-#endif
- void setOutlineOffset(int v) { SET_VAR(background, m_outline._offset, v) }
- void setTextShadow(ShadowData* val, bool add=false);
- void setTextStrokeColor(const Color& c) { SET_VAR(rareInheritedData, textStrokeColor, c) }
- void setTextStrokeWidth(float w) { SET_VAR(rareInheritedData, textStrokeWidth, w) }
- void setTextFillColor(const Color& c) { SET_VAR(rareInheritedData, textFillColor, c) }
- void setOpacity(float f) { SET_VAR(rareNonInheritedData, opacity, f); }
- void setAppearance(EAppearance a) { SET_VAR(rareNonInheritedData, m_appearance, a); }
- void setBoxAlign(EBoxAlignment a) { SET_VAR(rareNonInheritedData.access()->flexibleBox, align, a); }
- void setBoxDirection(EBoxDirection d) { inherited_flags._box_direction = d; }
- void setBoxFlex(float f) { SET_VAR(rareNonInheritedData.access()->flexibleBox, flex, f); }
- void setBoxFlexGroup(unsigned int fg) { SET_VAR(rareNonInheritedData.access()->flexibleBox, flex_group, fg); }
- void setBoxLines(EBoxLines l) { SET_VAR(rareNonInheritedData.access()->flexibleBox, lines, l); }
- void setBoxOrdinalGroup(unsigned int og) { SET_VAR(rareNonInheritedData.access()->flexibleBox, ordinal_group, og); }
- void setBoxOrient(EBoxOrient o) { SET_VAR(rareNonInheritedData.access()->flexibleBox, orient, o); }
- void setBoxPack(EBoxAlignment p) { SET_VAR(rareNonInheritedData.access()->flexibleBox, pack, p); }
- void setBoxShadow(ShadowData* val, bool add=false);
- void setBoxReflect(const PassRefPtr<StyleReflection>& reflect) { if (rareNonInheritedData->m_boxReflect != reflect) rareNonInheritedData.access()->m_boxReflect = reflect; }
- void setBoxSizing(EBoxSizing s) { SET_VAR(box, boxSizing, s); }
- void setMarqueeIncrement(const Length& f) { SET_VAR(rareNonInheritedData.access()->marquee, increment, f); }
- void setMarqueeSpeed(int f) { SET_VAR(rareNonInheritedData.access()->marquee, speed, f); }
- void setMarqueeDirection(EMarqueeDirection d) { SET_VAR(rareNonInheritedData.access()->marquee, direction, d); }
- void setMarqueeBehavior(EMarqueeBehavior b) { SET_VAR(rareNonInheritedData.access()->marquee, behavior, b); }
- void setMarqueeLoopCount(int i) { SET_VAR(rareNonInheritedData.access()->marquee, loops, i); }
- void setUserModify(EUserModify u) { SET_VAR(rareInheritedData, userModify, u); }
- void setUserDrag(EUserDrag d) { SET_VAR(rareNonInheritedData, userDrag, d); }
- void setUserSelect(EUserSelect s) { SET_VAR(rareInheritedData, userSelect, s); }
- void setTextOverflow(bool b) { SET_VAR(rareNonInheritedData, textOverflow, b); }
- void setMarginTopCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginTopCollapse, c); }
- void setMarginBottomCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginBottomCollapse, c); }
- void setWordBreak(EWordBreak b) { SET_VAR(rareInheritedData, wordBreak, b); }
- void setWordWrap(EWordWrap b) { SET_VAR(rareInheritedData, wordWrap, b); }
- void setNBSPMode(ENBSPMode b) { SET_VAR(rareInheritedData, nbspMode, b); }
- void setKHTMLLineBreak(EKHTMLLineBreak b) { SET_VAR(rareInheritedData, khtmlLineBreak, b); }
- void setMatchNearestMailBlockquoteColor(EMatchNearestMailBlockquoteColor c) { SET_VAR(rareNonInheritedData, matchNearestMailBlockquoteColor, c); }
- void setHighlight(const AtomicString& h) { SET_VAR(rareInheritedData, highlight, h); }
- void setBorderFit(EBorderFit b) { SET_VAR(rareNonInheritedData, m_borderFit, b); }
- void setResize(EResize r) { SET_VAR(rareInheritedData, resize, r); }
- void setColumnWidth(float f) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoWidth, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_width, f); }
- void setHasAutoColumnWidth() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoWidth, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_width, 0); }
- void setColumnCount(unsigned short c) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoCount, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_count, c); }
- void setHasAutoColumnCount() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoCount, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_count, 0); }
- void setColumnGap(float f) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_normalGap, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_gap, f); }
- void setHasNormalColumnGap() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_normalGap, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_gap, 0); }
- void setColumnRuleColor(const Color& c) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.color, c); }
- void setColumnRuleStyle(EBorderStyle b) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_style, b); }
- void setColumnRuleWidth(unsigned short w) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.width, w); }
- void resetColumnRule() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule, BorderValue()) }
- void setColumnBreakBefore(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakBefore, p); }
- void setColumnBreakInside(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakInside, p); }
- void setColumnBreakAfter(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakAfter, p); }
- void setTransform(const TransformOperations& ops) { SET_VAR(rareNonInheritedData.access()->m_transform, m_operations, ops); }
- void setTransformOriginX(Length l) { SET_VAR(rareNonInheritedData.access()->m_transform, m_x, l); }
- void setTransformOriginY(Length l) { SET_VAR(rareNonInheritedData.access()->m_transform, m_y, l); }
- // End CSS3 Setters
-
- // Apple-specific property setters
- void clearAnimations()
- {
- rareNonInheritedData.access()->m_animations.clear();
- }
- void clearTransitions()
- {
- rareNonInheritedData.access()->m_transitions.clear();
- }
-
- void inheritAnimations(const AnimationList* parent) { rareNonInheritedData.access()->m_animations.set(parent ? new AnimationList(*parent) : 0); }
- void inheritTransitions(const AnimationList* parent) { rareNonInheritedData.access()->m_transitions.set(parent ? new AnimationList(*parent) : 0); }
- void adjustAnimations();
- void adjustTransitions();
- void updateKeyframes(const CSSStyleSelector* styleSelector) { if (rareNonInheritedData.get()) rareNonInheritedData.access()->updateKeyframes(styleSelector); }
-
- void setLineClamp(int c) { SET_VAR(rareNonInheritedData, lineClamp, c); }
- void setTextSizeAdjust(bool b) { SET_VAR(rareInheritedData, textSizeAdjust, b); }
- void setTextSecurity(ETextSecurity aTextSecurity) { SET_VAR(rareInheritedData, textSecurity, aTextSecurity); }
-
-#if ENABLE(SVG)
- const SVGRenderStyle* svgStyle() const { return m_svgStyle.get(); }
- SVGRenderStyle* accessSVGStyle() { return m_svgStyle.access(); }
-#endif
-
- const ContentData* contentData() const { return rareNonInheritedData->m_content.get(); }
- bool contentDataEquivalent(const RenderStyle* otherStyle) const;
- void clearContent();
- void setContent(StringImpl*, bool add = false);
- void setContent(PassRefPtr<StyleImage>, bool add = false);
- void setContent(CounterContent*, bool add = false);
-
- const CounterDirectiveMap* counterDirectives() const;
- CounterDirectiveMap& accessCounterDirectives();
-
- bool inheritedNotEqual(RenderStyle* other) const;
-
- // The difference between two styles. The following values are used:
- // (1) Equal - The two styles are identical
- // (2) Repaint - The object just needs to be repainted.
- // (3) RepaintLayer - The layer and its descendant layers needs to be repainted.
- // (4) Layout - A layout is required.
- enum Diff { Equal, Repaint, RepaintLayer, LayoutPositionedMovementOnly, Layout };
- Diff diff( const RenderStyle *other ) const;
-
- bool isDisplayReplacedType() {
- return display() == INLINE_BLOCK || display() == INLINE_BOX || display() == INLINE_TABLE;
- }
- bool isDisplayInlineType() {
- return display() == INLINE || isDisplayReplacedType();
- }
- bool isOriginalDisplayInlineType() {
- return originalDisplay() == INLINE || originalDisplay() == INLINE_BLOCK ||
- originalDisplay() == INLINE_BOX || originalDisplay() == INLINE_TABLE;
- }
-
- // To obtain at any time the pseudo state for a given link.
- PseudoState pseudoState() const { return static_cast<PseudoState>(m_pseudoState); }
- void setPseudoState(PseudoState s) { m_pseudoState = s; }
-
- // To tell if this style matched attribute selectors. This makes it impossible to share.
- bool affectedByAttributeSelectors() const { return m_affectedByAttributeSelectors; }
- void setAffectedByAttributeSelectors() { m_affectedByAttributeSelectors = true; }
-
- bool unique() const { return m_unique; }
- void setUnique() { m_unique = true; }
-
- // Methods for indicating the style is affected by dynamic updates (e.g., children changing, our position changing in our sibling list, etc.)
- bool affectedByEmpty() const { return m_affectedByEmpty; }
- bool emptyState() const { return m_emptyState; }
- void setEmptyState(bool b) { m_affectedByEmpty = true; m_unique = true; m_emptyState = b; }
- bool childrenAffectedByPositionalRules() const { return childrenAffectedByForwardPositionalRules() || childrenAffectedByBackwardPositionalRules(); }
- bool childrenAffectedByFirstChildRules() const { return m_childrenAffectedByFirstChildRules; }
- void setChildrenAffectedByFirstChildRules() { m_childrenAffectedByFirstChildRules = true; }
- bool childrenAffectedByLastChildRules() const { return m_childrenAffectedByLastChildRules; }
- void setChildrenAffectedByLastChildRules() { m_childrenAffectedByLastChildRules = true; }
- bool childrenAffectedByDirectAdjacentRules() const { return m_childrenAffectedByDirectAdjacentRules; }
- void setChildrenAffectedByDirectAdjacentRules() { m_childrenAffectedByDirectAdjacentRules = true; }
- bool childrenAffectedByForwardPositionalRules() const { return m_childrenAffectedByForwardPositionalRules; }
- void setChildrenAffectedByForwardPositionalRules() { m_childrenAffectedByForwardPositionalRules = true; }
- bool childrenAffectedByBackwardPositionalRules() const { return m_childrenAffectedByBackwardPositionalRules; }
- void setChildrenAffectedByBackwardPositionalRules() { m_childrenAffectedByBackwardPositionalRules = true; }
- bool firstChildState() const { return m_firstChildState; }
- void setFirstChildState() { m_firstChildState = true; }
- bool lastChildState() const { return m_lastChildState; }
- void setLastChildState() { m_lastChildState = true; }
- unsigned childIndex() const { return m_childIndex; }
- void setChildIndex(unsigned index) { m_childIndex = index; }
-
- // Initial values for all the properties
- static bool initialBorderCollapse() { return false; }
- static EBorderStyle initialBorderStyle() { return BNONE; }
- static NinePieceImage initialNinePieceImage() { return NinePieceImage(); }
- static IntSize initialBorderRadius() { return IntSize(0,0); }
- static ECaptionSide initialCaptionSide() { return CAPTOP; }
- static EClear initialClear() { return CNONE; }
- static TextDirection initialDirection() { return LTR; }
- static EDisplay initialDisplay() { return INLINE; }
- static EEmptyCell initialEmptyCells() { return SHOW; }
- static EFloat initialFloating() { return FNONE; }
- static EListStylePosition initialListStylePosition() { return OUTSIDE; }
- static EListStyleType initialListStyleType() { return DISC; }
- static EOverflow initialOverflowX() { return OVISIBLE; }
- static EOverflow initialOverflowY() { return OVISIBLE; }
- static EPageBreak initialPageBreak() { return PBAUTO; }
- static EPosition initialPosition() { return StaticPosition; }
- static ETableLayout initialTableLayout() { return TAUTO; }
- static EUnicodeBidi initialUnicodeBidi() { return UBNormal; }
- static ETextTransform initialTextTransform() { return TTNONE; }
- static EVisibility initialVisibility() { return VISIBLE; }
- static EWhiteSpace initialWhiteSpace() { return NORMAL; }
- static short initialHorizontalBorderSpacing() { return 0; }
- static short initialVerticalBorderSpacing() { return 0; }
- static ECursor initialCursor() { return CURSOR_AUTO; }
- static Color initialColor() { return Color::black; }
- static StyleImage* initialListStyleImage() { return 0; }
- static unsigned short initialBorderWidth() { return 3; }
- static int initialLetterWordSpacing() { return 0; }
- static Length initialSize() { return Length(); }
- static Length initialMinSize() { return Length(0, Fixed); }
- static Length initialMaxSize() { return Length(undefinedLength, Fixed); }
- static Length initialOffset() { return Length(); }
- static Length initialMargin() { return Length(Fixed); }
- static Length initialPadding() { return Length(Fixed); }
- static Length initialTextIndent() { return Length(Fixed); }
- static EVerticalAlign initialVerticalAlign() { return BASELINE; }
- static int initialWidows() { return 2; }
- static int initialOrphans() { return 2; }
- static Length initialLineHeight() { return Length(-100.0, Percent); }
- static ETextAlign initialTextAlign() { return TAAUTO; }
- static ETextDecoration initialTextDecoration() { return TDNONE; }
- static float initialZoom() { return 1.0f; }
- static int initialOutlineOffset() { return 0; }
- static float initialOpacity() { return 1.0f; }
- static EBoxAlignment initialBoxAlign() { return BSTRETCH; }
- static EBoxDirection initialBoxDirection() { return BNORMAL; }
- static EBoxLines initialBoxLines() { return SINGLE; }
- static EBoxOrient initialBoxOrient() { return HORIZONTAL; }
- static EBoxAlignment initialBoxPack() { return BSTART; }
- static float initialBoxFlex() { return 0.0f; }
- static int initialBoxFlexGroup() { return 1; }
- static int initialBoxOrdinalGroup() { return 1; }
- static EBoxSizing initialBoxSizing() { return CONTENT_BOX; }
- static StyleReflection* initialBoxReflect() { return 0; }
- static int initialMarqueeLoopCount() { return -1; }
- static int initialMarqueeSpeed() { return 85; }
- static Length initialMarqueeIncrement() { return Length(6, Fixed); }
- static EMarqueeBehavior initialMarqueeBehavior() { return MSCROLL; }
- static EMarqueeDirection initialMarqueeDirection() { return MAUTO; }
- static EUserModify initialUserModify() { return READ_ONLY; }
- static EUserDrag initialUserDrag() { return DRAG_AUTO; }
- static EUserSelect initialUserSelect() { return SELECT_TEXT; }
- static bool initialTextOverflow() { return false; }
- static EMarginCollapse initialMarginTopCollapse() { return MCOLLAPSE; }
- static EMarginCollapse initialMarginBottomCollapse() { return MCOLLAPSE; }
- static EWordBreak initialWordBreak() { return NormalWordBreak; }
- static EWordWrap initialWordWrap() { return NormalWordWrap; }
- static ENBSPMode initialNBSPMode() { return NBNORMAL; }
- static EKHTMLLineBreak initialKHTMLLineBreak() { return LBNORMAL; }
- static EMatchNearestMailBlockquoteColor initialMatchNearestMailBlockquoteColor() { return BCNORMAL; }
- static const AtomicString& initialHighlight() { return nullAtom; }
- static EBorderFit initialBorderFit() { return BorderFitBorder; }
- static EResize initialResize() { return RESIZE_NONE; }
- static EAppearance initialAppearance() { return NoAppearance; }
- static bool initialVisuallyOrdered() { return false; }
- static float initialTextStrokeWidth() { return 0; }
- static unsigned short initialColumnCount() { return 1; }
- static const TransformOperations& initialTransform() { static TransformOperations ops; return ops; }
- static Length initialTransformOriginX() { return Length(50.0, Percent); }
- static Length initialTransformOriginY() { return Length(50.0, Percent); }
-
- // Keep these at the end.
- static float initialAnimationDelay() { return 0; }
- static bool initialAnimationDirection() { return false; }
- static double initialAnimationDuration() { return 0; }
- static int initialAnimationIterationCount() { return 1; }
- static String initialAnimationName() { return String(); }
- static unsigned initialAnimationPlayState() { return AnimPlayStatePlaying; }
- static int initialAnimationProperty() { return cAnimateAll; }
- static TimingFunction initialAnimationTimingFunction() { return TimingFunction(); }
- static int initialLineClamp() { return -1; }
- static bool initialTextSizeAdjust() { return true; }
- static ETextSecurity initialTextSecurity() { return TSNONE; }
-#if ENABLE(DASHBOARD_SUPPORT)
- static const Vector<StyleDashboardRegion>& initialDashboardRegions();
- static const Vector<StyleDashboardRegion>& noneDashboardRegions();
-#endif
-};
-
-class KeyframeValue {
-public:
- KeyframeValue() : key(-1) { }
- float key;
- RenderStyle style;
-};
-
-class KeyframeList : public RefCounted<KeyframeList> {
-public:
- static PassRefPtr<KeyframeList> create(const AtomicString& inAnimName) { return adoptRef(new KeyframeList(inAnimName)); }
-
- bool operator==(const KeyframeList& o) const;
- bool operator!=(const KeyframeList& o) const { return !(*this == o); }
-
- const AtomicString& animationName() const { return m_animationName; }
-
- void insert(float inKey, const RenderStyle& inStyle);
-
- void addProperty(int prop) { m_properties.add(prop); }
- bool containsProperty(int prop) const { return m_properties.contains(prop); }
- HashSet<int>::const_iterator beginProperties() { return m_properties.begin(); }
- HashSet<int>::const_iterator endProperties() { return m_properties.end(); }
-
- void clear() { m_keyframes.clear(); m_properties.clear(); }
- bool isEmpty() const { return m_keyframes.isEmpty(); }
- Vector<KeyframeValue>::const_iterator beginKeyframes() const { return m_keyframes.begin(); }
- Vector<KeyframeValue>::const_iterator endKeyframes() const { return m_keyframes.end(); }
-
-private:
- KeyframeList(const AtomicString& inAnimName)
- : m_animationName(inAnimName)
- {
- insert(0, RenderStyle());
- insert(1, RenderStyle());
- }
-
-protected:
- AtomicString m_animationName;
- Vector<KeyframeValue> m_keyframes;
- HashSet<int> m_properties; // the properties being animated
-};
-
-} // namespace WebCore
-
-#endif
diff --git a/webkit/pending/RenderTheme.h b/webkit/pending/RenderTheme.h
deleted file mode 100644
index 8620600..0000000
--- a/webkit/pending/RenderTheme.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * This file is part of the theme implementation for form controls in WebCore.
- *
- * Copyright (C) 2005, 2006, 2007, 2008 Apple Computer, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef RenderTheme_h
-#define RenderTheme_h
-
-#include "RenderObject.h"
-
-namespace WebCore {
-
-class Element;
-class PopupMenu;
-class RenderMenuList;
-class CSSStyleSheet;
-
-enum ControlState {
- HoverState,
- PressedState,
- FocusState,
- EnabledState,
- CheckedState,
- ReadOnlyState,
- DefaultState
-};
-
-class RenderTheme {
-public:
- RenderTheme() { }
- virtual ~RenderTheme() { }
-
- // This method is called whenever style has been computed for an element and the appearance
- // property has been set to a value other than "none". The theme should map in all of the appropriate
- // metrics and defaults given the contents of the style. This includes sophisticated operations like
- // selection of control size based off the font, the disabling of appearance when certain other properties like
- // "border" are set, or if the appearance is not supported by the theme.
- void adjustStyle(CSSStyleSelector*, RenderStyle*, Element*, bool UAHasAppearance,
- const BorderData&, const FillLayer&, const Color& backgroundColor);
-
- // This method is called once, from CSSStyleSelector::loadDefaultStyle(), to let each platform adjust
- // the default CSS rules in html4.css.
- static void adjustDefaultStyleSheet(CSSStyleSheet*);
-
- // This method is called to paint the widget as a background of the RenderObject. A widget's foreground, e.g., the
- // text of a button, is always rendered by the engine itself. The boolean return value indicates
- // whether the CSS border/background should also be painted.
- bool paint(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
- bool paintBorderOnly(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
- bool paintDecorations(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
-
- // The remaining methods should be implemented by the platform-specific portion of the theme, e.g.,
- // RenderThemeMac.cpp for Mac OS X.
-
- // A method to obtain the baseline position for a "leaf" control. This will only be used if a baseline
- // position cannot be determined by examining child content. Checkboxes and radio buttons are examples of
- // controls that need to do this.
- virtual int baselinePosition(const RenderObject*) const;
-
- // A method for asking if a control is a container or not. Leaf controls have to have some special behavior (like
- // the baseline position API above).
- virtual bool isControlContainer(EAppearance) const;
-
- // A method asking if the control changes its tint when the window has focus or not.
- virtual bool controlSupportsTints(const RenderObject*) const { return false; }
-
- // Whether or not the control has been styled enough by the author to disable the native appearance.
- virtual bool isControlStyled(const RenderStyle*, const BorderData&, const FillLayer&, const Color& backgroundColor) const;
-
- // A general method asking if any control tinting is supported at all.
- virtual bool supportsControlTints() const { return false; }
-
- // Some controls may spill out of their containers (e.g., the check on an OS X checkbox). When these controls repaint,
- // the theme needs to communicate this inflated rect to the engine so that it can invalidate the whole control.
- virtual void adjustRepaintRect(const RenderObject*, IntRect&) { }
-
- // This method is called whenever a relevant state changes on a particular themed object, e.g., the mouse becomes pressed
- // or a control becomes disabled.
- virtual bool stateChanged(RenderObject*, ControlState) const;
-
- // This method is called whenever the theme changes on the system in order to flush cached resources from the
- // old theme.
- virtual void themeChanged() { }
-
- // A method asking if the theme is able to draw the focus ring.
- virtual bool supportsFocusRing(const RenderStyle*) const;
-
- // A method asking if the theme's controls actually care about redrawing when hovered.
- virtual bool supportsHover(const RenderStyle*) const { return false; }
-
- // The selection color.
- Color activeSelectionBackgroundColor() const;
- Color inactiveSelectionBackgroundColor() const;
-
- virtual Color platformTextSearchHighlightColor() const;
-
- // The platform selection color.
- virtual Color platformActiveSelectionBackgroundColor() const;
- virtual Color platformInactiveSelectionBackgroundColor() const;
- virtual Color platformActiveSelectionForegroundColor() const;
- virtual Color platformInactiveSelectionForegroundColor() const;
-
- // List Box selection color
- virtual Color activeListBoxSelectionBackgroundColor() const;
- virtual Color activeListBoxSelectionForegroundColor() const;
- virtual Color inactiveListBoxSelectionBackgroundColor() const;
- virtual Color inactiveListBoxSelectionForegroundColor() const;
-
- virtual void platformColorsDidChange();
-
- virtual double caretBlinkFrequency() const { return 0.5; }
-
- // System fonts and colors for CSS.
- virtual void systemFont(int cssValueId, Document*, FontDescription&) const = 0;
- virtual Color systemColor(int cssValueId) const;
-
- virtual int minimumMenuListSize(RenderStyle*) const { return 0; }
-
- virtual void adjustButtonInnerStyle(RenderStyle* style) const { }
- virtual void adjustSliderThumbSize(RenderObject*) const;
-
- // Methods for state querying
- bool isActive(const RenderObject*) const;
- bool isChecked(const RenderObject*) const;
- bool isIndeterminate(const RenderObject*) const;
- bool isEnabled(const RenderObject*) const;
- bool isFocused(const RenderObject*) const;
- bool isPressed(const RenderObject*) const;
- bool isHovered(const RenderObject*) const;
- bool isReadOnlyControl(const RenderObject*) const;
- bool isDefault(const RenderObject*) const;
-
- virtual int popupInternalPaddingLeft(RenderStyle*) const { return 0; }
- virtual int popupInternalPaddingRight(RenderStyle*) const { return 0; }
- virtual int popupInternalPaddingTop(RenderStyle*) const { return 0; }
- virtual int popupInternalPaddingBottom(RenderStyle*) const { return 0; }
-
- // Method for painting the caps lock indicator
- virtual bool paintCapsLockIndicator(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return 0; };
-
-protected:
- // Methods for each appearance value.
- virtual void adjustCheckboxStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintCheckbox(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual void setCheckboxSize(RenderStyle*) const { }
-
- virtual void adjustRadioStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintRadio(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual void setRadioSize(RenderStyle*) const { }
-
- virtual void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual void setButtonSize(RenderStyle*) const { }
-
- virtual void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustTextAreaStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintTextArea(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustMenuListStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintMenuList(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintMenuListButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSearchFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSearchField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSearchFieldCancelButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldCancelButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSearchFieldDecorationStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldDecoration(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSearchFieldResultsDecorationStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldResultsDecoration(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual void adjustSearchFieldResultsButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldResultsButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
- virtual bool paintMediaFullscreenButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaPlayButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaMuteButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaSeekBackButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaSeekForwardButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaSliderTrack(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
- virtual bool paintMediaSliderThumb(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
-
-private:
- mutable Color m_activeSelectionColor;
- mutable Color m_inactiveSelectionColor;
-};
-
-// Function to obtain the theme. This is implemented in your platform-specific theme implementation to hand
-// back the appropriate platform theme.
-RenderTheme* theme();
-
-} // namespace WebCore
-
-#endif // RenderTheme_h
diff --git a/webkit/pending/SMILTimeContainer.h b/webkit/pending/SMILTimeContainer.h
deleted file mode 100644
index dc858a8..0000000
--- a/webkit/pending/SMILTimeContainer.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef SMILTimeContainer_H
-#define SMILTimeContainer_H
-
-#if ENABLE(SVG)
-
-#include "PlatformString.h"
-#include "SMILTime.h"
-#include "StringHash.h"
-#include "Timer.h"
-#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
- class SVGElement;
- class SVGSMILElement;
- class SVGSVGElement;
-
- class SMILTimeContainer : public RefCounted<SMILTimeContainer> {
- public:
- static PassRefPtr<SMILTimeContainer> create(SVGSVGElement* owner) { return adoptRef(new SMILTimeContainer(owner)); }
-
- void schedule(SVGSMILElement*);
- void unschedule(SVGSMILElement*);
-
- SMILTime elapsed() const;
-
- bool isActive() const;
- bool isPaused() const;
-
- void begin();
- void pause();
- void resume();
-
- void setDocumentOrderIndexesDirty() { m_documentOrderIndexesDirty = true; }
-
- private:
- SMILTimeContainer(SVGSVGElement* owner);
-
- void timerFired(Timer<SMILTimeContainer>*);
- void startTimer(SMILTime fireTime, SMILTime minimumDelay = 0);
- void updateAnimations(SMILTime elapsed);
-
- void updateDocumentOrderIndexes();
- void sortByPriority(Vector<SVGSMILElement*>& smilElements, SMILTime elapsed);
-
- typedef pair<SVGElement*, String> ElementAttributePair;
- String baseValueFor(ElementAttributePair);
-
- double m_beginTime;
- double m_pauseTime;
- double m_accumulatedPauseTime;
-
- bool m_documentOrderIndexesDirty;
-
- Timer<SMILTimeContainer> m_timer;
-
- typedef HashSet<SVGSMILElement*> TimingElementSet;
- TimingElementSet m_scheduledAnimations;
-
- typedef HashMap<ElementAttributePair, String> BaseValueMap;
- BaseValueMap m_savedBaseValues;
-
- SVGSVGElement* m_ownerSVGElement;
- };
-}
-
-#endif
-#endif
diff --git a/webkit/pending/Traversal.cpp b/webkit/pending/Traversal.cpp
deleted file mode 100644
index 05fc88f8..0000000
--- a/webkit/pending/Traversal.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
- * Copyright (C) 2004, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-#include "Traversal.h"
-
-#include "ExceptionContext.h"
-#include "Node.h"
-#include "NodeFilter.h"
-
-namespace WebCore {
-
-Traversal::Traversal(PassRefPtr<Node> rootNode, unsigned whatToShow, PassRefPtr<NodeFilter> nodeFilter, bool expandEntityReferences)
- : m_root(rootNode)
- , m_whatToShow(whatToShow)
- , m_filter(nodeFilter)
- , m_expandEntityReferences(expandEntityReferences)
-{
-}
-
-short Traversal::acceptNode(ExceptionContext* exec, Node* node) const
-{
- // FIXME: To handle XML properly we would have to check m_expandEntityReferences.
-
- // The bit twiddling here is done to map DOM node types, which are given as integers from
- // 1 through 12, to whatToShow bit masks.
- if (!(((1 << (node->nodeType() - 1)) & m_whatToShow)))
- return NodeFilter::FILTER_SKIP;
- if (!m_filter)
- return NodeFilter::FILTER_ACCEPT;
- return m_filter->acceptNode(exec, node);
-}
-
-} // namespace WebCore
diff --git a/webkit/pending/Traversal.h b/webkit/pending/Traversal.h
deleted file mode 100644
index 52bb88f..0000000
--- a/webkit/pending/Traversal.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2000 Frederik Holljen (frederik.holljen@hig.no)
- * Copyright (C) 2001 Peter Kelly (pmk@post.com)
- * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com)
- * Copyright (C) 2004, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef Traversal_h
-#define Traversal_h
-
-#include <wtf/Forward.h>
-#include <wtf/RefPtr.h>
-
-
-namespace WebCore {
-
- class ExceptionContext;
- class Node;
- class NodeFilter;
-
- class Traversal {
- public:
- Node* root() const { return m_root.get(); }
- unsigned whatToShow() const { return m_whatToShow; }
- NodeFilter* filter() const { return m_filter.get(); }
- bool expandEntityReferences() const { return m_expandEntityReferences; }
-
- protected:
- Traversal(PassRefPtr<Node>, unsigned whatToShow, PassRefPtr<NodeFilter>, bool expandEntityReferences);
- short acceptNode(ExceptionContext*, Node*) const;
-
- private:
- RefPtr<Node> m_root;
- unsigned m_whatToShow;
- RefPtr<NodeFilter> m_filter;
- bool m_expandEntityReferences;
- };
-
-} // namespace WebCore
-
-#endif // Traversal_h
diff --git a/webkit/pending/TreeShared.h b/webkit/pending/TreeShared.h
deleted file mode 100644
index bb38364..0000000
--- a/webkit/pending/TreeShared.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef TreeShared_h
-#define TreeShared_h
-
-#include "Peerable.h"
-#include "RefCounted.h"
-
-namespace WebCore {
-
-#if USE(V8)
-
-template<class T> class TreeShared : public Peerable {
-public:
- TreeShared() : m_refCount(0), m_parent(0), m_peer(0)
- {
-#ifndef NDEBUG
- m_deletionHasBegun = false;
- m_inRemovedLastRefFunction = false;
-#endif
- }
-
- TreeShared(T* parent) : m_refCount(0), m_parent(parent), m_peer(0)
- {
-#ifndef NDEBUG
- m_deletionHasBegun = false;
- m_inRemovedLastRefFunction = false;
-#endif
- }
-
- virtual ~TreeShared()
- {
- ASSERT(m_deletionHasBegun);
- ASSERT(!m_peer);
- }
-
- void ref()
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
- ++m_refCount;
- }
-
- void deref()
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
-
- if (--m_refCount <= 0 && !m_parent && !m_peer) {
-#ifndef NDEBUG
- m_inRemovedLastRefFunction = true;
-#endif
- removedLastRef();
- }
- }
-
- void setPeer(void* peer)
- {
- m_peer = peer;
- if (m_refCount <= 0 && !m_parent && !m_peer) {
-#ifndef NDEBUG
- m_inRemovedLastRefFunction = true;
-#endif
- removedLastRef();
- }
- }
-
- void* peer() const { return m_peer; }
-
- bool hasOneRef()
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
- if (m_peer)
- return m_refCount == 0;
- return m_refCount == 1;
- }
-
- int refCount() const
- {
- if (m_peer)
- return m_refCount + 1;
- return m_refCount;
- }
-
- // setParent never deletes the node even if the node only has a
- // parent and no other references. For DOM nodes the deletion
- // done in ContainerNode::removeAllChildren.
- void setParent(T* parent) { m_parent = parent; }
- T* parent() const { return m_parent; }
-
-#ifndef NDEBUG
- bool m_deletionHasBegun;
- bool m_inRemovedLastRefFunction;
-#endif
-
-private:
- virtual void removedLastRef()
- {
-#ifndef NDEBUG
- m_deletionHasBegun = true;
-#endif
- delete static_cast<T*>(this);
- }
-
- int m_refCount;
- T* m_parent;
- void* m_peer;
-};
-
-#elif USE(JSC)
-
-template<class T> class TreeShared : Noncopyable {
-public:
- TreeShared()
- : m_refCount(0)
- , m_parent(0)
- {
-#ifndef NDEBUG
- m_deletionHasBegun = false;
- m_inRemovedLastRefFunction = false;
-#endif
- }
- TreeShared(T* parent)
- : m_refCount(0)
- , m_parent(0)
- {
-#ifndef NDEBUG
- m_deletionHasBegun = false;
- m_inRemovedLastRefFunction = false;
-#endif
- }
- virtual ~TreeShared()
- {
- ASSERT(m_deletionHasBegun);
- }
-
- void ref()
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
- ++m_refCount;
- }
-
- void deref()
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
- if (--m_refCount <= 0 && !m_parent) {
-#ifndef NDEBUG
- m_inRemovedLastRefFunction = true;
-#endif
- removedLastRef();
- }
- }
-
- bool hasOneRef() const
- {
- ASSERT(!m_deletionHasBegun);
- ASSERT(!m_inRemovedLastRefFunction);
- return m_refCount == 1;
- }
-
- int refCount() const
- {
- return m_refCount;
- }
-
- void setParent(T* parent) { m_parent = parent; }
- T* parent() const { return m_parent; }
-
-#ifndef NDEBUG
- bool m_deletionHasBegun;
- bool m_inRemovedLastRefFunction;
-#endif
-
-private:
- virtual void removedLastRef()
- {
-#ifndef NDEBUG
- m_deletionHasBegun = true;
-#endif
- delete this;
- }
-
- int m_refCount;
- T* m_parent;
-};
-
-#else
-#error "You must include config.h before TreeShared.h"
-#endif
-
-}
-
-#endif // TreeShared.h
diff --git a/webkit/port/DerivedSources.make b/webkit/port/DerivedSources.make
index f0a0dad..e832dec 100644
--- a/webkit/port/DerivedSources.make
+++ b/webkit/port/DerivedSources.make
@@ -32,6 +32,7 @@ VPATH = \
$(PORTROOT)/html \
$(PORTROOT)/page \
$(PORTROOT)/page/inspector \
+ $(PORTROOT)/svg \
$(PORTROOT)/xml \
$(PORTROOT)/ksvg2/svg \
$(PORTROOT)/ksvg2/events \
@@ -733,7 +734,9 @@ all : \
V8ImageData.h \
V8KeyboardEvent.h \
V8MediaList.h \
+ V8MessageChannel.h \
V8MessageEvent.h \
+ V8MessagePort.h \
V8MouseEvent.h \
V8MutationEvent.h \
V8NamedNodeMap.h \
@@ -742,7 +745,6 @@ all : \
V8NodeIterator.h \
V8NodeList.h \
V8Notation.h \
- V8NSResolver.h \
V8OverflowEvent.h \
V8ProcessingInstruction.h \
V8ProgressEvent.h \
@@ -918,7 +920,6 @@ all : \
XPathGrammar.cpp \
tokenizer.cpp \
V8Clipboard.h \
- V8HTMLSelectionInputElement.h \
V8InspectorController.h \
V8Location.h \
V8Navigator.h \
diff --git a/webkit/port/bindings/scripts/CodeGeneratorV8.pm b/webkit/port/bindings/scripts/CodeGeneratorV8.pm
index 99e447c..87353ca 100644
--- a/webkit/port/bindings/scripts/CodeGeneratorV8.pm
+++ b/webkit/port/bindings/scripts/CodeGeneratorV8.pm
@@ -224,7 +224,6 @@ sub GetImplementationFileName
{
my $iface = shift;
return "HTMLCollection.h" if $iface eq "UndetectableHTMLCollection";
- return "HTMLInputElement.h" if $iface eq "HTMLSelectionInputElement";
return "Event.h" if $iface eq "DOMTimeStamp";
return "NamedAttrMap.h" if $iface eq "NamedNodeMap";
return "NameNodeList.h" if $iface eq "NodeList";
@@ -240,7 +239,7 @@ sub GenerateHeader
my $interfaceName = $dataNode->name;
my $className = "V8$interfaceName";
- my $implClassName = GetImplementationClassName($interfaceName);
+ my $implClassName = $interfaceName;
# Copy contents of parent classes except the first parent or if it is
# EventTarget.
@@ -426,11 +425,12 @@ sub GenerateNormalAttrGetter
my $isPodType = $codeGenerator->IsPodType($implClassName);
my $skipContext = 0;
+
if ($isPodType) {
$implClassName = GetNativeType($implClassName);
$implIncludes{"V8SVGPODTypeWrapper.h"} = 1;
}
-
+
# Special case: SVGZoomEvent's attributes are all read-only
if ($implClassName eq "SVGZoomEvent") {
$attrIsPodType = 0;
@@ -830,7 +830,7 @@ sub GenerateImplementation
my $dataNode = shift;
my $interfaceName = $dataNode->name;
my $className = "V8$interfaceName";
- my $implClassName = GetImplementationClassName($interfaceName);
+ my $implClassName = $interfaceName;
my $classIndex = uc($codeGenerator->StripModule($interfaceName));
my $hasLegacyParent = $dataNode->extendedAttributes->{"LegacyParent"};
@@ -867,7 +867,8 @@ sub GenerateImplementation
my $hasConstructors = 0;
# Generate property accessors for attributes.
- foreach my $attribute (@{$dataNode->attributes}) {
+ for ($index = 0; $index < @{$dataNode->attributes}; $index++) {
+ $attribute = @{$dataNode->attributes}[$index];
$attrName = $attribute->signature->name;
$attrType = $attribute->signature->type;
@@ -876,6 +877,18 @@ sub GenerateImplementation
$hasConstructors = 1;
next;
}
+
+ # Make EventListeners always custom.
+ # TODO(mbelshe): make the perl code capable of generating the
+ # event setters/getters. For now, WebKit has started removing the
+ # [Custom] attribute, so just automatically insert it to avoid forking
+ # other files. This should be okay because we can't generate stubs
+ # for any event getter/setters anyway.
+ if ($attrType eq "EventListener") {
+ $attribute->signature->extendedAttributes->{"Custom"} = 1;
+ $implIncludes{"v8_custom.h"} = 1;
+ next;
+ }
# Do not generate accessor if this is a custom attribute. The
# call will be forwarded to a hand-written accessor
@@ -884,7 +897,7 @@ sub GenerateImplementation
$implIncludes{"v8_custom.h"} = 1;
next;
}
-
+
# Generate the accessor.
if ($attribute->signature->extendedAttributes->{"CustomGetter"}) {
$implIncludes{"v8_custom.h"} = 1;
@@ -1374,21 +1387,10 @@ sub GetClassName
{
my $type = shift;
return "HTMLCollection" if $type eq "UndetectableHTMLCollection";
- return "HTMLInputElement" if $type eq "HTMLSelectionInputElement";
return $type;
}
-sub GetImplementationClassName
-{
- my $type = shift;
-
- return "HTMLInputElement" if $type eq "HTMLSelectionInputElement";
-
- return $type;
-}
-
-
sub GetNativeTypeFromSignature
{
my $signature = shift;
@@ -1484,9 +1486,6 @@ sub GetNativeType
return "String" if $type eq "DOMUserData"; # temporary hack, TODO
# temporary hack
- $type = GetImplementationClassName($type);
-
- # temporary hack
return "RefPtr<NodeFilter>" if $type eq "NodeFilter";
return "RefPtr<${type}>" if IsRefPtrType($type) and not $isParameter;
@@ -1511,6 +1510,7 @@ my %typeCanFailConversion = (
"HTMLOptionElement" => 0,
"Node" => 0,
"NodeFilter" => 0,
+ "MessagePort" => 0,
"NSResolver" => 0,
"Range" => 0,
"SQLResultSet" => 0,
@@ -1615,7 +1615,7 @@ sub JSValueToNative
} else {
# TODO: Temporary to avoid Window name conflict.
my $classIndex = uc($type);
- my $implClassName = GetImplementationClassName(${type});
+ my $implClassName = ${type};
$implIncludes{"V8$type.h"} = 1;
@@ -1777,7 +1777,7 @@ sub NativeToJSValue
}
# V8 specific.
- my $implClassName = GetImplementationClassName($type);
+ my $implClassName = $type;
AddIncludesForType($type);
# $implIncludes{GetImplementationFileName($type)} = 1 unless AvoidInclusionOfType($type);
diff --git a/webkit/port/bindings/v8/JSNSResolver.cpp b/webkit/port/bindings/v8/JSNSResolver.cpp
deleted file mode 100644
index 5251a35..0000000
--- a/webkit/port/bindings/v8/JSNSResolver.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright (c) 2008, 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 "JSNSResolver.h"
-
-#include "v8_proxy.h"
-#include "v8_binding.h"
-#include "ExceptionContext.h"
-#include "PlatformString.h"
-
-namespace WebCore {
-
-JSNSResolver::JSNSResolver(v8::Handle<v8::Object> resolver)
- : m_resolver(resolver)
-{
-}
-
-JSNSResolver::~JSNSResolver()
-{
-}
-
-String JSNSResolver::lookupNamespaceURI(ExceptionContext* exceptionContext,
- const String& prefix)
-{
- v8::Handle<v8::Function> lookupNamespaceURIFunc;
- v8::Handle<v8::String> lookupNamespaceURIName =
- v8::String::New("lookupNamespaceURI");
-
- // Check if the resolver has a function property named lookupNamespaceURI.
- if (m_resolver->Has(lookupNamespaceURIName)) {
- // In case the property is a getter that throws an error,
- // see LayoutTests/fast/dom/SelectorAPI/NSResolver-exceptions.xhtml
- ExceptionCatcher exceptionCatcher(exceptionContext);
- v8::Handle<v8::Value> lookupNamespaceURI = m_resolver->Get(
- lookupNamespaceURIName);
- if (exceptionContext->hadException())
- return String();
- if (lookupNamespaceURI->IsFunction()) {
- lookupNamespaceURIFunc = v8::Handle<v8::Function>::Cast(
- lookupNamespaceURI);
- }
- }
-
- if (lookupNamespaceURIFunc.IsEmpty() && !m_resolver->IsFunction()) {
- Frame* frame = ScriptController::retrieveActiveFrame();
- log_info(frame, "NSResolver does not have a lookupNamespaceURI method.",
- String());
- return String();
- }
-
- // Catch exceptions from calling the namespace resolver.
- ExceptionCatcher exceptionCatcher(exceptionContext);
-
- const int argc = 1;
- v8::Handle<v8::Value> argv[argc] = { v8String(prefix) };
- v8::Handle<v8::Function> function = lookupNamespaceURIFunc.IsEmpty()
- ? v8::Handle<v8::Function>::Cast(m_resolver)
- : lookupNamespaceURIFunc;
-
- V8Proxy* proxy = V8Proxy::retrieve();
- v8::Handle<v8::Value> retval = proxy->CallFunction(function, m_resolver,
- argc, argv);
-
- // Eat exceptions from namespace resolver and return an empty string. This
- // will cause NAMESPACE_ERR.
- if (exceptionContext->hadException())
- return String();
-
- return valueToStringWithNullOrUndefinedCheck(retval);
-}
-
-}
diff --git a/webkit/port/bindings/v8/ScriptController.h b/webkit/port/bindings/v8/ScriptController.h
index aa4a46b..d23ca65 100644
--- a/webkit/port/bindings/v8/ScriptController.h
+++ b/webkit/port/bindings/v8/ScriptController.h
@@ -34,6 +34,7 @@
#define ScriptController_h
#include "HashMap.h"
+#include "SecurityOrigin.h"
#include "bindings/npruntime.h"
diff --git a/webkit/port/bindings/v8/V8MessagePortCustom.cpp b/webkit/port/bindings/v8/V8MessagePortCustom.cpp
new file mode 100644
index 0000000..8e4c3a9
--- /dev/null
+++ b/webkit/port/bindings/v8/V8MessagePortCustom.cpp
@@ -0,0 +1,232 @@
+// Copyright (c) 2008, 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 "v8_binding.h"
+#include "v8_custom.h"
+#include "v8_events.h"
+#include "v8_proxy.h"
+
+#include "V8Document.h"
+#include "V8HTMLDocument.h"
+
+#include "ExceptionCode.h"
+#include "MessagePort.h"
+
+namespace WebCore {
+
+// TODO(mbelshe) - merge these with XHR's CreateHiddenXHRDependency
+
+// Use an array to hold dependents. It works like a ref-counted scheme.
+// A value can be added more than once to the xhr object.
+static void CreateHiddenDependency(v8::Local<v8::Object> object,
+ v8::Local<v8::Value> value) {
+ ASSERT(V8Proxy::GetDOMWrapperType(object) ==
+ V8ClassIndex::MESSAGEPORT);
+ v8::Local<v8::Value> cache =
+ object->GetInternalField(V8Custom::kMessagePortRequestCacheIndex);
+ if (cache->IsNull() || cache->IsUndefined()) {
+ cache = v8::Array::New();
+ object->SetInternalField(V8Custom::kXMLHttpRequestCacheIndex, cache);
+ }
+
+ v8::Local<v8::Array> cache_array = v8::Local<v8::Array>::Cast(cache);
+ cache_array->Set(v8::Integer::New(cache_array->Length()), value);
+}
+
+static void RemoveHiddenDependency(v8::Local<v8::Object> object,
+ v8::Local<v8::Value> value) {
+ ASSERT(V8Proxy::GetDOMWrapperType(object) == V8ClassIndex::MESSAGEPORT);
+ v8::Local<v8::Value> cache =
+ object->GetInternalField(V8Custom::kMessagePortRequestCacheIndex);
+ ASSERT(cache->IsArray());
+ v8::Local<v8::Array> cache_array = v8::Local<v8::Array>::Cast(cache);
+ for (int i = cache_array->Length() - 1; i >= 0; i--) {
+ v8::Local<v8::Value> cached = cache_array->Get(v8::Integer::New(i));
+ if (cached->StrictEquals(value)) {
+ cache_array->Delete(i);
+ return;
+ }
+ }
+
+ // We should only get here if we try to remove an event listener that was
+ // never added.
+}
+
+ACCESSOR_GETTER(MessagePortOnmessage) {
+ INC_STATS(L"DOM.MessagePort.onmessage._get");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, info.Holder());
+ if (imp->onmessage()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onmessage());
+ v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
+ return v8_listener;
+ }
+ return v8::Undefined();
+}
+
+ACCESSOR_SETTER(MessagePortOnmessage) {
+ INC_STATS(L"DOM.MessagePort.onmessage._set");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, info.Holder());
+ if (value->IsNull()) {
+ if (imp->onmessage()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onmessage());
+ v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
+ RemoveHiddenDependency(info.Holder(), v8_listener);
+ }
+
+ // Clear the listener
+ imp->setOnmessage(0);
+
+ } else {
+ V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
+ if (!proxy)
+ return;
+
+ RefPtr<EventListener> listener =
+ proxy->FindOrCreateObjectEventListener(value, false);
+ if (listener) {
+ imp->setOnmessage(listener);
+ CreateHiddenDependency(info.Holder(), value);
+ }
+ }
+}
+
+ACCESSOR_GETTER(MessagePortOnclose) {
+ INC_STATS(L"DOM.MessagePort.onclose._get");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, info.Holder());
+ if (imp->onclose()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onclose());
+ v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
+ return v8_listener;
+ }
+ return v8::Undefined();
+}
+
+ACCESSOR_SETTER(MessagePortOnclose) {
+ INC_STATS(L"DOM.MessagePort.onclose._set");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, info.Holder());
+ if (value->IsNull()) {
+ if (imp->onclose()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onclose());
+ v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
+ RemoveHiddenDependency(info.Holder(), v8_listener);
+ }
+
+ // Clear the listener
+ imp->setOnclose(0);
+ } else {
+ V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
+ if (!proxy)
+ return;
+
+ RefPtr<EventListener> listener =
+ proxy->FindOrCreateObjectEventListener(value, false);
+ if (listener) {
+ imp->setOnclose(listener);
+ CreateHiddenDependency(info.Holder(), value);
+ }
+ }
+}
+
+CALLBACK_FUNC_DECL(MessagePortStartConversation) {
+ INC_STATS(L"DOM.MessagePort.StartConversation()");
+ if (args.Length() < 1) {
+ V8Proxy::ThrowError(V8Proxy::SYNTAX_ERROR, "Not enough arguments");
+ return v8::Undefined();
+ }
+
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, args.Holder());
+
+ V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
+ if (!proxy)
+ return v8::Undefined();
+
+ RefPtr<MessagePort> port = imp->startConversation(imp->document(),
+ ToWebCoreString(args[0]));
+ v8::Handle<v8::Value> wrapper =
+ V8Proxy::ToV8Object(V8ClassIndex::MESSAGEPORT, port.get());
+ return wrapper;
+}
+
+CALLBACK_FUNC_DECL(MessagePortAddEventListener) {
+ INC_STATS(L"DOM.MessagePort.AddEventListener()");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, args.Holder());
+
+ V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
+ if (!proxy)
+ return v8::Undefined();
+
+ RefPtr<EventListener> listener =
+ proxy->FindOrCreateObjectEventListener(args[1], false);
+ if (listener) {
+ String type = ToWebCoreString(args[0]);
+ bool useCapture = args[2]->BooleanValue();
+ imp->addEventListener(type, listener, useCapture);
+
+ CreateHiddenDependency(args.Holder(), args[1]);
+ }
+ return v8::Undefined();
+}
+
+CALLBACK_FUNC_DECL(MessagePortRemoveEventListener) {
+ INC_STATS(L"DOM.MessagePort.RemoveEventListener()");
+ MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, args.Holder());
+
+ V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
+ if (!proxy)
+ return v8::Undefined(); // probably leaked
+
+ RefPtr<EventListener> listener =
+ proxy->FindObjectEventListener(args[1], false);
+
+ if (listener) {
+ String type = ToWebCoreString(args[0]);
+ bool useCapture = args[2]->BooleanValue();
+ imp->removeEventListener(type, listener.get(), useCapture);
+
+ RemoveHiddenDependency(args.Holder(), args[1]);
+ }
+
+ return v8::Undefined();
+}
+
+
+} // namespace WebCore
diff --git a/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp b/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp
index ce4c84d..d61a8c32 100644
--- a/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp
+++ b/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp
@@ -107,9 +107,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnabort) {
INC_STATS(L"DOM.XMLHttpRequest.onabort._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onAbortListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onAbortListener());
+ if (imp->onabort()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onabort());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -121,24 +121,24 @@ ACCESSOR_SETTER(XMLHttpRequestOnabort) {
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
- if (imp->onAbortListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onAbortListener());
+ if (imp->onabort()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onabort());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnAbortListener(0);
+ imp->setOnabort(0);
} else {
V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
if (!proxy)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnAbortListener(listener);
+ imp->setOnabort(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -148,9 +148,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnerror) {
INC_STATS(L"DOM.XMLHttpRequest.onerror._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onErrorListener()) {
- RefPtr<V8XHREventListener> listener =
- static_cast<V8XHREventListener*>(imp->onErrorListener());
+ if (imp->onerror()) {
+ RefPtr<V8ObjectEventListener> listener =
+ static_cast<V8ObjectEventListener*>(imp->onerror());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -162,24 +162,24 @@ ACCESSOR_SETTER(XMLHttpRequestOnerror) {
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
- if (imp->onErrorListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onErrorListener());
+ if (imp->onerror()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onerror());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnErrorListener(0);
+ imp->setOnerror(0);
} else {
V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
if (!proxy)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnErrorListener(listener);
+ imp->setOnerror(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -189,9 +189,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnload) {
INC_STATS(L"DOM.XMLHttpRequest.onload._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onLoadListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadListener());
+ if (imp->onload()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onload());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -205,7 +205,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnload)
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
if (imp->onload()) {
- V8XHREventListener* listener = static_cast<V8XHREventListener*>(imp->onload());
+ V8ObjectEventListener* listener = static_cast<V8ObjectEventListener*>(imp->onload());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
@@ -218,7 +218,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnload)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
imp->setOnload(listener.get());
CreateHiddenXHRDependency(info.Holder(), value);
@@ -230,9 +230,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnloadstart) {
INC_STATS(L"DOM.XMLHttpRequest.onloadstart._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onLoadStartListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadStartListener());
+ if (imp->onloadstart()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onloadstart());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -244,24 +244,24 @@ ACCESSOR_SETTER(XMLHttpRequestOnloadstart) {
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
- if (imp->onLoadStartListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadStartListener());
+ if (imp->onloadstart()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onloadstart());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnLoadStartListener(0);
+ imp->setOnloadstart(0);
} else {
V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
if (!proxy)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnLoadStartListener(listener);
+ imp->setOnloadstart(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -271,9 +271,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnprogress) {
INC_STATS(L"DOM.XMLHttpRequest.onprogress._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onProgressListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onProgressListener());
+ if (imp->onprogress()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onprogress());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -285,24 +285,24 @@ ACCESSOR_SETTER(XMLHttpRequestOnprogress) {
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
- if (imp->onProgressListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onProgressListener());
+ if (imp->onprogress()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onprogress());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnProgressListener(0);
+ imp->setOnprogress(0);
} else {
V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame());
if (!proxy)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnProgressListener(listener);
+ imp->setOnprogress(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -312,9 +312,9 @@ ACCESSOR_GETTER(XMLHttpRequestOnreadystatechange) {
INC_STATS(L"DOM.XMLHttpRequest.onreadystatechange._get");
XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>(
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
- if (imp->onReadyStateChangeListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onReadyStateChangeListener());
+ if (imp->onreadystatechange()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onreadystatechange());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -328,8 +328,8 @@ ACCESSOR_SETTER(XMLHttpRequestOnreadystatechange)
V8ClassIndex::XMLHTTPREQUEST, info.Holder());
if (value->IsNull()) {
if (imp->onreadystatechange()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onreadystatechange());
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onreadystatechange());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
@@ -342,7 +342,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnreadystatechange)
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
imp->setOnreadystatechange(listener.get());
CreateHiddenXHRDependency(info.Holder(), value);
@@ -361,7 +361,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestAddEventListener)
return v8::Undefined();
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(args[1], false);
+ proxy->FindOrCreateObjectEventListener(args[1], false);
if (listener) {
String type = ToWebCoreString(args[0]);
bool useCapture = args[2]->BooleanValue();
@@ -382,7 +382,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestRemoveEventListener) {
return v8::Undefined(); // probably leaked
RefPtr<EventListener> listener =
- proxy->FindXHREventListener(args[1], false);
+ proxy->FindObjectEventListener(args[1], false);
if (listener) {
String type = ToWebCoreString(args[0]);
@@ -544,9 +544,9 @@ ACCESSOR_GETTER(XMLHttpRequestUploadOnabort) {
INC_STATS(L"DOM.XMLHttpRequestUpload.onabort._get");
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
- if (imp->onAbortListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onAbortListener());
+ if (imp->onabort()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onabort());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -558,15 +558,15 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnabort) {
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
if (value->IsNull()) {
- if (imp->onAbortListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onAbortListener());
+ if (imp->onabort()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onabort());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnAbortListener(0);
+ imp->setOnabort(0);
} else {
XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest();
V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame());
@@ -574,9 +574,9 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnabort) {
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnAbortListener(listener);
+ imp->setOnabort(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -586,9 +586,9 @@ ACCESSOR_GETTER(XMLHttpRequestUploadOnerror) {
INC_STATS(L"DOM.XMLHttpRequestUpload.onerror._get");
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
- if (imp->onErrorListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onErrorListener());
+ if (imp->onerror()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onerror());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -600,15 +600,15 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnerror) {
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
if (value->IsNull()) {
- if (imp->onErrorListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onErrorListener());
+ if (imp->onerror()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onerror());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnErrorListener(0);
+ imp->setOnerror(0);
} else {
XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest();
V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame());
@@ -616,9 +616,9 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnerror) {
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnErrorListener(listener);
+ imp->setOnerror(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -628,9 +628,9 @@ ACCESSOR_GETTER(XMLHttpRequestUploadOnload) {
INC_STATS(L"DOM.XMLHttpRequestUpload.onload._get");
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
- if (imp->onLoadListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadListener());
+ if (imp->onload()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onload());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -642,15 +642,15 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnload) {
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
if (value->IsNull()) {
- if (imp->onLoadListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadListener());
+ if (imp->onload()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onload());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnLoadListener(0);
+ imp->setOnload(0);
} else {
XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest();
V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame());
@@ -658,9 +658,9 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnload) {
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnLoadListener(listener);
+ imp->setOnload(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -670,9 +670,9 @@ ACCESSOR_GETTER(XMLHttpRequestUploadOnloadstart) {
INC_STATS(L"DOM.XMLHttpRequestUpload.onloadstart._get");
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
- if (imp->onLoadStartListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadStartListener());
+ if (imp->onloadstart()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onloadstart());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -684,15 +684,15 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnloadstart) {
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
if (value->IsNull()) {
- if (imp->onLoadStartListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onLoadStartListener());
+ if (imp->onloadstart()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onloadstart());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnLoadStartListener(0);
+ imp->setOnloadstart(0);
} else {
XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest();
V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame());
@@ -700,9 +700,9 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnloadstart) {
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnLoadStartListener(listener);
+ imp->setOnloadstart(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -712,9 +712,9 @@ ACCESSOR_GETTER(XMLHttpRequestUploadOnprogress) {
INC_STATS(L"DOM.XMLHttpRequestUpload.onprogress._get");
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
- if (imp->onProgressListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onProgressListener());
+ if (imp->onprogress()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onprogress());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
return v8_listener;
}
@@ -726,15 +726,15 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnprogress) {
XMLHttpRequestUpload* imp = V8Proxy::ToNativeObject<XMLHttpRequestUpload>(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, info.Holder());
if (value->IsNull()) {
- if (imp->onProgressListener()) {
- V8XHREventListener* listener =
- static_cast<V8XHREventListener*>(imp->onProgressListener());
+ if (imp->onprogress()) {
+ V8ObjectEventListener* listener =
+ static_cast<V8ObjectEventListener*>(imp->onprogress());
v8::Local<v8::Object> v8_listener = listener->GetListenerObject();
RemoveHiddenXHRDependency(info.Holder(), v8_listener);
}
// Clear the listener
- imp->setOnProgressListener(0);
+ imp->setOnprogress(0);
} else {
XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest();
V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame());
@@ -742,9 +742,9 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnprogress) {
return;
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(value, false);
+ proxy->FindOrCreateObjectEventListener(value, false);
if (listener) {
- imp->setOnProgressListener(listener);
+ imp->setOnprogress(listener);
CreateHiddenXHRDependency(info.Holder(), value);
}
}
@@ -761,7 +761,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestUploadAddEventListener) {
return v8::Undefined();
RefPtr<EventListener> listener =
- proxy->FindOrCreateXHREventListener(args[1], false);
+ proxy->FindOrCreateObjectEventListener(args[1], false);
if (listener) {
String type = ToWebCoreString(args[0]);
bool useCapture = args[2]->BooleanValue();
@@ -783,7 +783,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestUploadRemoveEventListener) {
return v8::Undefined(); // probably leaked
RefPtr<EventListener> listener =
- proxy->FindXHREventListener(args[1], false);
+ proxy->FindObjectEventListener(args[1], false);
if (listener) {
String type = ToWebCoreString(args[0]);
diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp
index 827323a..9bb904d 100644
--- a/webkit/port/bindings/v8/v8_custom.cpp
+++ b/webkit/port/bindings/v8/v8_custom.cpp
@@ -43,7 +43,6 @@
#include "V8HTMLImageElement.h"
#include "V8HTMLOptionElement.h"
#include "V8Node.h"
-#include "V8NSResolver.h"
#include "V8XPathNSResolver.h"
#include "V8XPathResult.h"
@@ -80,15 +79,17 @@
#include "HTMLFrameSetElement.h"
#include "HTMLIFrameElement.h"
#include "HTMLImageElement.h"
+#include "HTMLInputElement.h"
#include "HTMLNames.h"
#include "HTMLOptionElement.h"
#include "HTMLOptionsCollection.h"
#include "HTMLSelectElement.h"
#include "History.h"
-#include "JSNSResolver.h"
#include "JSXPathNSResolver.h"
#include "KURL.h"
#include "Location.h"
+#include "MessageChannel.h"
+#include "MessagePort.h"
#include "MouseEvent.h"
#include "NodeIterator.h"
#include "Page.h"
@@ -110,6 +111,7 @@
#if ENABLE(SVG)
#include "V8SVGPODTypeWrapper.h"
+#include "SVGElementInstance.h"
#include "SVGException.h"
#include "SVGPathSeg.h"
#endif
@@ -260,6 +262,33 @@ CALLBACK_FUNC_DECL(DOMParserConstructor) {
DOMParser>(args);
}
+// TODO(mbelshe): merge this with the XHR Constructor.
+// The only difference is that this one takes an argument to its
+// create call, the XHR does not.
+CALLBACK_FUNC_DECL(MessageChannelConstructor) {
+ INC_STATS(L"DOM.MessageChannel.Constructor");
+ if (!args.IsConstructCall()) {
+ V8Proxy::ThrowError(V8Proxy::TYPE_ERROR,
+ "DOM object constructor cannot be called as a function.");
+ return v8::Undefined();
+ }
+
+ // Get the document.
+ Frame* frame = V8Proxy::retrieveFrame();
+ if (!frame)
+ return v8::Undefined();
+ Document* document = frame->document();
+
+ // Note: it's OK to let this RefPtr go out of scope because we also call
+ // SetDOMWrapper(), which effectively holds a reference to obj.
+ RefPtr<MessageChannel> obj = MessageChannel::create(document);
+ V8Proxy::SetDOMWrapper(args.Holder(), V8ClassIndex::MESSAGECHANNEL,
+ obj.get());
+ V8Proxy::SetJSWrapperForDOMObject(
+ obj.get(), v8::Persistent<v8::Object>::New(args.Holder()));
+ return args.Holder();
+}
+
CALLBACK_FUNC_DECL(XMLSerializerConstructor) {
INC_STATS(L"DOM.XMLSerializer.Constructor");
@@ -859,19 +888,31 @@ CALLBACK_FUNC_DECL(DOMWindowPostMessage) {
v8::TryCatch try_catch;
String message = ToWebCoreString(args[0]);
- String domain = ToWebCoreString(args[1]);
+ MessagePort* port = NULL;
+ String domain;
+
+ // This function has variable arguments and can either be:
+ // postMessage(message, port, domain);
+ // or
+ // postMessage(message, domain);
+ if (args.Length() > 2) {
+ port = V8Proxy::ToNativeObject<MessagePort>(
+ V8ClassIndex::MESSAGEPORT, args[1]);
+ domain = valueToStringWithNullOrUndefinedCheck(args[2]);
+ } else {
+ domain = valueToStringWithNullOrUndefinedCheck(args[1]);
+ }
if (try_catch.HasCaught()) return v8::Undefined();
- ExceptionCode ec;
- window->postMessage(message, domain, source, ec);
+ ExceptionCode ec = 0;
+ window->postMessage(message, port, domain, source, ec);
if (ec)
V8Proxy::SetDOMException(ec);
return v8::Undefined();
}
-
static bool canShowModalDialogNow(const Frame* frame) {
// A frame can out live its page. See bug 1219613.
if (!frame || !frame->page())
@@ -2324,6 +2365,18 @@ CALLBACK_FUNC_DECL(ConsoleWarn) {
return v8::Undefined();
}
+CALLBACK_FUNC_DECL(ConsoleDirxml) {
+ INC_STATS(L"DOM.Console.dirxml()");
+ V8Proxy::SetDOMException(NOT_SUPPORTED_ERR);
+ return v8::Undefined();
+}
+
+CALLBACK_FUNC_DECL(ConsoleTrace) {
+ INC_STATS(L"DOM.Console.trace()");
+ V8Proxy::SetDOMException(NOT_SUPPORTED_ERR);
+ return v8::Undefined();
+}
+
// Clipboard -------------------------------------------------------------------
@@ -2488,69 +2541,6 @@ static bool AllowSettingFrameSrcToJavascriptUrl(HTMLFrameElementBase* frame,
// Element ---------------------------------------------------------------------
-CALLBACK_FUNC_DECL(ElementQuerySelector) {
- INC_STATS(L"DOM.Element.querySelector()");
- Element* element = V8Proxy::DOMWrapperToNode<Element>(args.Holder());
-
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<Element> result = WTF::getPtr(
- element->querySelector(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODE, WTF::getPtr(result));
-}
-
-CALLBACK_FUNC_DECL(ElementQuerySelectorAll) {
- INC_STATS(L"DOM.Element.querySelectorAll()");
- Element* element = V8Proxy::DOMWrapperToNode<Element>(args.Holder());
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<NodeList> result = WTF::getPtr(
- element->querySelectorAll(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODELIST, WTF::getPtr(result));
-}
-
CALLBACK_FUNC_DECL(ElementSetAttribute) {
INC_STATS(L"DOM.Element.setAttribute()");
Element* imp = V8Proxy::DOMWrapperToNode<Element>(args.Holder());
@@ -2857,142 +2847,19 @@ CALLBACK_FUNC_DECL(DocumentEvaluate) {
inResult = V8Proxy::ToNativeObject<XPathResult>(
V8ClassIndex::XPATHRESULT, args[4]);
}
+
+ v8::TryCatch try_catch;
RefPtr<XPathResult> result =
imp->evaluate(expression, contextNode, resolver, type, inResult, ec);
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
+ if (try_catch.HasCaught() || ec != 0) {
+ if (!try_catch.HasCaught())
+ V8Proxy::SetDOMException(ec);
return v8::Handle<v8::Value>();
}
return V8Proxy::ToV8Object(V8ClassIndex::XPATHRESULT,
static_cast<Peerable*>(result.get()));
}
-CALLBACK_FUNC_DECL(DocumentQuerySelector) {
- INC_STATS(L"DOM.Document.querySelector()");
- Document* document = V8Proxy::DOMWrapperToNode<Document>(args.Holder());
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<Element> result = WTF::getPtr(
- document->querySelector(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODE, WTF::getPtr(result));
-}
-
-CALLBACK_FUNC_DECL(DocumentQuerySelectorAll) {
- INC_STATS(L"DOM.Document.querySelectorAll()");
- Document* document = V8Proxy::DOMWrapperToNode<Document>(args.Holder());
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<NodeList> result = WTF::getPtr(
- document->querySelectorAll(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODELIST, WTF::getPtr(result));
-}
-
-CALLBACK_FUNC_DECL(DocumentFragmentQuerySelector) {
- INC_STATS(L"DOM.DocumentFragment.querySelector()");
- DocumentFragment* fragment =
- V8Proxy::DOMWrapperToNode<DocumentFragment>(args.Holder());
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<Element> result = WTF::getPtr(
- fragment->querySelector(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODE, WTF::getPtr(result));
-}
-
-CALLBACK_FUNC_DECL(DocumentFragmentQuerySelectorAll) {
- INC_STATS(L"DOM.DocumentFragment.querySelectorAll()");
- DocumentFragment* fragment =
- V8Proxy::DOMWrapperToNode<DocumentFragment>(args.Holder());
- ExceptionCode ec = 0;
-
- String selectors = valueToStringWithNullOrUndefinedCheck(args[0]);
-
- NSResolver* resolver = 0;
- if (V8NSResolver::HasInstance(args[1])) {
- resolver = V8Proxy::ToNativeObject<NSResolver>(
- V8ClassIndex::NSRESOLVER, args[1]);
- } else if (args[1]->IsObject()) {
- resolver = new JSNSResolver(args[1]->ToObject());
- } else if (!args[1]->IsNull() && !args[1]->IsUndefined()) {
- V8Proxy::SetDOMException(TYPE_MISMATCH_ERR);
- return v8::Handle<v8::Value>();
- }
- OwnPtr<ExceptionContext> context(new ExceptionContext());
- RefPtr<NodeList> result = WTF::getPtr(
- fragment->querySelectorAll(selectors, resolver, ec, context.get()));
- if (ec != 0) {
- V8Proxy::SetDOMException(ec);
- return v8::Handle<v8::Value>();
- }
- if (context->hadException()) {
- v8::ThrowException(context->exception());
- return v8::Undefined();
- }
- return V8Proxy::ToV8Object(V8ClassIndex::NODELIST, WTF::getPtr(result));
-}
-
// DOMWindow -------------------------------------------------------------------
static bool IsAscii(const String& str) {
@@ -3291,14 +3158,6 @@ CALLBACK_FUNC_DECL(NodeFilterAcceptNode) {
return v8::Undefined();
}
-// NSResolver
-CALLBACK_FUNC_DECL(NSResolverLookupNamespaceURI) {
- INC_STATS(L"DOM.NSResolver.lookupNamespaceURI()");
- V8Proxy::SetDOMException(NOT_SUPPORTED_ERR);
- return v8::Undefined();
-}
-
-
static String EventNameFromAttributeName(const String& name) {
ASSERT(name.startsWith("on"));
String event_type = name.substring(2);
@@ -3345,7 +3204,7 @@ ACCESSOR_SETTER(DOMWindowEventHandler) {
if (value->IsNull()) {
// Clear the event listener
- doc->removeHTMLWindowEventListener(event_type);
+ doc->removeWindowEventListenerForType(event_type);
} else {
V8Proxy* proxy = V8Proxy::retrieve(imp->frame());
if (!proxy)
@@ -3354,7 +3213,7 @@ ACCESSOR_SETTER(DOMWindowEventHandler) {
RefPtr<EventListener> listener =
proxy->FindOrCreateV8EventListener(value, true);
if (listener) {
- doc->setHTMLWindowEventListener(event_type, listener);
+ doc->setWindowEventListenerForType(event_type, listener);
}
}
}
@@ -3378,7 +3237,7 @@ ACCESSOR_GETTER(DOMWindowEventHandler) {
String key = ToWebCoreString(name);
String event_type = EventNameFromAttributeName(key);
- EventListener* listener = doc->getHTMLWindowEventListener(event_type);
+ EventListener* listener = doc->windowEventListenerForType(event_type);
return V8Proxy::EventListenerToV8Object(listener);
}
@@ -3406,10 +3265,10 @@ ACCESSOR_SETTER(ElementEventHandler) {
RefPtr<EventListener> listener =
proxy->FindOrCreateV8EventListener(value, true);
if (listener) {
- node->setHTMLEventListener(event_type, listener);
+ node->setEventListenerForType(event_type, listener);
}
} else {
- node->removeHTMLEventListener(event_type);
+ node->removeEventListenerForType(event_type);
}
}
@@ -3423,7 +3282,7 @@ ACCESSOR_GETTER(ElementEventHandler) {
ASSERT(key.startsWith("on"));
String event_type = key.substring(2);
- EventListener* listener = node->getHTMLEventListener(event_type);
+ EventListener* listener = node->eventListenerForType(event_type);
return V8Proxy::EventListenerToV8Object(listener);
}
@@ -3448,6 +3307,30 @@ ACCESSOR_SETTER(HTMLOptionsCollectionLength) {
V8Proxy::SetDOMException(ec);
}
+ACCESSOR_GETTER(HTMLInputElementSelectionStart) {
+ INC_STATS(L"DOM.HTMLInputElement.selectionStart._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ HTMLInputElement* imp = V8Proxy::DOMWrapperToNode<HTMLInputElement>(holder);
+
+ if (!imp->canHaveSelection())
+ return v8::Undefined();
+
+ int v = imp->selectionStart();
+ return v8::Integer::New(v);
+}
+
+ACCESSOR_GETTER(HTMLInputElementSelectionEnd) {
+ INC_STATS(L"DOM.HTMLInputElement.selectionEnd._get");
+ v8::Handle<v8::Object> holder = info.Holder();
+ HTMLInputElement* imp = V8Proxy::DOMWrapperToNode<HTMLInputElement>(holder);
+
+ if (!imp->canHaveSelection())
+ return v8::Undefined();
+
+ int v = imp->selectionEnd();
+ return v8::Integer::New(v);
+}
+
#if ENABLE(SVG)
ACCESSOR_GETTER(SVGLengthValue) {
@@ -3510,6 +3393,48 @@ CALLBACK_FUNC_DECL(SVGMatrixRotateFromVector) {
return V8Proxy::ToV8Object(V8ClassIndex::SVGMATRIX, peer);
}
+CALLBACK_FUNC_DECL(SVGElementInstanceAddEventListener) {
+ INC_STATS(L"DOM.SVGElementInstance.AddEventListener()");
+ SVGElementInstance* instance =
+ V8Proxy::DOMWrapperToNative<SVGElementInstance>(args.Holder());
+
+ V8Proxy* proxy = V8Proxy::retrieve(instance->associatedFrame());
+ if (!proxy)
+ return v8::Undefined();
+
+ RefPtr<EventListener> listener =
+ proxy->FindOrCreateV8EventListener(args[1], false);
+ if (listener) {
+ String type = ToWebCoreString(args[0]);
+ bool useCapture = args[2]->BooleanValue();
+ instance->addEventListener(type, listener, useCapture);
+ }
+ return v8::Undefined();
+}
+
+CALLBACK_FUNC_DECL(SVGElementInstanceRemoveEventListener) {
+ INC_STATS(L"DOM.SVGElementInstance.RemoveEventListener()");
+ SVGElementInstance* instance =
+ V8Proxy::DOMWrapperToNative<SVGElementInstance>(args.Holder());
+
+ V8Proxy* proxy = V8Proxy::retrieve(instance->associatedFrame());
+ // It is possbile that the owner document of the node is detached
+ // from the frame, return immediately in this case.
+ // See issue 878909
+ if (!proxy)
+ return v8::Undefined();
+
+ RefPtr<EventListener> listener =
+ proxy->FindV8EventListener(args[1], false);
+ if (listener) {
+ String type = ToWebCoreString(args[0]);
+ bool useCapture = args[2]->BooleanValue();
+ instance->removeEventListener(type, listener.get(), useCapture);
+ }
+
+ return v8::Undefined();
+}
+
#endif // ENABLE(SVG)
// --------------- Security Checks -------------------------
diff --git a/webkit/port/bindings/v8/v8_custom.h b/webkit/port/bindings/v8/v8_custom.h
index 302b80a..ef2fb4d 100644
--- a/webkit/port/bindings/v8/v8_custom.h
+++ b/webkit/port/bindings/v8/v8_custom.h
@@ -54,6 +54,11 @@ class V8Custom {
static const int kXMLHttpRequestInternalFieldCount =
kDefaultWrapperInternalFieldCount + 1;
+ static const int kMessagePortRequestCacheIndex =
+ kDefaultWrapperInternalFieldCount + 0;
+ static const int kMessagePortInternalFieldCount =
+ kDefaultWrapperInternalFieldCount + 1;
+
static const int kDOMWindowLocationIndex =
kDefaultWrapperInternalFieldCount + 0;
static const int kDOMWindowNavigatorIndex =
@@ -172,6 +177,10 @@ DECLARE_PROPERTY_ACCESSOR_SETTER(AttrValue)
// Customized setter of HTMLOptionsCollection length
DECLARE_PROPERTY_ACCESSOR_SETTER(HTMLOptionsCollectionLength)
+// Customized accessors for HTMLInputElement
+DECLARE_PROPERTY_ACCESSOR_GETTER(HTMLInputElementSelectionStart)
+DECLARE_PROPERTY_ACCESSOR_GETTER(HTMLInputElementSelectionEnd)
+
DECLARE_NAMED_ACCESS_CHECK(Location)
DECLARE_INDEXED_ACCESS_CHECK(History)
@@ -217,6 +226,7 @@ DECLARE_CALLBACK(DOMWindowShowModalDialog)
DECLARE_CALLBACK(DOMWindowOpen)
DECLARE_CALLBACK(DOMParserConstructor)
+DECLARE_CALLBACK(MessageChannelConstructor)
DECLARE_CALLBACK(XMLHttpRequestConstructor)
DECLARE_CALLBACK(XMLSerializerConstructor)
DECLARE_CALLBACK(XPathEvaluatorConstructor)
@@ -258,6 +268,8 @@ DECLARE_CALLBACK(ConsoleProfile)
DECLARE_CALLBACK(ConsoleProfileEnd)
DECLARE_CALLBACK(ConsoleTimeEnd)
DECLARE_CALLBACK(ConsoleWarn)
+DECLARE_CALLBACK(ConsoleDirxml)
+DECLARE_CALLBACK(ConsoleTrace)
// Implementation of Clipboard attributes and methods.
DECLARE_PROPERTY_ACCESSOR_GETTER(ClipboardTypes)
@@ -360,8 +372,12 @@ DECLARE_NAMED_PROPERTY_GETTER(HTMLCollection)
DECLARE_INDEXED_PROPERTY_GETTER(CanvasPixelArray)
DECLARE_INDEXED_PROPERTY_SETTER(CanvasPixelArray)
-// NSResolver
-DECLARE_CALLBACK(NSResolverLookupNamespaceURI)
+// MessagePort
+DECLARE_PROPERTY_ACCESSOR(MessagePortOnmessage)
+DECLARE_PROPERTY_ACCESSOR(MessagePortOnclose)
+DECLARE_CALLBACK(MessagePortStartConversation)
+DECLARE_CALLBACK(MessagePortAddEventListener)
+DECLARE_CALLBACK(MessagePortRemoveEventListener)
// SVG custom properties and callbacks
#if ENABLE(SVG)
@@ -369,6 +385,8 @@ DECLARE_PROPERTY_ACCESSOR_GETTER(SVGLengthValue)
DECLARE_CALLBACK(SVGLengthConvertToSpecifiedUnits)
DECLARE_CALLBACK(SVGMatrixInverse)
DECLARE_CALLBACK(SVGMatrixRotateFromVector)
+DECLARE_CALLBACK(SVGElementInstanceAddEventListener)
+DECLARE_CALLBACK(SVGElementInstanceRemoveEventListener)
#endif
#undef DECLARE_INDEXED_ACCESS_CHECK
diff --git a/webkit/port/bindings/v8/v8_events.cpp b/webkit/port/bindings/v8/v8_events.cpp
index dd11bb2..bdd7e8a 100644
--- a/webkit/port/bindings/v8/v8_events.cpp
+++ b/webkit/port/bindings/v8/v8_events.cpp
@@ -61,8 +61,8 @@ V8AbstractEventListener::V8AbstractEventListener(Frame* frame, bool html)
void V8AbstractEventListener::handleEvent(Event* event, bool isWindowEvent) {
// EventListener could be disconnected from the frame.
- ASSERT(m_frame);
- if (!m_frame) return;
+ if (!m_frame)
+ return;
// The callback function on XMLHttpRequest can clear the event listener
// and destroys 'this' object. Keep a local reference of it.
@@ -72,7 +72,8 @@ void V8AbstractEventListener::handleEvent(Event* event, bool isWindowEvent) {
v8::HandleScope handle_scope;
v8::Handle<v8::Context> context = V8Proxy::GetContext(m_frame);
- if (context.IsEmpty()) return;
+ if (context.IsEmpty())
+ return;
v8::Context::Scope scope(context);
// m_frame can removed by the callback function,
@@ -227,6 +228,11 @@ v8::Local<v8::Object> V8EventListener::GetThisObject(Event* event,
v8::Handle<v8::Value> value = V8Proxy::ToV8Object(
V8ClassIndex::XMLHTTPREQUESTUPLOAD, target->toXMLHttpRequestUpload());
return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value));
+
+ } else if (target->toMessagePort()) {
+ v8::Handle<v8::Value> value = V8Proxy::ToV8Object(
+ V8ClassIndex::MESSAGEPORT, target->toMessagePort());
+ return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value));
} else {
ASSERT(false);
@@ -237,16 +243,16 @@ v8::Local<v8::Object> V8EventListener::GetThisObject(Event* event,
// ------- V 8 X H R E v e n t L i s t e n e r -----------------
-static void WeakXHRListenerCallback(v8::Persistent<v8::Value> obj,
+static void WeakObjectEventListenerCallback(v8::Persistent<v8::Value> obj,
void* para) {
- V8XHREventListener* listener = static_cast<V8XHREventListener*>(para);
+ V8ObjectEventListener* listener = static_cast<V8ObjectEventListener*>(para);
// Remove the wrapper
Frame* frame = listener->frame();
if (frame) {
V8Proxy* proxy = V8Proxy::retrieve(frame);
if (proxy)
- proxy->RemoveXHREventListener(listener);
+ proxy->RemoveObjectEventListener(listener);
// Because the listener is no longer in the list, it must
// be disconnected from the frame to avoid dangling frame pointer
@@ -259,21 +265,21 @@ static void WeakXHRListenerCallback(v8::Persistent<v8::Value> obj,
}
-V8XHREventListener::V8XHREventListener(Frame* frame,
+V8ObjectEventListener::V8ObjectEventListener(Frame* frame,
v8::Local<v8::Object> listener,
bool html)
: V8EventListener(frame, listener, html) {
// make m_listener weak.
- m_listener.MakeWeak(this, WeakXHRListenerCallback);
+ m_listener.MakeWeak(this, WeakObjectEventListenerCallback);
}
-V8XHREventListener::~V8XHREventListener() {
+V8ObjectEventListener::~V8ObjectEventListener() {
if (m_frame) {
ASSERT(!m_listener.IsEmpty());
V8Proxy* proxy = V8Proxy::retrieve(m_frame);
if (proxy)
- proxy->RemoveXHREventListener(this);
+ proxy->RemoveObjectEventListener(this);
}
DisposeListenerObject();
diff --git a/webkit/port/bindings/v8/v8_events.h b/webkit/port/bindings/v8/v8_events.h
index 72e077a..5ff5e96 100644
--- a/webkit/port/bindings/v8/v8_events.h
+++ b/webkit/port/bindings/v8/v8_events.h
@@ -72,7 +72,7 @@ class V8AbstractEventListener : public EventListener {
int m_columnNumber;
friend class V8EventListener;
- friend class V8XHREventListener;
+ friend class V8ObjectEventListener;
friend class V8LazyEventListener;
};
@@ -102,16 +102,16 @@ class V8EventListener : public V8AbstractEventListener {
};
-// V8XHREventListener is a special listener wrapper for XMLHttpRequest object.
-// It keeps JS listener week.
-class V8XHREventListener : public V8EventListener {
+// V8ObjectEventListener is a special listener wrapper for objects not
+// in the DOM. It keeps the JS listener as a weak pointer.
+class V8ObjectEventListener : public V8EventListener {
public:
- static PassRefPtr<V8XHREventListener> create(Frame* frame,
+ static PassRefPtr<V8ObjectEventListener> create(Frame* frame,
v8::Local<v8::Object> listener, bool html) {
- return adoptRef(new V8XHREventListener(frame, listener, html));
+ return adoptRef(new V8ObjectEventListener(frame, listener, html));
}
- V8XHREventListener(Frame* frame, v8::Local<v8::Object> listener, bool html);
- virtual ~V8XHREventListener();
+ V8ObjectEventListener(Frame* frame, v8::Local<v8::Object> listener, bool html);
+ virtual ~V8ObjectEventListener();
};
diff --git a/webkit/port/bindings/v8/v8_index.cpp b/webkit/port/bindings/v8/v8_index.cpp
index 902ebfb..d785d73 100644
--- a/webkit/port/bindings/v8/v8_index.cpp
+++ b/webkit/port/bindings/v8/v8_index.cpp
@@ -102,7 +102,6 @@
#include "V8HTMLIFrameElement.h"
#include "V8HTMLImageElement.h"
#include "V8HTMLInputElement.h"
-#include "V8HTMLSelectionInputElement.h"
#include "V8HTMLIsIndexElement.h"
#include "V8HTMLLabelElement.h"
#include "V8HTMLLegendElement.h"
@@ -135,13 +134,14 @@
#include "V8ImageData.h"
#include "V8InspectorController.h"
#include "V8MediaList.h"
+#include "V8MessageChannel.h"
#include "V8MessageEvent.h"
+#include "V8MessagePort.h"
#include "V8NamedNodeMap.h"
#include "V8Node.h"
#include "V8NodeList.h"
#include "V8NodeFilter.h"
#include "V8Notation.h"
-#include "V8NSResolver.h"
#include "V8ProcessingInstruction.h"
#include "V8ProgressEvent.h"
#include "V8StyleSheet.h"
diff --git a/webkit/port/bindings/v8/v8_index.h b/webkit/port/bindings/v8/v8_index.h
index 109f702..5ba923d 100644
--- a/webkit/port/bindings/v8/v8_index.h
+++ b/webkit/port/bindings/v8/v8_index.h
@@ -61,7 +61,6 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
V(HTMLIFRAMEELEMENT, HTMLIFrameElement) \
V(HTMLIMAGEELEMENT, HTMLImageElement) \
V(HTMLINPUTELEMENT, HTMLInputElement) \
- V(HTMLSELECTIONINPUTELEMENT, HTMLSelectionInputElement) \
V(HTMLISINDEXELEMENT, HTMLIsIndexElement) \
V(HTMLLABELELEMENT, HTMLLabelElement) \
V(HTMLLEGENDELEMENT, HTMLLegendElement) \
@@ -251,7 +250,9 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
V(KEYBOARDEVENT, KeyboardEvent) \
V(LOCATION, Location) \
V(MEDIALIST, MediaList) \
+ V(MESSAGECHANNEL, MessageChannel) \
V(MESSAGEEVENT, MessageEvent) \
+ V(MESSAGEPORT, MessagePort) \
V(MIMETYPE, MimeType) \
V(MIMETYPEARRAY, MimeTypeArray) \
V(MOUSEEVENT, MouseEvent) \
@@ -261,7 +262,6 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
V(NODEFILTER, NodeFilter) \
V(NODEITERATOR, NodeIterator) \
V(NODELIST, NodeList) \
- V(NSRESOLVER, NSResolver) \
V(OVERFLOWEVENT, OverflowEvent) \
V(PLUGIN, Plugin) \
V(PLUGINARRAY, PluginArray) \
diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp
index f21197b..4e84ae1 100644
--- a/webkit/port/bindings/v8/v8_proxy.cpp
+++ b/webkit/port/bindings/v8/v8_proxy.cpp
@@ -903,44 +903,48 @@ PassRefPtr<V8EventListener> V8Proxy::FindOrCreateV8EventListener(v8::Local<v8::V
}
-// XMLHttpRequest(XHR) event listeners are different from listeners
-// on DOM nodes. A XHR event listener wrapper only hold a weak reference
-// to the JS function. A strong reference can create a cycle.
+// Object event listeners (such as XmlHttpRequest and MessagePort) are
+// different from listeners on DOM nodes. An object event listener wrapper
+// only holds a weak reference to the JS function. A strong reference can
+// create a cycle.
//
-// The lifetime of a XHR object is bounded by the life time of its JS_XHR
-// object. So we can create a hidden reference from JS_XHR to JS function.
+// The lifetime of these objects is bounded by the life time of its JS
+// wrapper. So we can create a hidden reference from the JS wrapper to
+// to its JS function.
//
// (peer)
-// XHR <---------- JS_XHR
+// XHR <---------- JS_wrapper
// | (hidden) : ^
// V V : (may reachable by closure)
// V8_listener --------> JS_function
// (weak) <-- may create a cycle if it is strong
//
// The persistent reference is made weak in the constructor
-// of V8XHREventListener.
+// of V8ObjectEventListener.
-PassRefPtr<V8EventListener> V8Proxy::FindXHREventListener(
+PassRefPtr<V8EventListener> V8Proxy::FindObjectEventListener(
v8::Local<v8::Value> listener, bool html)
{
return FindEventListenerInList(m_xhr_listeners, listener, html);
}
-PassRefPtr<V8EventListener> V8Proxy::FindOrCreateXHREventListener(
+PassRefPtr<V8EventListener> V8Proxy::FindOrCreateObjectEventListener(
v8::Local<v8::Value> obj, bool html)
{
ASSERT(v8::Context::InContext());
- if (!obj->IsObject()) return 0;
+ if (!obj->IsObject())
+ return 0;
V8EventListener* wrapper =
FindEventListenerInList(m_xhr_listeners, obj, html);
- if (wrapper) return wrapper;
+ if (wrapper)
+ return wrapper;
// Create a new one, and add to cache.
RefPtr<V8EventListener> new_listener =
- V8XHREventListener::create(m_frame, v8::Local<v8::Object>::Cast(obj), html);
+ V8ObjectEventListener::create(m_frame, v8::Local<v8::Object>::Cast(obj), html);
m_xhr_listeners.push_back(new_listener.get());
return new_listener.release();
@@ -967,7 +971,7 @@ void V8Proxy::RemoveV8EventListener(V8EventListener* listener)
}
-void V8Proxy::RemoveXHREventListener(V8XHREventListener* listener)
+void V8Proxy::RemoveObjectEventListener(V8ObjectEventListener* listener)
{
RemoveEventListenerFromList(m_xhr_listeners, listener);
}
@@ -1120,7 +1124,8 @@ v8::Local<v8::Value> V8Proxy::CallFunction(v8::Handle<v8::Function> function,
// of recursion that stems from calling functions. This is in
// contrast to the script evaluations.
v8::Local<v8::Value> result;
- { ConsoleMessageScope scope;
+ {
+ ConsoleMessageScope scope;
// Evaluating the JavaScript could cause the frame to be deallocated,
// so we start the keep alive timer here.
@@ -1145,7 +1150,8 @@ v8::Persistent<v8::FunctionTemplate> V8Proxy::GetTemplate(
{
v8::Persistent<v8::FunctionTemplate>* cache_cell =
V8ClassIndex::GetCache(type);
- if (!(*cache_cell).IsEmpty()) return *cache_cell;
+ if (!(*cache_cell).IsEmpty())
+ return *cache_cell;
// not found
FunctionTemplateFactory factory = V8ClassIndex::GetFactory(type);
@@ -1377,6 +1383,18 @@ v8::Persistent<v8::FunctionTemplate> V8Proxy::GetTemplate(
break;
}
+ case V8ClassIndex::MESSAGECHANNEL:
+ desc->SetCallHandler(USE_CALLBACK(MessageChannelConstructor));
+ break;
+ case V8ClassIndex::MESSAGEPORT: {
+ // Reserve one more internal field for keeping event listeners.
+ v8::Local<v8::ObjectTemplate> instance_template =
+ desc->InstanceTemplate();
+ instance_template->SetInternalFieldCount(
+ V8Custom::kMessagePortInternalFieldCount);
+ break;
+ }
+
// DOMParser, XMLSerializer, and XMLHttpRequest objects are created from
// JS world, but we setup the constructor function lazily in
// WindowNamedPropertyHandler::get.
@@ -1388,12 +1406,12 @@ v8::Persistent<v8::FunctionTemplate> V8Proxy::GetTemplate(
break;
case V8ClassIndex::XMLHTTPREQUEST: {
// Reserve one more internal field for keeping event listeners.
- v8::Local<v8::ObjectTemplate> instance_template =
- desc->InstanceTemplate();
- instance_template->SetInternalFieldCount(
- V8Custom::kXMLHttpRequestInternalFieldCount);
- desc->SetCallHandler(USE_CALLBACK(XMLHttpRequestConstructor));
- break;
+ v8::Local<v8::ObjectTemplate> instance_template =
+ desc->InstanceTemplate();
+ instance_template->SetInternalFieldCount(
+ V8Custom::kXMLHttpRequestInternalFieldCount);
+ desc->SetCallHandler(USE_CALLBACK(XMLHttpRequestConstructor));
+ break;
}
case V8ClassIndex::XMLHTTPREQUESTUPLOAD: {
// Reserve one more internal field for keeping event listeners.
@@ -1702,7 +1720,11 @@ static void GenerateSecurityToken(v8::Local<v8::Context> context)
// Ask the document's SecurityOrigin to generate a security token.
// If two tokens are equal, then the SecurityOrigins canAccess each other.
// If two tokens are not equal, then we have to call canAccess.
- String token = document->securityOrigin()->securityToken();
+ // Note: we can't use the HTTPOrigin if it was set from the DOM.
+ SecurityOrigin* origin = document->securityOrigin();
+ String token;
+ if (!origin->domainWasSetInDOM())
+ token = document->securityOrigin()->toString();
// An empty token means we always have to call canAccess. In this case, we
// use the global object as the security token to avoid calling canAccess
@@ -2120,13 +2142,6 @@ v8::Local<v8::Object> V8Proxy::InstantiateV8Object(
desc_type = V8ClassIndex::UNDETECTABLEHTMLCOLLECTION;
}
- // Special case for HTMLInputElements that support selection.
- if (desc_type == V8ClassIndex::HTMLINPUTELEMENT) {
- HTMLInputElement* element = static_cast<HTMLInputElement*>(imp);
- if (element->canHaveSelection())
- desc_type = V8ClassIndex::HTMLSELECTIONINPUTELEMENT;
- }
-
v8::Persistent<v8::FunctionTemplate> desc = GetTemplate(desc_type);
v8::Local<v8::Function> function = desc->GetFunction();
v8::Local<v8::Object> instance = SafeAllocation::NewInstance(function);
diff --git a/webkit/port/bindings/v8/v8_proxy.h b/webkit/port/bindings/v8/v8_proxy.h
index f1b558f..5c2c246 100644
--- a/webkit/port/bindings/v8/v8_proxy.h
+++ b/webkit/port/bindings/v8/v8_proxy.h
@@ -70,7 +70,7 @@ class SVGElementInstance;
#endif
class V8EventListener;
-class V8XHREventListener;
+class V8ObjectEventListener;
typedef std::list<V8EventListener*> V8EventListenerList;
// TODO(fqian): use standard logging facilities in WebCore.
@@ -197,13 +197,13 @@ class V8Proxy {
PassRefPtr<V8EventListener> FindOrCreateV8EventListener(v8::Local<v8::Value> listener,
bool html);
- PassRefPtr<V8EventListener> FindXHREventListener(v8::Local<v8::Value> listener,
+ PassRefPtr<V8EventListener> FindObjectEventListener(v8::Local<v8::Value> listener,
bool html);
- PassRefPtr<V8EventListener> FindOrCreateXHREventListener(v8::Local<v8::Value> listener,
+ PassRefPtr<V8EventListener> FindOrCreateObjectEventListener(v8::Local<v8::Value> listener,
bool html);
void RemoveV8EventListener(V8EventListener* listener);
- void RemoveXHREventListener(V8XHREventListener* listener);
+ void RemoveObjectEventListener(V8ObjectEventListener* listener);
// Protect/Unprotect JS wrappers of a DOM object.
static void GCProtect(Peerable* dom_object);
diff --git a/webkit/port/bindings/v8/v8_utility.h b/webkit/port/bindings/v8/v8_utility.h
index 5e7df97..2dd52bf 100644
--- a/webkit/port/bindings/v8/v8_utility.h
+++ b/webkit/port/bindings/v8/v8_utility.h
@@ -33,7 +33,8 @@ class SafeAllocation {
v8::Local<v8::Object> SafeAllocation::NewInstance(
v8::Handle<v8::Function> fun) {
- if (fun.IsEmpty()) return v8::Local<v8::Object>();
+ if (fun.IsEmpty())
+ return v8::Local<v8::Object>();
AllowAllocation allow;
return fun->NewInstance();
}
diff --git a/webkit/port/bindings/v8/v8_vectornodelist.cpp b/webkit/port/bindings/v8/v8_vectornodelist.cpp
index 7e19cf8..f9341aa 100644
--- a/webkit/port/bindings/v8/v8_vectornodelist.cpp
+++ b/webkit/port/bindings/v8/v8_vectornodelist.cpp
@@ -30,6 +30,7 @@
#include "config.h"
#include "v8_vectornodelist.h"
+#include "Element.h"
#include "NamedAttrMap.h" // Node::attributes
namespace WebCore {
diff --git a/webkit/port/dom/Document.idl b/webkit/port/dom/Document.idl
index fb8ba94..83c80b8 100644
--- a/webkit/port/dom/Document.idl
+++ b/webkit/port/dom/Document.idl
@@ -237,18 +237,10 @@ module core {
NodeList getElementsByClassName(in DOMString tagname);
// NodeSelector - Selector API
-#if defined(LANGUAGE_JAVASCRIPT)
- [Custom] Element querySelector(in [ConvertUndefinedOrNullToNullString] DOMString selectors, in NSResolver resolver)
- raises(DOMException);
- [Custom] NodeList querySelectorAll(in [ConvertUndefinedOrNullToNullString] DOMString selectors, in NSResolver resolver)
- raises(DOMException);
-#else
- // FIXME: add support for NSResolver in languages other than JS
Element querySelector(in [ConvertUndefinedOrNullToNullString] DOMString selectors)
raises(DOMException);
NodeList querySelectorAll(in [ConvertUndefinedOrNullToNullString] DOMString selectors)
raises(DOMException);
-#endif
};
diff --git a/webkit/port/dom/NSResolver.idl b/webkit/port/dom/NSResolver.idl
deleted file mode 100644
index 5927331..0000000
--- a/webkit/port/dom/NSResolver.idl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-module core {
-
- interface NSResolver {
- [Custom] DOMString lookupNamespaceURI(in DOMString prefix);
- };
-
-}
diff --git a/webkit/port/html/HTMLSelectionInputElement.idl b/webkit/port/html/HTMLSelectionInputElement.idl
deleted file mode 100644
index ba6e611..0000000
--- a/webkit/port/html/HTMLSelectionInputElement.idl
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this
-// source code is governed by a BSD-style license that can be found in the
-// LICENSE file.
-
-module html {
-
- // HTMLSelectionInputElements are the HTMLInputElements that support selection.
- interface HTMLSelectionInputElement : HTMLInputElement {
- attribute long selectionStart;
- attribute long selectionEnd;
- void setSelectionRange(in long start, in long end);
- };
-
-}
diff --git a/webkit/port/page/DOMWindow.idl b/webkit/port/page/DOMWindow.idl
index e6e0c31..c6f51f3 100644
--- a/webkit/port/page/DOMWindow.idl
+++ b/webkit/port/page/DOMWindow.idl
@@ -314,6 +314,7 @@ module window {
// KJS adds these to the window object in kjs_window.cpp.
attribute XMLHttpRequestConstructor XMLHttpRequest;
attribute XSLTProcessorConstructor XSLTProcessor;
+ attribute MessageChannelConstructor MessageChannel;
#endif
#if ENABLE_DOM_STORAGE
diff --git a/webkit/port/page/chromium/ChromeClientChromium.h b/webkit/port/page/chromium/ChromeClientChromium.h
index 2e04c39..66e08b0 100644
--- a/webkit/port/page/chromium/ChromeClientChromium.h
+++ b/webkit/port/page/chromium/ChromeClientChromium.h
@@ -10,10 +10,13 @@
#include "ChromeClient.h"
namespace WebCore {
-
+ class Cursor;
class FileChooser;
class Frame;
+ class FramelessScrollView;
+ class IntRect;
class String;
+ class Widget;
class ChromeClientChromium : public ChromeClient {
public:
@@ -21,9 +24,12 @@ namespace WebCore {
virtual void runFileChooser(const String& defaultFileName,
PassRefPtr<FileChooser> file_chooser) = 0;
- // Given a rect in main frame coordinates, returns a new rect relative
- // to the screen.
- virtual IntRect windowToScreen(const IntRect& rect) = 0;
+ // Notifies the client of a new popup widget. The client should place
+ // and size the widget with the given bounds, relative to the screen.
+ virtual void popupOpened(FramelessScrollView* popupView, const IntRect& bounds) = 0;
+
+ // Set the current cursor.
+ virtual void setCursor(const Cursor& cursor) = 0;
};
}
diff --git a/webkit/port/page/chromium/EventHandlerChromium.cpp b/webkit/port/page/chromium/EventHandlerChromium.cpp
index ef4d732..d7082e5 100644
--- a/webkit/port/page/chromium/EventHandlerChromium.cpp
+++ b/webkit/port/page/chromium/EventHandlerChromium.cpp
@@ -37,7 +37,6 @@
#include "MouseEventWithHitTestResults.h"
#include "Page.h"
#include "PlatformKeyboardEvent.h"
-#include "PlatformScrollBar.h"
#include "PlatformWheelEvent.h"
#include "RenderWidget.h"
#include "SelectionController.h"
@@ -104,13 +103,6 @@ bool EventHandler::passWheelEventToWidget(PlatformWheelEvent& wheelEvent, Widget
return static_cast<FrameView*>(widget)->frame()->eventHandler()->handleWheelEvent(wheelEvent);
}
-bool EventHandler::passMousePressEventToScrollbar(MouseEventWithHitTestResults& mev, PlatformScrollbar* scrollbar)
-{
- if (!scrollbar || !scrollbar->isEnabled())
- return false;
- return scrollbar->handleMousePressEvent(mev.event());
-}
-
bool EventHandler::passWidgetMouseDownEventToWidget(const MouseEventWithHitTestResults& event)
{
// Figure out which view to send the event to.
diff --git a/webkit/port/page/inspector/InspectorController.cpp b/webkit/port/page/inspector/InspectorController.cpp
index 901a97d..f18a6bb 100644
--- a/webkit/port/page/inspector/InspectorController.cpp
+++ b/webkit/port/page/inspector/InspectorController.cpp
@@ -54,6 +54,7 @@
#include "FrameTree.h"
#include "FrameView.h"
#include "GraphicsContext.h"
+#include "HitTestResult.h"
#include "HTMLFrameOwnerElement.h"
#include "InspectorClient.h"
#include "v8_proxy.h"
@@ -622,6 +623,10 @@ InspectorController::InspectorController(Page* page, InspectorClient* client)
, m_showAfterVisible(ElementsPanel)
, m_nextIdentifier(-2)
, m_groupLevel(0)
+ , m_searchingForNode(false)
+ , m_currentUserInitiatedProfileNumber(-1)
+ , m_nextUserInitiatedProfileNumber(1)
+ , m_previousMessage(0)
{
ASSERT_ARG(page, page);
ASSERT_ARG(client, client);
@@ -893,6 +898,41 @@ void InspectorController::setAttachedWindowHeight(unsigned height)
notImplemented();
}
+void InspectorController::toggleSearchForNodeInPage()
+{
+ if (!enabled())
+ return;
+
+ m_searchingForNode = !m_searchingForNode;
+ if (!m_searchingForNode)
+ hideHighlight();
+}
+
+void InspectorController::mouseDidMoveOverElement(const HitTestResult& result, unsigned modifierFlags)
+{
+ if (!enabled() || !m_searchingForNode)
+ return;
+
+ Node* node = result.innerNode();
+ if (node)
+ highlight(node);
+}
+
+void InspectorController::handleMousePressOnNode(Node* node)
+{
+ if (!enabled())
+ return;
+
+ ASSERT(m_searchingForNode);
+ ASSERT(node);
+ if (!node)
+ return;
+
+ // inspect() will implicitly call ElementsPanel's focusedNodeChanged() and the hover feedback will be stopped there.
+ inspect(node);
+}
+
+
void InspectorController::windowScriptObjectAvailable()
{
if (!m_page || !enabled())
diff --git a/webkit/port/platform/GKURL_unittest.cpp b/webkit/port/platform/GKURL_unittest.cpp
index 4286d0a..4da8c94 100644
--- a/webkit/port/platform/GKURL_unittest.cpp
+++ b/webkit/port/platform/GKURL_unittest.cpp
@@ -587,4 +587,4 @@ TEST(GKURL, Offsets) {
EXPECT_TRUE(kurl3.pathStart() == gurl3.pathStart());
EXPECT_TRUE(kurl3.pathEnd() == gurl3.pathEnd());
EXPECT_TRUE(kurl3.pathAfterLastSlash() == gurl3.pathAfterLastSlash());
-}
+} \ No newline at end of file
diff --git a/webkit/port/platform/chromium/FileChooserChromium.cpp b/webkit/port/platform/chromium/FileChooserChromium.cpp
index 6d38b2db..c70ff69 100644
--- a/webkit/port/platform/chromium/FileChooserChromium.cpp
+++ b/webkit/port/platform/chromium/FileChooserChromium.cpp
@@ -24,18 +24,13 @@
*/
#include "config.h"
-#if PLATFORM(WIN_OS)
-#include <shlwapi.h>
-#endif
#pragma warning(push, 0)
#include "ChromeClientChromium.h"
#include "Document.h"
#include "Frame.h"
#include "FileChooser.h"
-#if PLATFORM(DARWIN)
-#include "FileChooserChromiumMac.h"
-#endif
+#include "FileSystem.h"
#include "LocalizedStrings.h"
#include "NotImplemented.h"
#include "Page.h"
@@ -65,19 +60,8 @@ String FileChooser::basenameForWidth(const Font& font, int width) const
String string;
if (m_filename.isEmpty())
string = fileButtonNoFileSelectedLabel();
- else {
-#if PLATFORM(WIN_OS)
- String tmpFilename = m_filename;
- // Apple's code has a LPTSTR here, which will compile and run, but is wrong.
- wchar_t* basename = PathFindFileName(tmpFilename.charactersWithNullTermination());
- string = String(basename);
-#elif PLATFORM(DARWIN)
- string = FileChooserGetBaseNameFromPath(m_filename);
-#else
- notImplemented();
- string = "fixme";
-#endif
- }
+ else
+ string = pathGetFileName(m_filename);
return StringTruncator::centerTruncate(string, static_cast<float>(width), font, false);
}
diff --git a/webkit/port/platform/chromium/FileChooserChromiumMac.mm b/webkit/port/platform/chromium/FileChooserChromiumMac.mm
deleted file mode 100644
index 389bb8d..0000000
--- a/webkit/port/platform/chromium/FileChooserChromiumMac.mm
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. 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 "FileChooserChromiumMac.h"
-
-#import <Foundation/NSFileManager.h>
-#include "PlatformString.h"
-
-namespace WebCore {
-
-String FileChooserGetBaseNameFromPath(const String &path) {
- // TODO(playmobil): Perhaps in the future we can unify this with the other
- // platforms by using the FilePath class in base.
- return [[NSFileManager defaultManager] displayNameAtPath:path];
-}
-
-}
diff --git a/webkit/pending/DNS.h b/webkit/port/platform/chromium/FileSystemChromium.cpp
index 3a32ce7..102fde9 100644
--- a/webkit/pending/DNS.h
+++ b/webkit/port/platform/chromium/FileSystemChromium.cpp
@@ -1,36 +1,64 @@
-/*
- * Copyright (C) 2008 Collin Jackson <collinj@webkit.org>
- *
- * 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 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 DNS_h
-#define DNS_h
-
-namespace WebCore {
-
- class String;
-
- void prefetchDNS(const String& hostname);
-}
-
-#endif
+/*
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "NotImplemented.h"
+#include "PlatformString.h"
+
+
+namespace WebCore {
+
+bool deleteFile(const String&)
+{
+ notImplemented();
+ return false;
+}
+
+bool deleteEmptyDirectory(const String&)
+{
+ notImplemented();
+ return false;
+}
+
+bool getFileSize(const String&, long long& result)
+{
+ notImplemented();
+ return false;
+}
+
+bool getFileModificationTime(const String&, time_t& result)
+{
+ notImplemented();
+ return false;
+}
+
+String directoryName(const String&)
+{
+ notImplemented();
+ return String();
+}
+
+} // namespace WebCore
diff --git a/webkit/port/bindings/v8/JSNSResolver.h b/webkit/port/platform/chromium/FileSystemChromiumMac.mm
index 84bd072..152bee2 100644
--- a/webkit/port/bindings/v8/JSNSResolver.h
+++ b/webkit/port/platform/chromium/FileSystemChromiumMac.mm
@@ -27,32 +27,17 @@
// (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 "FileSystem.h"
-// The wrapper for a JS object that implements NSResolver interface.
-
-#ifndef JSNSResolver_h
-#define JSNSResolver_h
-
-#include <v8.h>
-#include <wtf/RefCounted.h>
-#include "NSResolver.h"
+#import <Foundation/NSFileManager.h>
+#include "PlatformString.h"
namespace WebCore {
-class ExceptionContext;
-class String;
-
-class JSNSResolver : public NSResolver {
-public:
- JSNSResolver(v8::Handle<v8::Object>);
- virtual ~JSNSResolver();
-
- virtual String lookupNamespaceURI(ExceptionContext*, const String&);
-
-private:
- v8::Handle<v8::Object> m_resolver; // Handle to resolver object.
-};
-
+String pathGetFileName(const String& path)
+{
+ return [[NSFileManager defaultManager] displayNameAtPath:path];
}
-#endif // !defined(JSNSResolver_h)
+}
diff --git a/webkit/port/platform/chromium/FileChooserChromiumMac.h b/webkit/port/platform/chromium/FileSystemChromiumWin.cpp
index 5b546fc..0c91231 100644
--- a/webkit/port/platform/chromium/FileChooserChromiumMac.h
+++ b/webkit/port/platform/chromium/FileSystemChromiumWin.cpp
@@ -1,19 +1,20 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-//
+// Copyright (c) 2008, 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
+//
+// * 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
+// * 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
+// * 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
@@ -26,16 +27,17 @@
// (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 FileChooserChromiumMac_h__
-#define FileChooserChromiumMac_h__
+#include "config.h"
+#include "FileSystem.h"
+
+#include <windows.h>
+#include <shlwapi.h>
namespace WebCore {
-
-class String;
-// Returns the basename of a path.
-String FileChooserGetBaseNameFromPath(const String &path);
-
+String pathGetFileName(const String& path)
+{
+ return String(PathFindFileName(String(path).charactersWithNullTermination()));
}
-#endif
+} \ No newline at end of file
diff --git a/webkit/port/platform/chromium/FramelessScrollView.cpp b/webkit/port/platform/chromium/FramelessScrollView.cpp
index 51c9d52..60d4375 100644
--- a/webkit/port/platform/chromium/FramelessScrollView.cpp
+++ b/webkit/port/platform/chromium/FramelessScrollView.cpp
@@ -28,14 +28,59 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "config.h"
-
#include "FramelessScrollView.h"
+#include "FramelessScrollViewClient.h"
+
namespace WebCore {
-IntRect FramelessScrollView::windowClipRect() const
+FramelessScrollView::~FramelessScrollView()
+{
+ // Remove native scrollbars now before we lose the connection to the HostWindow.
+ setHasHorizontalScrollbar(false);
+ setHasVerticalScrollbar(false);
+}
+
+void FramelessScrollView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
+{
+ // Add in our offset within the ScrollView.
+ IntRect dirtyRect = rect;
+ dirtyRect.move(scrollbar->x(), scrollbar->y());
+ invalidateRect(dirtyRect);
+}
+
+bool FramelessScrollView::isActive() const
+{
+ // FIXME
+ return true;
+}
+
+void FramelessScrollView::invalidateRect(const IntRect& rect)
+{
+ if (HostWindow* h = hostWindow())
+ h->repaint(contentsToWindow(rect), true);
+}
+
+HostWindow* FramelessScrollView::hostWindow() const
+{
+ return const_cast<FramelessScrollViewClient*>(m_client);
+}
+
+IntRect FramelessScrollView::windowClipRect(bool clipToContents) const
+{
+ return contentsToWindow(visibleContentRect(!clipToContents));
+}
+
+void FramelessScrollView::paintContents(GraphicsContext*, const IntRect& damageRect)
+{
+}
+
+void FramelessScrollView::contentsResized()
+{
+}
+
+void FramelessScrollView::visibleContentsResized()
{
- return convertToContainingWindow(IntRect(0, 0, width(), height()));
}
}
diff --git a/webkit/port/platform/chromium/FramelessScrollView.h b/webkit/port/platform/chromium/FramelessScrollView.h
index a71fcfb..dd940a0 100644
--- a/webkit/port/platform/chromium/FramelessScrollView.h
+++ b/webkit/port/platform/chromium/FramelessScrollView.h
@@ -5,34 +5,55 @@
#ifndef FramelessScrollView_h
#define FramelessScrollView_h
-#include "FrameView.h"
+#include "ScrollView.h"
namespace WebCore {
-
+ class FramelessScrollViewClient;
class PlatformKeyboardEvent;
+ class PlatformMouseEvent;
+ class PlatformWheelEvent;
// A FramelessScrollView is a ScrollView that can be used to render custom
- // content, which does not have an associated Frame. This extends from
- // FrameView because much of WebCore unfortunately assumes that a
- // ScrollView is a FrameView.
+ // content, which does not have an associated Frame.
//
// TODO: It may be better to just develop a custom subclass of Widget that
// can have scroll bars for this instead of trying to reuse ScrollView.
//
- class FramelessScrollView : public FrameView {
+ class FramelessScrollView : public ScrollView {
public:
- FramelessScrollView() : FrameView(0) {}
+ FramelessScrollView() : m_client(0) {}
+ ~FramelessScrollView();
- virtual IntRect windowClipRect() const;
+ FramelessScrollViewClient* client() const { return m_client; }
+ void setClient(FramelessScrollViewClient* client) { m_client = client; }
- // Event handlers
+ // Event handlers that subclasses must implement.
virtual bool handleMouseDownEvent(const PlatformMouseEvent&) = 0;
virtual bool handleMouseMoveEvent(const PlatformMouseEvent&) = 0;
virtual bool handleMouseReleaseEvent(const PlatformMouseEvent&) = 0;
virtual bool handleWheelEvent(const PlatformWheelEvent&) = 0;
virtual bool handleKeyEvent(const PlatformKeyboardEvent&) = 0;
+
+ // ScrollbarClient public methods:
+ virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&);
+ virtual bool isActive() const;
+
+ // Widget public methods:
+ virtual void invalidateRect(const IntRect&);
+
+ // ScrollView public methods:
+ virtual HostWindow* hostWindow() const;
+ virtual IntRect windowClipRect(bool clipToContents = true) const;
+
+ protected:
+ // ScrollView protected methods:
+ virtual void paintContents(GraphicsContext*, const IntRect& damageRect);
+ virtual void contentsResized();
+ virtual void visibleContentsResized();
+
+ private:
+ FramelessScrollViewClient* m_client;
};
}
#endif // FramelessScrollView_h
-
diff --git a/webkit/port/platform/chromium/FramelessScrollViewClient.h b/webkit/port/platform/chromium/FramelessScrollViewClient.h
new file mode 100644
index 0000000..a237bce
--- /dev/null
+++ b/webkit/port/platform/chromium/FramelessScrollViewClient.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#ifndef FramelessScrollViewClient_h
+#define FramelessScrollViewClient_h
+
+#include "HostWindow.h"
+
+namespace WebCore {
+ class FramelessScrollViewClient : public HostWindow {
+ public:
+ virtual void popupClosed(FramelessScrollView* popup_view) = 0;
+ };
+}
+
+#endif // FramelessScrollViewClient_h
diff --git a/webkit/port/platform/chromium/PlatformScrollBar.h b/webkit/port/platform/chromium/PlatformScrollBar.h
deleted file mode 100644
index bf865c5..0000000
--- a/webkit/port/platform/chromium/PlatformScrollBar.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PlatformScrollbar_h
-#define PlatformScrollbar_h
-
-#include "Widget.h"
-#include "ScrollBar.h"
-#include "Timer.h"
-
-namespace WebCore {
-
-// IMPORTANT NOTES ABOUT SCROLLBARS
-//
-// WebKit uses scrollbars in two ways. The first way is as a scroll control
-// for a ScrollView. This scrollbar sits inside the ScrollView's rect and
-// modifies its scrollOffset. Because it is inside the ScrollView's rect, it
-// is a child of the ScrollView, but because it is not really part of the
-// scrollView's content, it doesn't move as the scrollOffset changes.
-//
-// The second use is as a scroll control for things other than a ScrollView,
-// e.g. a <select>. A <select> is not a ScrollView, so the scrollbar is not a
-// child of it -- instead, it is a child of the ScrollView representing the
-// frame in which the <select> (and the scrollbar) are located. In this case,
-// the scrollbar IS part of the ScrollView's content, and it moves when the
-// scrollOffset changes.
-//
-// ScrollViewWin distinguishes these two cases in its convertChildToSelf and
-// convertSelfToChild methods, which are used when converting coordinates
-// between the ScrollBar's coordinate system and that of the native window.
-
-class PlatformScrollbar : public Widget, public Scrollbar {
-public:
- static PassRefPtr<PlatformScrollbar> create(ScrollbarClient* client, ScrollbarOrientation orientation, ScrollbarControlSize size)
- {
- return adoptRef(new PlatformScrollbar(client, orientation, size));
- }
- virtual ~PlatformScrollbar();
-
- virtual bool isWidget() const { return true; }
-
- virtual int width() const;
- virtual int height() const;
- virtual void setRect(const IntRect&);
- virtual void setEnabled(bool);
- virtual bool isEnabled() const { return m_enabled; }
- virtual void paint(GraphicsContext*, const IntRect& damageRect);
-
- virtual void setFrameGeometry(const IntRect& rect);
-
- // All mouse handler functions below receive mouse events in window
- // coordinates.
-
- // NOTE: These may be called after we've been removed from the widget/
- // window hierarchy, for example because the EventHandler keeps a reference
- // around and tries to feed us MouseOut events. In this case, doing
- // something would be not only pointless but dangerous, as without a
- // parent() we will end up failing an ASSERT(). So bail early if we get to
- // any of these with no parent().
- virtual bool handleMouseMoveEvent(const PlatformMouseEvent&);
- virtual bool handleMouseOutEvent(const PlatformMouseEvent&);
- virtual bool handleMousePressEvent(const PlatformMouseEvent&);
- virtual bool handleMouseReleaseEvent(const PlatformMouseEvent&);
-
- virtual IntRect windowClipRect() const;
-
- static void themeChanged();
- static int horizontalScrollbarHeight(ScrollbarControlSize size = RegularScrollbar);
- static int verticalScrollbarWidth(ScrollbarControlSize size = RegularScrollbar);
-
- // Scrolls the page when auto-repeat scrolling.
- void autoscrollTimerFired(Timer<PlatformScrollbar>*);
-
- // This function receives events in window coordinates.
- void handleMouseMoveEventWhenCapturing(const PlatformMouseEvent& e);
-
-protected:
- virtual void updateThumbPosition();
- virtual void updateThumbProportion();
-
-private:
- PlatformScrollbar(ScrollbarClient*, ScrollbarOrientation, ScrollbarControlSize);
-
- // Scroll bar segment identifiers
- enum Segment {
- Arrow1 = 0,
- Track, // Only used when scrollbar does not contain a thumb
- BeforeThumb, // -|
- Thumb, // -+ Only used when scrollbar contains a thumb
- AfterThumb, // -|
- Arrow2,
- None,
- NumSegments = None
- };
-
- // Turns on/off whether we have mouse capture. This is only for tracking,
- // as the EventHandler is what controls the actual capture.
- void setCapturingMouse(bool capturing);
-
- // Returns the girth of the scrollbar arrow button for layout, given the
- // system metrics code for the desired direction's button and a limiting
- // height (for vertical scroll bars) or width (for horizontal scrollbars).
- // Also computes the background span (available remaining space).
- int scrollButtonGirth(int systemMetricsCode, int limit,
- int* backgroundSpan);
-
- // Returns the girth of the scrollbar thumb for layout, given the system
- // metrics code for the desired direction's thumb and the background span
- // (space remaining after the buttons are drawn).
- int scrollThumbGirth(int systemMetricsCode, int backgroundSpan);
-
- // Computes the layout of the scroll bar given its current configuration.
- void layout();
-
- // Sets the current mouse position to the coordinates in |event|.
- void updateMousePosition(int x, int y);
-
- // Helper routine for updateMousePosition(), used to bypass layout().
- void updateMousePositionInternal();
-
- // Returns the correct state for the theme engine to draw a segment.
- int getThemeState(Segment target) const;
- int getThemeArrowState(Segment target) const;
- int getClassicThemeState(Segment target) const;
-
- // Draws the tick-marks on the scrollbar. The tick-marks are visual
- // indicators showing the results from a find-in-page operation.
- void DrawTickmarks(GraphicsContext* context) const;
-
- IntPoint m_lastNativePos; // The last (native) mouse coordinate received.
- struct {
- int thumbPos; // Relevant (window) mouse coordinate, and...
- int scrollVal; // ...current scrollvalue, when...
- } m_dragOrigin; // ...user begins dragging the thumb.
- IntRect m_segmentRects[NumSegments];
- // The native coordinates of the scrollbar
- // segments.
- Segment m_mouseOver; // The scrollbar segment the mouse is over.
- Segment m_captureStart; // The segment on which we started capture.
- Timer<PlatformScrollbar> m_autorepeatTimer;
- // Timer to start and continue auto-repeat
- // scrolling when the button is held down.
- bool m_enabled; // True when the scrollbar is enabled.
- bool m_needsLayout; // True when cached geometry may have changed
-
- // Multipliers against scrollbar thickness that determine how far away from
- // the scrollbar track the cursor can go before the thumb "snaps back"
- static const int kOffSideMultiplier;
- static const int kOffEndMultiplier;
-
- // Auto-repeat delays, in seconds
- static const double kAutorepeatInitialDelay;
- static const double kAutorepeatRepeatInterval;
-};
-
-}
-
-#endif // PlatformScrollbar_h
diff --git a/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp b/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp
deleted file mode 100644
index 6cd0033..0000000
--- a/webkit/port/platform/chromium/PlatformScrollBarChromium.cpp
+++ /dev/null
@@ -1,848 +0,0 @@
-// Copyright (c) 2008, 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.
-
-// TODO(pinkerton): clearly this needs a lot of work for mac and linux.
-// Right now it has just been stubbed out to get things to compile with fixed
-// geometries.
-
-#include "config.h"
-#include <algorithm>
-#if PLATFORM(WIN_OS)
-#include <windows.h>
-#include <vsstyle.h>
-#endif
-#include "FrameView.h"
-#include "GraphicsContext.h"
-#include "IntRect.h"
-#include "NativeImageSkia.h"
-#include "PlatformMouseEvent.h"
-#include "PlatformScrollBar.h"
-#include "Range.h"
-#include "ScrollView.h"
-#include "WidgetClientChromium.h"
-
-#include "graphics/SkiaUtils.h"
-
-#undef LOG
-#if PLATFORM(WIN_OS)
-#include "base/gfx/native_theme.h"
-#endif
-#include "base/gfx/platform_canvas.h"
-#include "base/gfx/skia_utils.h"
-#if PLATFORM(WIN_OS)
-#include "base/win_util.h"
-#endif
-#include "webkit/glue/webframe_impl.h"
-#include "webkit/glue/webkit_glue.h"
-
-namespace WebCore {
-
-const int PlatformScrollbar::kOffSideMultiplier = 8;
-const int PlatformScrollbar::kOffEndMultiplier = 3;
-const double PlatformScrollbar::kAutorepeatInitialDelay = 0.4;
-const double PlatformScrollbar::kAutorepeatRepeatInterval = 1. / 15.;
-
-// The scrollbar size in DumpRenderTree on the Mac - so we can match their
-// layout results. Entries are for regular, small, and mini scrollbars.
-// Metrics obtained using [NSScroller scrollerWidthForControlSize:]
-static const int kMacScrollbarSize[3] = {15, 11, 15};
-
-// Scrollbar button and thumb sizes, for consistent layout results. The Mac
-// value is not readily available, but it's not really needed, since these
-// metrics only affect drawing within the scrollbar itself. These are the
-// standard Windows values without Large Fonts.
-static const int kLayoutTestScrollbarButtonGirth = 17;
-static const int kLayoutTestScrollbarThumbGirth = 17;
-
-
-/*static*/ void PlatformScrollbar::themeChanged()
-{
- // TODO(darin): implement this
-}
-
-/*static*/ int PlatformScrollbar::horizontalScrollbarHeight(
- ScrollbarControlSize controlSize)
-{
-#if PLATFORM(WIN_OS)
- return webkit_glue::IsLayoutTestMode() ? kMacScrollbarSize[controlSize] :
- GetSystemMetrics(SM_CYHSCROLL);
-#elif PLATFORM(UNIX)
- return kMacScrollbarSize[controlSize];
-#endif
-}
-
-/*static*/ int PlatformScrollbar::verticalScrollbarWidth(
- ScrollbarControlSize controlSize)
-{
-#if PLATFORM(WIN_OS)
- return webkit_glue::IsLayoutTestMode() ? kMacScrollbarSize[controlSize] :
- GetSystemMetrics(SM_CXVSCROLL);
-#elif PLATFORM(UNIX)
- return kMacScrollbarSize[controlSize];
-#endif
-}
-
-PlatformScrollbar::PlatformScrollbar(ScrollbarClient* client,
- ScrollbarOrientation orientation,
- ScrollbarControlSize controlSize)
- : Scrollbar(client, orientation, controlSize)
- , m_lastNativePos(-1, -1) // initialize to bogus values
- , m_mouseOver(None)
- , m_captureStart(None)
-#pragma warning(suppress: 4355) // it's okay to pass |this| here!
- , m_autorepeatTimer(this, &PlatformScrollbar::autoscrollTimerFired)
- , m_enabled(true)
- , m_needsLayout(true)
-{
-}
-
-PlatformScrollbar::~PlatformScrollbar()
-{
-}
-
-int PlatformScrollbar::width() const
-{
- return orientation() == VerticalScrollbar ?
- verticalScrollbarWidth(controlSize()) : Widget::width();
-}
-
-int PlatformScrollbar::height() const
-{
- return orientation() == HorizontalScrollbar ?
- horizontalScrollbarHeight(controlSize()) : Widget::height();
-}
-
-void PlatformScrollbar::setRect(const IntRect& rect)
-{
- setFrameGeometry(rect);
-}
-
-void PlatformScrollbar::setEnabled(bool enabled)
-{
- if (m_enabled == enabled)
- return;
-
- m_enabled = enabled;
- invalidate();
-}
-
-void PlatformScrollbar::DrawTickmarks(GraphicsContext* context) const
-{
-#if PLATFORM(WIN_OS)
- // We don't draw on the horizontal scrollbar. It is too confusing
- // to have the tickmarks appear on both scrollbars.
- const bool horz = orientation() == HorizontalScrollbar;
- if (horz)
- return;
-
- // We need to as the WidgetClientChromium for the bitmap to use to draw.
- WidgetClientChromium* widget_client = static_cast<WidgetClientChromium*>(
- WebCore::Widget::client());
- if (!widget_client)
- return; // Cannot draw without access to the bitmap.
-
- // Get the frame view this scroll bar belongs to.
- FrameView* view = reinterpret_cast<FrameView*>(parent());
- ASSERT(view);
-
- // A frame can be null if this function is called for the scroll views
- // used when drawing drop-down boxes. We don't need to draw anything in
- // such cases.
- if (!view->frame())
- return;
-
- // Find out if the frame has any tickmarks.
- const Vector<RefPtr<Range> >& tickmarks =
- WebFrameImpl::FromFrame(view->frame())->tickmarks();
- if (tickmarks.isEmpty())
- return;
-
- RECT track_area;
- if (m_segmentRects[Track].x() != -1) {
- // Scroll bar is too small to draw a thumb.
- track_area.left = m_segmentRects[Track].x();
- track_area.top = m_segmentRects[Track].y();
- track_area.right = m_segmentRects[Track].right() - 1;
- track_area.bottom = m_segmentRects[Track].bottom() - 1;
- } else {
- // Find the area between the arrows of the scroll bar.
- track_area.left = m_segmentRects[BeforeThumb].x();
- track_area.top = m_segmentRects[BeforeThumb].y();
- track_area.right = m_segmentRects[AfterThumb].right() - 1;
- track_area.bottom = m_segmentRects[AfterThumb].bottom() - 1;
- }
-
- // We now can figure out the actual height and width of the track.
- const int track_height = track_area.bottom - track_area.top;
- const int track_width = track_area.right - track_area.left;
-
- if (track_height <= 0 || track_width <= 0)
- return; // nothing to draw on.
-
- // NOTE: We tolerate the platformContext() call here because the scrollbars
- // will not be serialized, i.e. composition is done in the renderer and
- // never in the browser.
- // Prepare the bitmap for drawing the tickmarks on the scroll bar.
- gfx::PlatformCanvas* canvas = context->platformContext()->canvas();
-
- // Load the image for the tickmark.
- static RefPtr<Image> dashImg = Image::loadPlatformResource("tickmarkDash");
- DCHECK(dashImg);
- if (dashImg->isNull()) {
- ASSERT_NOT_REACHED();
- return;
- }
- const NativeImageSkia* dash = dashImg->nativeImageForCurrentFrame();
-
- for (Vector<RefPtr<Range> >::const_iterator i =
- tickmarks.begin();
- i != tickmarks.end(); ++i) {
- const RefPtr<Range> range = (*i);
-
- if (!WebFrameImpl::RangeShouldBeHighlighted(range.get()))
- continue;
-
- const IntRect& bounds = range->boundingBox();
-
- // Calculate how far down (in %) the tick-mark should appear.
- const float percent = static_cast<float>(bounds.y()) / m_totalSize;
-
- // Calculate how far down (in pixels) the tick-mark should appear.
- const int y_pos = track_area.top + (track_height * percent);
-
- // Draw the tick-mark as a rounded rect with a slightly curved edge.
- canvas->drawBitmap(*dash, track_area.left, y_pos);
- }
-#endif
-}
-
-// paint in the coordinate space of our parent's content area
-void PlatformScrollbar::paint(GraphicsContext* gc, const IntRect& damageRect)
-{
-#if PLATFORM(WIN_OS)
- if (gc->paintingDisabled())
- return;
-
- // Don't paint anything if the scrollbar doesn't intersect the damage rect.
- if (!frameGeometry().intersects(damageRect))
- return;
-
- gc->save();
- gc->translate(x(), y());
-
- layout();
-
- HDC hdc = gc->platformContext()->canvas()->beginPlatformPaint();
- const bool horz = orientation() == HorizontalScrollbar;
- const PlatformContextSkia* const skia = gc->platformContext();
- const gfx::NativeTheme* const nativeTheme = skia->nativeTheme();
- gfx::PlatformCanvasWin* const canvas = skia->canvas();
-
- // Draw the up/left arrow of the scroll bar.
- RECT rect = gfx::SkIRectToRECT(m_segmentRects[Arrow1]);
- nativeTheme->PaintScrollbarArrow(hdc, getThemeArrowState(Arrow1),
- (horz ? DFCS_SCROLLLEFT : DFCS_SCROLLUP) |
- getClassicThemeState(Arrow1),
- &rect);
-
- if (m_segmentRects[Track].x() != -1) {
- // The scroll bar is too small to draw the thumb. Just draw a
- // single track between the arrows.
- rect = gfx::SkIRectToRECT(m_segmentRects[Track]);
- nativeTheme->PaintScrollbarTrack(hdc,
- horz ? SBP_UPPERTRACKHORZ :
- SBP_UPPERTRACKVERT,
- getThemeState(Track),
- getClassicThemeState(Track),
- &rect, &rect, canvas);
- DrawTickmarks(gc);
- } else {
- // Draw the track area before the thumb on the scroll bar.
- rect = gfx::SkIRectToRECT(m_segmentRects[BeforeThumb]);
- nativeTheme->PaintScrollbarTrack(hdc,
- horz ? SBP_UPPERTRACKHORZ :
- SBP_UPPERTRACKVERT,
- getThemeState(BeforeThumb),
- getClassicThemeState(BeforeThumb),
- &rect, &rect, canvas);
-
- // Draw the track area after the thumb on the scroll bar.
- rect = gfx::SkIRectToRECT(m_segmentRects[BeforeThumb]);
- RECT rect_after = gfx::SkIRectToRECT(m_segmentRects[AfterThumb]);
- nativeTheme->PaintScrollbarTrack(hdc,
- horz ? SBP_LOWERTRACKHORZ :
- SBP_LOWERTRACKVERT,
- getThemeState(AfterThumb),
- getClassicThemeState(AfterThumb),
- &rect_after,
- &rect,
- canvas);
-
- // Draw the tick-marks on the scroll bar, if any tick-marks
- // exist. Note: The thumb will be drawn on top of the tick-marks,
- // which is desired.
- DrawTickmarks(gc);
-
- // Draw the thumb (the box you drag in the scroll bar to scroll).
- rect = gfx::SkIRectToRECT(m_segmentRects[Thumb]);
- nativeTheme->PaintScrollbarThumb(hdc,
- horz ? SBP_THUMBBTNHORZ :
- SBP_THUMBBTNVERT,
- getThemeState(Thumb),
- getClassicThemeState(Thumb),
- &rect);
-
- // Draw the gripper (the three little lines on the thumb).
- rect = gfx::SkIRectToRECT(m_segmentRects[Thumb]);
- nativeTheme->PaintScrollbarThumb(hdc,
- horz ? SBP_GRIPPERHORZ :
- SBP_GRIPPERVERT,
- getThemeState(Thumb),
- getClassicThemeState(Thumb),
- &rect);
- }
-
- // Draw the down/right arrow of the scroll bar.
- rect = gfx::SkIRectToRECT(m_segmentRects[Arrow2]);
- nativeTheme->PaintScrollbarArrow(hdc, getThemeArrowState(Arrow2),
- (horz ?
- DFCS_SCROLLRIGHT : DFCS_SCROLLDOWN) |
- getClassicThemeState(Arrow2),
- &rect);
- gc->platformContext()->canvas()->endPlatformPaint();
-
- gc->restore();
-#endif
-}
-
-void PlatformScrollbar::setFrameGeometry(const IntRect& rect)
-{
- if (rect == frameGeometry())
- return;
-
- Widget::setFrameGeometry(rect);
- m_needsLayout = true;
- // NOTE: we assume that our caller will invalidate us
-}
-
-bool PlatformScrollbar::handleMouseMoveEvent(const PlatformMouseEvent& e)
-{
- if (!parent())
- return true;
-
- if (m_captureStart != None) {
- handleMouseMoveEventWhenCapturing(e);
- return true;
- }
-
- IntPoint pos = convertFromContainingWindow(e.pos());
- updateMousePosition(pos.x(), pos.y());
-
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
- return true;
-}
-
-bool PlatformScrollbar::handleMouseOutEvent(const PlatformMouseEvent& e)
-{
- if (!parent())
- return true;
-
- ASSERT(m_captureStart == None);
-
- // Pass bogus values that will never match real mouse coords.
- updateMousePosition(-1, -1);
-
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
- return true;
-}
-
-bool PlatformScrollbar::handleMouseReleaseEvent(const PlatformMouseEvent& e)
-{
- ScrollView* parentView = parent();
- if (!parentView)
- return true;
-
- IntPoint pos = convertFromContainingWindow(e.pos());
- updateMousePosition(pos.x(), pos.y());
-
- setCapturingMouse(false);
-
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
- return true;
-}
-
-bool PlatformScrollbar::handleMousePressEvent(const PlatformMouseEvent& e)
-{
- if (!parent())
- return true;
-
- // TODO(pkasting): http://b/583875 Right-click should invoke a context menu
- // (maybe this would be better handled elsewhere?)
- if (!m_enabled || (e.button() != LeftButton)) {
- return true;
- }
-
- ASSERT(m_captureStart == None);
-
- IntPoint pos = convertFromContainingWindow(e.pos());
-
- const bool horz = (orientation() == HorizontalScrollbar);
- updateMousePosition(pos.x(), pos.y());
- switch (m_mouseOver) {
- case Arrow1:
- scroll(horz ? ScrollLeft : ScrollUp, ScrollByLine);
- break;
- case Track:
- return true;
- case BeforeThumb:
- scroll(horz ? ScrollLeft : ScrollUp, ScrollByPage);
- break;
- case Thumb:
- m_dragOrigin.thumbPos = horz ? pos.x() : pos.y();
- m_dragOrigin.scrollVal = value();
- break;
- case AfterThumb:
- scroll(horz ? ScrollRight : ScrollDown, ScrollByPage);
- break;
- case Arrow2:
- scroll(horz ? ScrollRight : ScrollDown, ScrollByLine);
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-
- setCapturingMouse(true);
-
- // Kick off auto-repeat timer
- if (m_mouseOver != Thumb)
- m_autorepeatTimer.start(kAutorepeatInitialDelay,
- kAutorepeatRepeatInterval);
-
- m_needsLayout = true;
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
-
- return true;
-}
-
-void PlatformScrollbar::handleMouseMoveEventWhenCapturing(const PlatformMouseEvent& e)
-{
- IntPoint pos = convertFromContainingWindow(e.pos());
- updateMousePosition(pos.x(), pos.y());
-
- if (m_captureStart != Thumb) {
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
- return;
- }
-
- int xCancelDistance, yCancelDistance, backgroundSpan, thumbGirth, delta;
- // NOTE: The cancel distance calculations are based on the behavior of the
- // MSVC8 main window scrollbar + some guessing/extrapolation
- if (orientation() == HorizontalScrollbar) {
- xCancelDistance = kOffEndMultiplier * horizontalScrollbarHeight();
- yCancelDistance = kOffSideMultiplier * horizontalScrollbarHeight();
- backgroundSpan = m_segmentRects[AfterThumb].right() -
- m_segmentRects[BeforeThumb].x();
- thumbGirth = m_segmentRects[Thumb].right() - m_segmentRects[Thumb].x();
- delta = pos.x() - m_dragOrigin.thumbPos;
- } else {
- xCancelDistance = kOffSideMultiplier * verticalScrollbarWidth();
- yCancelDistance = kOffEndMultiplier * verticalScrollbarWidth();
- backgroundSpan = m_segmentRects[AfterThumb].bottom() -
- m_segmentRects[BeforeThumb].y();
- thumbGirth = m_segmentRects[Thumb].bottom() - m_segmentRects[Thumb].y();
- delta = pos.y() - m_dragOrigin.thumbPos;
- }
-
- // Snap scrollbar back to drag origin if mouse gets too far away
- if ((m_lastNativePos.x() <
- (m_segmentRects[BeforeThumb].x() - xCancelDistance)) ||
- (m_lastNativePos.x() >
- (m_segmentRects[AfterThumb].right() + xCancelDistance)) ||
- (m_lastNativePos.y() <
- (m_segmentRects[BeforeThumb].y() - yCancelDistance)) ||
- (m_lastNativePos.y() >
- (m_segmentRects[AfterThumb].bottom() + yCancelDistance)))
- delta = 0;
-
- // Convert delta from pixel coords to scrollbar logical coords
- if (backgroundSpan > thumbGirth) {
- if (setValue(m_dragOrigin.scrollVal + (delta *
- (m_totalSize - m_visibleSize) / (backgroundSpan - thumbGirth)))) {
- m_needsLayout = true;
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
- }
- }
-}
-
-IntRect PlatformScrollbar::windowClipRect() const
-{
- if (m_client)
- return m_client->windowClipRect();
-
- return convertToContainingWindow(IntRect(0, 0, width(), height()));
-}
-
-void PlatformScrollbar::updateThumbPosition()
-{
- m_needsLayout = true;
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
-}
-
-void PlatformScrollbar::updateThumbProportion()
-{
- // RenderLayer::updateScrollInfoAfterLayout changes the enabled state when
- // the style is OSCROLL, however it doesn't change it when the style is OAUTO.
- // As a workaround we enable the scrollbar if the visible size is less than
- // the total size
- if (!m_enabled && m_visibleSize < m_totalSize) {
- setEnabled(true);
- }
-
- // If the thumb was at the end of the track and the scrollbar was resized
- // smaller, we need to cap the value to the new maximum.
- if (setValue(value()))
- return; // updateThumbPosition() already invalidated as needed
-
- m_needsLayout = true;
- // FIXME: Invalidate only the portions that actually changed
- invalidate();
-}
-
-void PlatformScrollbar::autoscrollTimerFired(Timer<PlatformScrollbar>*)
-{
- ASSERT((m_captureStart != None) && (m_mouseOver == m_captureStart));
-
- const bool horz = (orientation() == HorizontalScrollbar);
- switch (m_captureStart) {
- case Arrow1:
- scroll(horz ? ScrollLeft : ScrollUp, ScrollByLine);
- break;
- case BeforeThumb:
- scroll(horz ? ScrollLeft : ScrollUp, ScrollByPage);
- break;
- case AfterThumb:
- scroll(horz ? ScrollRight : ScrollDown, ScrollByPage);
- break;
- case Arrow2:
- scroll(horz ? ScrollRight : ScrollDown, ScrollByLine);
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-}
-
-void PlatformScrollbar::setCapturingMouse(bool capturing)
-{
- if (capturing) {
- m_captureStart = m_mouseOver;
- } else {
- m_captureStart = None;
- m_autorepeatTimer.stop();
- }
-}
-
-int PlatformScrollbar::scrollButtonGirth(int systemMetricsCode, int limit,
- int* backgroundSpan)
-{
-#if PLATFORM(WIN_OS)
- const int girth = webkit_glue::IsLayoutTestMode() ?
- kLayoutTestScrollbarButtonGirth : GetSystemMetrics(systemMetricsCode);
-#elif PLATFORM(UNIX)
- const int girth = kLayoutTestScrollbarButtonGirth;
-#endif
- *backgroundSpan = limit - 2 * girth;
- if (*backgroundSpan < 0) {
- *backgroundSpan = 0;
- return limit / 2;
- }
- return girth;
-}
-
-int PlatformScrollbar::scrollThumbGirth(int systemMetricsCode,
- int backgroundSpan)
-{
-#if PLATFORM(WIN_OS)
- const int minimumGirth = webkit_glue::IsLayoutTestMode() ?
- kLayoutTestScrollbarThumbGirth : GetSystemMetrics(systemMetricsCode);
-#elif PLATFORM(UNIX)
- const int minimumGirth = kLayoutTestScrollbarThumbGirth;
-#endif
- return std::max<int>(m_visibleSize * backgroundSpan / m_totalSize,
- minimumGirth);
-}
-
-void PlatformScrollbar::layout()
-{
-#if PLATFORM(WIN_OS)
- if (!m_needsLayout)
- return;
- m_needsLayout = false;
-
- const IntRect invalid(-1, -1, 0, 0);
- if (m_totalSize <= 0) {
- for (int i = 0; i < NumSegments; ++i)
- m_segmentRects[i] = invalid;
- return;
- }
-
- int buttonGirth, backgroundSpan, thumbGirth;
- RECT box = {0};
- LONG* changingCoord1, * changingCoord2;
- // For both orientations, we allow the buttonGirth to determine the
- // backgroundSpan directly, to avoid rounding errors.
- if (orientation() == HorizontalScrollbar) {
- buttonGirth = scrollButtonGirth(SM_CXHSCROLL, width(), &backgroundSpan);
- thumbGirth = scrollThumbGirth(SM_CXHTHUMB, backgroundSpan);
- box.bottom += horizontalScrollbarHeight();
- changingCoord1 = &box.left;
- changingCoord2 = &box.right;
- } else {
- buttonGirth = scrollButtonGirth(SM_CYVSCROLL, height(),
- &backgroundSpan);
- thumbGirth = scrollThumbGirth(SM_CYVTHUMB, backgroundSpan);
- box.right += verticalScrollbarWidth();
- changingCoord1 = &box.top;
- changingCoord2 = &box.bottom;
- }
-
- // Scrollbar: |<|--------|XXX|------|>|
- // Start arrow: |<|
- *changingCoord2 += buttonGirth;
- m_segmentRects[Arrow1] = gfx::RECTToSkIRect(box);
-
- if (thumbGirth >= backgroundSpan) {
- if (backgroundSpan == 0) {
- m_segmentRects[Track] = invalid;
- } else {
- // Track: |-------------------|
- *changingCoord1 = *changingCoord2;
- *changingCoord2 += backgroundSpan;
- m_segmentRects[Track] = gfx::RECTToSkIRect(box);
- }
-
- m_segmentRects[BeforeThumb] = invalid;
- m_segmentRects[Thumb] = invalid;
- m_segmentRects[AfterThumb] = invalid;
- } else {
- m_segmentRects[Track] = invalid;
-
- const int thumbOffset = (m_totalSize <= m_visibleSize) ? 0 : (value() *
- (backgroundSpan - thumbGirth) / (m_totalSize - m_visibleSize));
- // Before thumb: |--------|
- *changingCoord1 = *changingCoord2;
- *changingCoord2 += thumbOffset;
- m_segmentRects[BeforeThumb] = gfx::RECTToSkIRect(box);
-
- // Thumb: |XXX|
- *changingCoord1 = *changingCoord2;
- *changingCoord2 += thumbGirth;
- m_segmentRects[Thumb] = gfx::RECTToSkIRect(box);
-
- // After thumb: |------|
- *changingCoord1 = *changingCoord2;
- *changingCoord2 += backgroundSpan - (thumbOffset + thumbGirth);
- m_segmentRects[AfterThumb] = gfx::RECTToSkIRect(box);
- }
-
- // End arrow: |>|
- *changingCoord1 = *changingCoord2;
- *changingCoord2 += buttonGirth;
- m_segmentRects[Arrow2] = gfx::RECTToSkIRect(box);
-
- // Changed layout, so need to update m_mouseOver and m_autorepeatTimer
- updateMousePositionInternal();
-
- // DO NOT invalidate() here. We already invalidate()d for this layout when
- // setting m_needsLayout = true; by the time we reach this point, we're
- // called by paint(), so invalidate() is not only unnecessary but will
- // waste effort.
-#endif
-}
-
-void PlatformScrollbar::updateMousePosition(int x, int y)
-{
- m_lastNativePos.setX(x);
- m_lastNativePos.setY(y);
-
- if (m_needsLayout)
- layout(); // Calls updateMousePositionInternal()
- else
- updateMousePositionInternal();
-}
-
-void PlatformScrollbar::updateMousePositionInternal()
-{
- m_mouseOver = None;
- for (int i = 0; i < NumSegments; ++i) {
- if ((m_lastNativePos.x() >= m_segmentRects[i].x()) &&
- (m_lastNativePos.x() < m_segmentRects[i].right()) &&
- (m_lastNativePos.y() >= m_segmentRects[i].y()) &&
- (m_lastNativePos.y() < m_segmentRects[i].bottom())) {
- m_mouseOver = static_cast<Segment>(i);
- break;
- }
- }
-
- // Start/stop autorepeat timer if capturing something other than the thumb.
- if ((m_captureStart != None) && (m_captureStart != Thumb)) {
- if (m_mouseOver != m_captureStart)
- m_autorepeatTimer.stop(); // Safe to call when already stopped
- else if (!m_autorepeatTimer.isActive())
- m_autorepeatTimer.startRepeating(kAutorepeatRepeatInterval);
- }
-}
-
-int PlatformScrollbar::getThemeState(Segment target) const
-{
-#if PLATFORM(WIN_OS)
- // When dragging the thumb, draw thumb pressed and other segments normal
- // regardless of where the cursor actually is. See also four places in
- // getThemeArrowState().
- if (m_captureStart == Thumb) {
- if (target == Thumb)
- return SCRBS_PRESSED;
- return (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) ?
- SCRBS_NORMAL : SCRBS_HOVER;
- }
- if (!m_enabled)
- return SCRBS_DISABLED;
- if ((m_mouseOver != target) || (target == Track)) {
- return ((m_mouseOver == None) ||
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA)) ?
- SCRBS_NORMAL : SCRBS_HOVER;
- }
- if (m_captureStart == None)
- return SCRBS_HOT;
- return (m_captureStart == target) ? SCRBS_PRESSED : SCRBS_NORMAL;
-#elif PLATFORM(UNIX)
- return 0;
-#endif
-}
-
-int PlatformScrollbar::getThemeArrowState(Segment target) const
-{
-#if PLATFORM(WIN_OS)
- // We could take advantage of knowing the values in the state enum to write
- // some simpler code, but treating the state enum as a black box seems
- // clearer and more future-proof.
- if (target == Arrow1) {
- if (orientation() == HorizontalScrollbar) {
- if (m_captureStart == Thumb) {
- return
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) ?
- ABS_LEFTNORMAL : ABS_LEFTHOVER;
- }
- if (!m_enabled)
- return ABS_LEFTDISABLED;
- if (m_mouseOver != target) {
- return ((m_mouseOver == None) ||
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA)) ?
- ABS_LEFTNORMAL : ABS_LEFTHOVER;
- }
- if (m_captureStart == None)
- return ABS_LEFTHOT;
- return (m_captureStart == target) ?
- ABS_LEFTPRESSED : ABS_LEFTNORMAL;
- }
- if (m_captureStart == Thumb) {
- return (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) ?
- ABS_UPNORMAL : ABS_UPHOVER;
- }
- if (!m_enabled)
- return ABS_UPDISABLED;
- if (m_mouseOver != target) {
- return ((m_mouseOver == None) ||
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA)) ?
- ABS_UPNORMAL : ABS_UPHOVER;
- }
- if (m_captureStart == None)
- return ABS_UPHOT;
- return (m_captureStart == target) ? ABS_UPPRESSED : ABS_UPNORMAL;
- }
- if (orientation() == HorizontalScrollbar) {
- if (m_captureStart == Thumb) {
- return (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) ?
- ABS_RIGHTNORMAL : ABS_RIGHTHOVER;
- }
- if (!m_enabled)
- return ABS_RIGHTDISABLED;
- if (m_mouseOver != target) {
- return ((m_mouseOver == None) ||
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA)) ?
- ABS_RIGHTNORMAL : ABS_RIGHTHOVER;
- }
- if (m_captureStart == None)
- return ABS_RIGHTHOT;
- return (m_captureStart == target) ? ABS_RIGHTPRESSED : ABS_RIGHTNORMAL;
- }
- if (m_captureStart == Thumb) {
- return (win_util::GetWinVersion() < win_util::WINVERSION_VISTA) ?
- ABS_DOWNNORMAL : ABS_DOWNHOVER;
- }
- if (!m_enabled)
- return ABS_DOWNDISABLED;
- if (m_mouseOver != target) {
- return ((m_mouseOver == None) ||
- (win_util::GetWinVersion() < win_util::WINVERSION_VISTA)) ?
- ABS_DOWNNORMAL : ABS_DOWNHOVER;
- }
- if (m_captureStart == None)
- return ABS_DOWNHOT;
- return (m_captureStart == target) ? ABS_DOWNPRESSED : ABS_DOWNNORMAL;
-#elif PLATFORM(UNIX)
- return 0;
-#endif
-}
-
-int PlatformScrollbar::getClassicThemeState(Segment target) const
-{
-#if PLATFORM(WIN_OS)
- // When dragging the thumb, draw the buttons normal even when hovered.
- if (m_captureStart == Thumb)
- return 0;
- if (!m_enabled)
- return DFCS_INACTIVE;
- if ((m_mouseOver != target) || (target == Track))
- return 0;
- if (m_captureStart == None)
- return DFCS_HOT;
- return (m_captureStart == target) ? (DFCS_PUSHED | DFCS_FLAT) : 0;
-#elif PLATFORM(UNIX)
- return 0;
-#endif
-}
-
-} // namespace WebCore
diff --git a/webkit/port/platform/chromium/PlatformWidget.h b/webkit/port/platform/chromium/PlatformWidget.h
index a97432b..8751657 100644
--- a/webkit/port/platform/chromium/PlatformWidget.h
+++ b/webkit/port/platform/chromium/PlatformWidget.h
@@ -27,8 +27,8 @@
// (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 PlatformWidget_h__
-#define PlatformWidget_h__
+#ifndef PlatformWidget_h
+#define PlatformWidget_h
#include "base/gfx/native_widget_types.h"
diff --git a/webkit/port/platform/chromium/PopupMenuChromium.cpp b/webkit/port/platform/chromium/PopupMenuChromium.cpp
index 8d63e71..841ca08 100644
--- a/webkit/port/platform/chromium/PopupMenuChromium.cpp
+++ b/webkit/port/platform/chromium/PopupMenuChromium.cpp
@@ -37,8 +37,10 @@
#include "Document.h"
#include "Font.h"
#include "Frame.h"
+#include "FrameView.h"
#include "FontSelector.h"
#include "FramelessScrollView.h"
+#include "FramelessScrollViewClient.h"
#include "GraphicsContext.h"
#include "IntRect.h"
#include "NotImplemented.h"
@@ -46,13 +48,12 @@
#include "PlatformKeyboardEvent.h"
#include "PlatformMouseEvent.h"
#include "PlatformScreen.h"
-#include "PlatformScrollBar.h"
#include "PlatformWheelEvent.h"
-#include "SystemTime.h"
#include "RenderBlock.h"
#include "RenderTheme.h"
+#include "ScrollbarTheme.h"
+#include "SystemTime.h"
#include "Widget.h"
-#include "WidgetClientChromium.h"
#if !PLATFORM(WIN_OS)
#include "KeyboardCodes.h"
@@ -77,10 +78,12 @@ static const TimeStamp kTypeAheadTimeoutMs = 1000;
class PopupListBox;
+// TODO(darin): Our FramelessScrollView classes need to implement HostWindow!
+
// This class holds a PopupListBox. Its sole purpose is to be able to draw
// a border around its child. All its paint/event handling is just forwarded
// to the child listBox (with the appropriate transforms).
-class PopupContainer : public FramelessScrollView {
+class PopupContainer : public FramelessScrollView, public RefCounted<PopupContainer> {
public:
static PassRefPtr<PopupContainer> create(PopupMenuClient* client);
@@ -107,6 +110,8 @@ public:
PopupListBox* listBox() const { return m_listBox.get(); }
private:
+ friend class RefCounted<PopupContainer>;
+
PopupContainer(PopupMenuClient* client);
~PopupContainer();
@@ -118,7 +123,7 @@ private:
// This class uses WebCore code to paint and handle events for a drop-down list
// box ("combobox" on Windows).
-class PopupListBox : public FramelessScrollView {
+class PopupListBox : public FramelessScrollView, public RefCounted<PopupListBox> {
public:
// FramelessScrollView
virtual void paint(GraphicsContext* gc, const IntRect& rect);
@@ -128,6 +133,9 @@ public:
virtual bool handleWheelEvent(const PlatformWheelEvent& event);
virtual bool handleKeyEvent(const PlatformKeyboardEvent& event);
+ // ScrollView
+ virtual HostWindow* hostWindow() const;
+
// PopupListBox methods
// Show the popup
@@ -168,6 +176,7 @@ public:
private:
friend class PopupContainer;
+ friend class RefCounted<PopupListBox>;
// A type of List Item
enum ListItemType {
@@ -194,7 +203,7 @@ private:
, m_repeatingChar(0)
, m_lastCharTime(0)
{
- setScrollbarsMode(ScrollbarAlwaysOff);
+ setScrollbarModes(ScrollbarAlwaysOff, ScrollbarAlwaysOff);
}
~PopupListBox()
@@ -273,10 +282,10 @@ private:
// The scrollbar which has mouse capture. Mouse events go straight to this
// if non-NULL.
- RefPtr<PlatformScrollbar> m_capturingScrollbar;
+ RefPtr<Scrollbar> m_capturingScrollbar;
// The last scrollbar that the mouse was over. Used for mouseover highlights.
- RefPtr<PlatformScrollbar> m_lastScrollbarUnderMouse;
+ RefPtr<Scrollbar> m_lastScrollbarUnderMouse;
// The string the user has typed so far into the popup. Used for typeAheadFind.
String m_typedString;
@@ -289,12 +298,12 @@ private:
};
static PlatformMouseEvent constructRelativeMouseEvent(const PlatformMouseEvent& e,
- FrameView* parent,
- FrameView* child)
+ FramelessScrollView* parent,
+ FramelessScrollView* child)
{
IntPoint pos = parent->convertSelfToChild(child, e.pos());
- // FIXME(beng): This is a horrible hack since PlatformWheelEvent has no setters for x/y.
+ // FIXME(beng): This is a horrible hack since PlatformMouseEvent has no setters for x/y.
// Need to add setters and get patch back upstream to webkit source.
PlatformMouseEvent relativeEvent = e;
IntPoint& relativePos = const_cast<IntPoint&>(relativeEvent.pos());
@@ -304,8 +313,8 @@ static PlatformMouseEvent constructRelativeMouseEvent(const PlatformMouseEvent&
}
static PlatformWheelEvent constructRelativeWheelEvent(const PlatformWheelEvent& e,
- FrameView* parent,
- FrameView* child)
+ FramelessScrollView* parent,
+ FramelessScrollView* child)
{
IntPoint pos = parent->convertSelfToChild(child, e.pos());
@@ -334,7 +343,7 @@ PopupContainer::PopupContainer(PopupMenuClient* client)
// assign it to a RefPtr.
m_listBox->deref();
- setScrollbarsMode(ScrollbarAlwaysOff);
+ setScrollbarModes(ScrollbarAlwaysOff, ScrollbarAlwaysOff);
}
PopupContainer::~PopupContainer()
@@ -346,25 +355,23 @@ PopupContainer::~PopupContainer()
void PopupContainer::showPopup(FrameView* view)
{
// Pre-layout, our size matches the <select> dropdown control.
- int selectHeight = frameGeometry().height();
+ int selectHeight = frameRect().height();
// Lay everything out to figure out our preferred size, then tell the view's
// WidgetClient about it. It should assign us a client.
layout();
- WidgetClientChromium* widgetClient = static_cast<WidgetClientChromium*>(
- view->client());
ChromeClientChromium* chromeClient = static_cast<ChromeClientChromium*>(
view->frame()->page()->chrome()->client());
- if (widgetClient && chromeClient) {
+ if (chromeClient) {
// If the popup would extend past the bottom of the screen, open upwards
// instead.
FloatRect screen = screenRect(view);
- IntRect widgetRect = chromeClient->windowToScreen(frameGeometry());
+ IntRect widgetRect = chromeClient->windowToScreen(frameRect());
if (widgetRect.bottom() > static_cast<int>(screen.bottom()))
widgetRect.move(0, -(widgetRect.height() + selectHeight));
- widgetClient->popupOpened(this, widgetRect);
+ chromeClient->popupOpened(this, widgetRect);
}
// Must get called after we have a client and containingWindow.
@@ -372,7 +379,7 @@ void PopupContainer::showPopup(FrameView* view)
// Enable scrollbars after the listbox is inserted into the hierarchy, so
// it has a proper WidgetClient.
- m_listBox->setVScrollbarMode(ScrollbarAuto);
+ m_listBox->setVerticalScrollbarMode(ScrollbarAuto);
m_listBox->scrollToRevealSelection();
@@ -385,9 +392,10 @@ void PopupContainer::hidePopup()
m_listBox->disconnectClient();
removeChild(m_listBox.get());
-
+ m_listBox = 0;
+
if (client())
- static_cast<WidgetClientChromium*>(client())->popupClosed(this);
+ client()->popupClosed(this);
}
void PopupContainer::layout()
@@ -439,7 +447,7 @@ void PopupContainer::hide() {
void PopupContainer::paint(GraphicsContext* gc, const IntRect& rect)
{
// adjust coords for scrolled frame
- IntRect r = intersection(rect, frameGeometry());
+ IntRect r = intersection(rect, frameRect());
int tx = x();
int ty = y();
@@ -476,10 +484,10 @@ void PopupContainer::paintBorder(GraphicsContext* gc, const IntRect& rect)
bool PopupListBox::handleMouseDownEvent(const PlatformMouseEvent& event)
{
- PlatformScrollbar* scrollbar = scrollbarUnderMouse(event);
+ Scrollbar* scrollbar = scrollbarUnderMouse(event);
if (scrollbar) {
m_capturingScrollbar = scrollbar;
- m_capturingScrollbar->handleMousePressEvent(event);
+ m_capturingScrollbar->mouseDown(event);
return true;
}
@@ -492,20 +500,20 @@ bool PopupListBox::handleMouseDownEvent(const PlatformMouseEvent& event)
bool PopupListBox::handleMouseMoveEvent(const PlatformMouseEvent& event)
{
if (m_capturingScrollbar) {
- m_capturingScrollbar->handleMouseMoveEvent(event);
+ m_capturingScrollbar->mouseMoved(event);
return true;
}
- PlatformScrollbar* scrollbar = scrollbarUnderMouse(event);
+ Scrollbar* scrollbar = scrollbarUnderMouse(event);
if (m_lastScrollbarUnderMouse != scrollbar) {
// Send mouse exited to the old scrollbar.
if (m_lastScrollbarUnderMouse)
- m_lastScrollbarUnderMouse->handleMouseOutEvent(event);
+ m_lastScrollbarUnderMouse->mouseExited();
m_lastScrollbarUnderMouse = scrollbar;
}
if (scrollbar) {
- scrollbar->handleMouseMoveEvent(event);
+ scrollbar->mouseMoved(event);
return true;
}
@@ -519,7 +527,7 @@ bool PopupListBox::handleMouseMoveEvent(const PlatformMouseEvent& event)
bool PopupListBox::handleMouseReleaseEvent(const PlatformMouseEvent& event)
{
if (m_capturingScrollbar) {
- m_capturingScrollbar->handleMouseReleaseEvent(event);
+ m_capturingScrollbar->mouseUp();
m_capturingScrollbar = 0;
return true;
}
@@ -598,6 +606,13 @@ bool PopupListBox::handleKeyEvent(const PlatformKeyboardEvent& event)
return true;
}
+HostWindow* PopupListBox::hostWindow() const
+{
+ // Our parent is the root ScrollView, so it is the one that has a
+ // HostWindow. FrameView::hostWindow() works similarly.
+ return parent() ? parent()->hostWindow() : 0;
+}
+
// From HTMLSelectElement.cpp
static String stripLeadingWhiteSpace(const String& string)
{
@@ -655,9 +670,9 @@ void PopupListBox::typeAheadFind(const PlatformKeyboardEvent& event)
void PopupListBox::paint(GraphicsContext* gc, const IntRect& rect)
{
// adjust coords for scrolled frame
- IntRect r = intersection(rect, frameGeometry());
- int tx = x() - contentsX();
- int ty = y() - contentsY();
+ IntRect r = intersection(rect, frameRect());
+ int tx = x() - scrollX();
+ int ty = y() - scrollY();
r.move(-tx, -ty);
@@ -680,12 +695,8 @@ void PopupListBox::paint(GraphicsContext* gc, const IntRect& rect)
ScrollView::paint(gc, rect);
}
-static RenderStyle* getPopupClientStyleForRow(PopupMenuClient* client, int rowIndex) {
- RenderStyle* style = client->itemStyle(rowIndex);
- if (!style)
- style = client->clientStyle();
- return style;
-}
+static const int separatorPadding = 4;
+static const int separatorHeight = 1;
void PopupListBox::paintRow(GraphicsContext* gc, const IntRect& rect, int rowIndex)
{
@@ -695,7 +706,7 @@ void PopupListBox::paintRow(GraphicsContext* gc, const IntRect& rect, int rowInd
if (!rowRect.intersects(rect))
return;
- RenderStyle* style = getPopupClientStyleForRow(m_popupClient, rowIndex);
+ PopupMenuStyle style = m_popupClient->itemStyle(rowIndex);
// Paint background
Color backColor, textColor;
@@ -703,16 +714,26 @@ void PopupListBox::paintRow(GraphicsContext* gc, const IntRect& rect, int rowInd
backColor = theme()->activeListBoxSelectionBackgroundColor();
textColor = theme()->activeListBoxSelectionForegroundColor();
} else {
- backColor = m_popupClient->itemBackgroundColor(rowIndex);
- textColor = style->color();
+ backColor = style.backgroundColor();
+ textColor = style.foregroundColor();
}
// If we have a transparent background, make sure it has a color to blend
// against.
if (backColor.hasAlpha())
- gc->fillRect(rowRect, Color::white);
+ gc->fillRect(rowRect, Color::white);
gc->fillRect(rowRect, backColor);
+
+ if (m_popupClient->itemIsSeparator(rowIndex)) {
+ IntRect separatorRect(
+ rowRect.x() + separatorPadding,
+ rowRect.y() + (rowRect.height() - separatorHeight) / 2,
+ rowRect.width() - 2 * separatorPadding, separatorHeight);
+ gc->fillRect(separatorRect, textColor);
+ return;
+ }
+
gc->setFillColor(textColor);
Font itemFont = getRowFont(rowIndex);
@@ -723,22 +744,22 @@ void PopupListBox::paintRow(GraphicsContext* gc, const IntRect& rect, int rowInd
unsigned length = itemText.length();
const UChar* str = itemText.characters();
- TextRun textRun(str, length, false, 0, 0, style->direction() == RTL, style->unicodeBidi() == Override);
+ TextRun textRun(str, length, false, 0, 0, itemText.defaultWritingDirection() == WTF::Unicode::RightToLeft);
+
+ // TODO(ojan): http://b/1210481 We should get the padding of individual
+ // option elements. This probably implies changes to PopupMenuClient.
// Draw the item text
- // TODO(ojan): http://b/1210481 We should get the padding of individual option elements.
- rowRect.move(theme()->popupInternalPaddingLeft(style), itemFont.ascent());
- if (style->direction() == RTL) {
- // Right-justify the text for RTL style.
- rowRect.move(rowRect.width() - itemFont.width(textRun) -
- 2 * theme()->popupInternalPaddingLeft(style), 0);
+ if (style.isVisible()) {
+ int textX = max(0, m_popupClient->clientPaddingLeft() - m_popupClient->clientInsetLeft());
+ int textY = rowRect.y() + itemFont.ascent() + (rowRect.height() - itemFont.height()) / 2;
+ gc->drawBidiText(textRun, IntPoint(textX, textY));
}
- gc->drawBidiText(textRun, rowRect.location());
}
Font PopupListBox::getRowFont(int rowIndex)
{
- Font itemFont = m_popupClient->itemStyle(rowIndex)->font();
+ Font itemFont = m_popupClient->itemStyle(rowIndex).font();
if (m_popupClient->itemIsLabel(rowIndex)) {
// Bold-ify labels (ie, an <optgroup> heading).
FontDescription d = itemFont.fontDescription();
@@ -767,7 +788,7 @@ void PopupListBox::abandon()
int PopupListBox::pointToRowIndex(const IntPoint& point)
{
- int y = contentsY() + point.y();
+ int y = scrollY() + point.y();
// TODO(mpcomplete): binary search if perf matters.
for (int i = 0; i < numItems(); ++i) {
@@ -818,10 +839,7 @@ void PopupListBox::setOriginalIndex(int index)
int PopupListBox::getRowHeight(int index)
{
- RenderStyle* style;
- if ((index < 0) || (!(style = m_popupClient->itemStyle(index))))
- style = m_popupClient->clientStyle();
- return style->font().height();
+ return m_popupClient->itemStyle(index).font().height();
}
IntRect PopupListBox::getRowBounds(int index)
@@ -838,7 +856,7 @@ void PopupListBox::invalidateRow(int index)
if (index < 0)
return;
- updateContents(getRowBounds(index));
+ invalidateRect(getRowBounds(index));
}
void PopupListBox::scrollToRevealRow(int index)
@@ -848,12 +866,12 @@ void PopupListBox::scrollToRevealRow(int index)
IntRect rowRect = getRowBounds(index);
- if (rowRect.y() < contentsY()) {
+ if (rowRect.y() < scrollY()) {
// Row is above current scroll position, scroll up.
- ScrollView::setContentsPos(0, rowRect.y());
- } else if (rowRect.bottom() > contentsY() + visibleHeight()) {
+ ScrollView::setScrollPosition(IntPoint(0, rowRect.y()));
+ } else if (rowRect.bottom() > scrollY() + visibleHeight()) {
// Row is below current scroll position, scroll down.
- ScrollView::setContentsPos(0, rowRect.bottom() - visibleHeight());
+ ScrollView::setScrollPosition(IntPoint(0, rowRect.bottom() - visibleHeight()));
}
}
@@ -946,10 +964,9 @@ void PopupListBox::layout()
int width = itemFont.width(TextRun(text));
baseWidth = max(baseWidth, width);
}
- RenderStyle* style = getPopupClientStyleForRow(m_popupClient, i);
// TODO(ojan): http://b/1210481 We should get the padding of individual option elements.
paddingWidth = max(paddingWidth,
- theme()->popupInternalPaddingLeft(style) + theme()->popupInternalPaddingRight(style));
+ m_popupClient->clientPaddingLeft() + m_popupClient->clientPaddingRight());
}
int windowHeight = 0;
@@ -970,7 +987,7 @@ void PopupListBox::layout()
// Set our widget and scrollable contents sizes.
int scrollbarWidth = 0;
if (m_visibleRows < numItems())
- scrollbarWidth = PlatformScrollbar::verticalScrollbarWidth();
+ scrollbarWidth = ScrollbarTheme::nativeTheme()->scrollbarThickness();
int windowWidth = baseWidth + scrollbarWidth + paddingWidth;
int contentWidth = baseWidth;
@@ -983,8 +1000,10 @@ void PopupListBox::layout()
}
resize(windowWidth, windowHeight);
- resizeContents(contentWidth, getRowBounds(numItems() - 1).bottom());
- scrollToRevealSelection();
+ setContentsSize(IntSize(contentWidth, getRowBounds(numItems() - 1).bottom()));
+
+ if (hostWindow())
+ scrollToRevealSelection();
invalidate();
}
@@ -1042,7 +1061,7 @@ void PopupMenu::show(const IntRect& r, FrameView* v, int index)
location.move(0, r.height());
IntRect popupRect(location, r.size());
- p.m_popup->setFrameGeometry(popupRect);
+ p.m_popup->setFrameRect(popupRect);
p.m_popup->showPopup(v);
}
diff --git a/webkit/port/platform/chromium/ScrollViewChromium.cpp b/webkit/port/platform/chromium/ScrollViewChromium.cpp
deleted file mode 100644
index b773243..0000000
--- a/webkit/port/platform/chromium/ScrollViewChromium.cpp
+++ /dev/null
@@ -1,1251 +0,0 @@
-/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "ScrollView.h"
-
-#include "Chrome.h"
-#include "ChromeClient.h"
-#include "FloatRect.h"
-#include "FocusController.h"
-#include "Frame.h"
-#include "FrameView.h"
-#include "GraphicsContext.h"
-#include "IntRect.h"
-#include "NotImplemented.h"
-#include "Page.h"
-#include "PlatformScrollBar.h"
-#include "PlatformMouseEvent.h"
-#include "PlatformWheelEvent.h"
-#include "Range.h"
-#include "RenderTheme.h"
-#include "ScrollBar.h"
-#include "SkiaUtils.h"
-#include "WidgetClientChromium.h"
-#include <algorithm>
-#include <wtf/Assertions.h>
-#include <wtf/HashSet.h>
-
-#undef LOG
-#include "base/gfx/platform_canvas.h"
-#include "webkit/glue/webframe_impl.h"
-#include "webkit/glue/webview_impl.h"
-
-using namespace std;
-
-namespace WebCore {
-
-class ScrollView::ScrollViewPrivate : public ScrollbarClient {
-public:
- ScrollViewPrivate(ScrollView* view)
- : m_view(view)
- , m_hasStaticBackground(false)
- , m_scrollbarsSuppressed(false)
- , m_inUpdateScrollbars(false)
- , m_scrollbarsAvoidingResizer(0)
- , m_vScrollbarMode(ScrollbarAuto)
- , m_hScrollbarMode(ScrollbarAuto)
- , m_visible(false)
- , m_attachedToWindow(false)
- , m_panScrollIconPoint(0,0)
- , m_drawPanScrollIcon(false)
- {
- }
-
- ~ScrollViewPrivate()
- {
- setHasHorizontalScrollbar(false);
- setHasVerticalScrollbar(false);
- }
-
- void setHasHorizontalScrollbar(bool hasBar);
- void setHasVerticalScrollbar(bool hasBar);
-
- virtual void valueChanged(Scrollbar*);
- virtual IntRect windowClipRect() const;
- virtual bool isActive() const;
-
- void scrollBackingStore(const IntSize& scrollDelta);
-
- // Get the vector containing the result from the FindInPage operation.
- const Vector<RefPtr<Range> >* getTickmarks() const;
-
- // Retrieves the index of the active tickmark for a given frame. If the
- // frame does not have an active tickmark (for example if the active
- // tickmark resides in another frame) this function returns kNoTickmark.
- size_t getActiveTickmarkIndex() const;
-
- // This is a helper function for accessing the bitmaps that have been cached
- // in the renderer.
- const SkBitmap* GetPreloadedBitmapFromRenderer(int resource_id) const;
-
- // Highlight the matches found during FindInPage operation.
- void highlightMatches(GraphicsContext* context) const;
-
- // Highlights the node selected in the DOM inspector.
- void highlightInspectedNode(GraphicsContext* context, Frame* frame) const;
-
-#if PLATFORM(WIN_OS)
- // Highlight a certain Range on the page.
- void highlightRange(HDC hdc, HDC mem_dc, RefPtr<Range> range) const;
-#endif
-
- void setAllowsScrolling(bool);
- bool allowsScrolling() const;
-
- ScrollView* m_view;
- IntSize m_scrollOffset;
- IntSize m_contentsSize;
- bool m_hasStaticBackground;
- bool m_scrollbarsSuppressed;
- bool m_inUpdateScrollbars;
- int m_scrollbarsAvoidingResizer;
- ScrollbarMode m_vScrollbarMode;
- ScrollbarMode m_hScrollbarMode;
- RefPtr<PlatformScrollbar> m_vBar;
- RefPtr<PlatformScrollbar> m_hBar;
- HashSet<Widget*> m_children;
- bool m_visible;
- bool m_attachedToWindow;
- IntPoint m_panScrollIconPoint;
- bool m_drawPanScrollIcon;
-};
-
-const int panIconSizeLength = 20;
-
-void ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar(bool hasBar)
-{
- if (Scrollbar::hasPlatformScrollbars()) {
- if (hasBar && !m_hBar) {
- m_hBar = PlatformScrollbar::create(this, HorizontalScrollbar, RegularScrollbar);
- m_view->addChild(m_hBar.get());
- } else if (!hasBar && m_hBar) {
- m_view->removeChild(m_hBar.get());
- m_hBar = 0;
- }
- }
-}
-
-void ScrollView::ScrollViewPrivate::setHasVerticalScrollbar(bool hasBar)
-{
- if (Scrollbar::hasPlatformScrollbars()) {
- if (hasBar && !m_vBar) {
- m_vBar = PlatformScrollbar::create(this, VerticalScrollbar, RegularScrollbar);
- m_view->addChild(m_vBar.get());
- } else if (!hasBar && m_vBar) {
- m_view->removeChild(m_vBar.get());
- m_vBar = 0;
- }
- }
-}
-
-void ScrollView::ScrollViewPrivate::valueChanged(Scrollbar* bar)
-{
- // Figure out if we really moved.
- IntSize newOffset = m_scrollOffset;
- if (bar) {
- if (bar == m_hBar)
- newOffset.setWidth(bar->value());
- else if (bar == m_vBar)
- newOffset.setHeight(bar->value());
- }
- IntSize scrollDelta = newOffset - m_scrollOffset;
- if (scrollDelta == IntSize())
- return;
- m_scrollOffset = newOffset;
-
- if (m_scrollbarsSuppressed)
- return;
-
- scrollBackingStore(scrollDelta);
-
- if (Frame* frame = static_cast<FrameView*>(m_view)->frame()) {
- frame->sendScrollEvent();
-
- // Inform the delegate that the scroll position has changed.
- WidgetClientChromium* client =
- static_cast<WidgetClientChromium*>(m_view->client());
- if (client)
- client->onScrollPositionChanged(m_view);
- }
-}
-
-void ScrollView::ScrollViewPrivate::scrollBackingStore(const IntSize& scrollDelta)
-{
- // Since scrolling is double buffered, we will be blitting the scroll view's intersection
- // with the clip rect every time to keep it smooth.
-
- IntRect clipRect = m_view->windowClipRect();
- IntRect scrollViewRect = m_view->convertToContainingWindow(IntRect(0, 0, m_view->visibleWidth(), m_view->visibleHeight()));
-
- // Negative when our frame is smaller than the min scrollbar width.
- if (scrollViewRect.width() < 0)
- scrollViewRect.setWidth(0);
- if (scrollViewRect.height() < 0)
- scrollViewRect.setHeight(0);
-
- if (!m_hasStaticBackground) { // The main frame can just blit the WebView window
- // FIXME: Find a way to blit subframes without blitting overlapping content
- m_view->scrollBackingStore(-scrollDelta.width(), -scrollDelta.height(), scrollViewRect, clipRect);
- } else {
- IntRect updateRect = clipRect;
- updateRect.intersect(scrollViewRect);
-
- // We need to go ahead and repaint the entire backing store. Do it now before moving the
- // plugins.
- m_view->addToDirtyRegion(updateRect);
- m_view->updateBackingStore();
- }
-
- // This call will move child HWNDs (plugins) and invalidate them as well.
- m_view->geometryChanged();
-}
-
-void ScrollView::ScrollViewPrivate::setAllowsScrolling(bool flag)
-{
- if (flag && m_vScrollbarMode == ScrollbarAlwaysOff)
- m_vScrollbarMode = ScrollbarAuto;
- else if (!flag)
- m_vScrollbarMode = ScrollbarAlwaysOff;
-
- if (flag && m_hScrollbarMode == ScrollbarAlwaysOff)
- m_hScrollbarMode = ScrollbarAuto;
- else if (!flag)
- m_hScrollbarMode = ScrollbarAlwaysOff;
-
- m_view->updateScrollbars(m_scrollOffset);
-}
-
-bool ScrollView::ScrollViewPrivate::allowsScrolling() const
-{
- // Return YES if either horizontal or vertical scrolling is allowed.
- return m_hScrollbarMode != ScrollbarAlwaysOff || m_vScrollbarMode != ScrollbarAlwaysOff;
-}
-
-IntRect ScrollView::ScrollViewPrivate::windowClipRect() const
-{
- // FrameView::windowClipRect() will exclude the scrollbars, but here we
- // want to include them, so we are forced to cast to FrameView in order to
- // call the non-virtual version of windowClipRect :-(
- //
- // The non-frame case exists to support FramelessScrollView.
-
- const FrameView* frameView = static_cast<const FrameView*>(m_view);
- if (frameView->frame())
- return frameView->windowClipRect(false);
-
- return m_view->windowClipRect();
-}
-
-bool ScrollView::ScrollViewPrivate::isActive() const
-{
- Page* page = static_cast<const FrameView*>(m_view)->frame()->page();
- return page && page->focusController()->isActive();
-}
-
-const Vector<RefPtr<Range> >* ScrollView::ScrollViewPrivate::getTickmarks() const
-{
- FrameView* view = static_cast<FrameView*>(m_view);
- ASSERT(view);
- Frame* frame = view->frame();
-
- if (!frame)
- return NULL; // NOTE: Frame can be null for dropdown boxes.
-
- WidgetClientChromium* c =
- static_cast<WidgetClientChromium*>(m_view->client());
- ASSERT(c);
- return c->getTickmarks(view->frame());
-}
-
-size_t ScrollView::ScrollViewPrivate::getActiveTickmarkIndex() const
-{
- FrameView* view = static_cast<FrameView*>(m_view);
- ASSERT(view);
- Frame* frame = view->frame();
-
- // NOTE: Frame can be null for dropdown boxes.
- if (!frame)
- return WidgetClientChromium::kNoTickmark;
-
- WidgetClientChromium* c =
- static_cast<WidgetClientChromium*>(m_view->client());
- ASSERT(c);
- return c->getActiveTickmarkIndex(view->frame());
-}
-
-const SkBitmap* ScrollView::ScrollViewPrivate::GetPreloadedBitmapFromRenderer(
- int resource_id) const
-{
- WidgetClientChromium* c =
- static_cast<WidgetClientChromium*>(m_view->client());
- if (!c)
- return NULL;
-
- return c->getPreloadedResourceBitmap(resource_id);
-}
-
-#if PLATFORM(WIN_OS)
-void ScrollView::ScrollViewPrivate::highlightMatches(
- GraphicsContext* context) const
-{
- if (context->paintingDisabled())
- return;
-
- const Vector<RefPtr<Range> >* tickmarks = getTickmarks();
- if (!tickmarks || tickmarks->isEmpty())
- return;
-
- context->save();
- context->translate(m_view->x(), m_view->y());
-
- // NOTE: We tolerate the platformContext() call here because the scrollbars
- // will not be serialized, i.e. composition is done in the renderer and
- // never in the browser.
- // Prepare for drawing the arrows along the scroll bar.
- gfx::PlatformCanvas* canvas = context->platformContext()->canvas();
-
- int horz_start = 0;
- int horz_end = m_view->width();
- int vert_start = 0;
- int vert_end = m_view->height();
-
- if (m_vBar) {
- // Account for the amount of scrolling on the vertical scroll bar.
- vert_start += m_scrollOffset.height();
- vert_end += m_scrollOffset.height();
- // Don't draw atop the vertical scrollbar.
- horz_end -= PlatformScrollbar::verticalScrollbarWidth() + 1;
- }
-
- if (m_hBar) {
- // Account for the amount of scrolling on the horizontal scroll bar.
- horz_start += m_scrollOffset.width();
- horz_end += m_scrollOffset.width();
- // Don't draw atop the horizontal scrollbar.
- vert_end -= PlatformScrollbar::horizontalScrollbarHeight() + 1;
- }
-
- HDC hdc = canvas->beginPlatformPaint();
-
- // We create a memory DC, copy the bits we want to highlight to the DC and
- // then MERGE_COPY pieces of it back with a yellow brush selected (which
- // gives them yellow highlighting).
- HDC mem_dc = CreateCompatibleDC(hdc);
- HBITMAP mem_bmp = CreateCompatibleBitmap(hdc, m_view->width(),
- m_view->height());
- HGDIOBJ old_bmp = SelectObject(mem_dc, mem_bmp);
-
- // Now create a brush for hit highlighting. This is needed for the MERGECOPY
- // to paint a yellow highlight onto the matches found. For more details, see
- // the documentation for BitBlt.
- static const COLORREF kFillColor = RGB(255, 250, 150); // Light yellow.
- HGDIOBJ inactive_brush = CreateSolidBrush(kFillColor);
- static const COLORREF kFillColorActive = RGB(255, 150, 50); // Orange.
- HGDIOBJ active_brush = CreateSolidBrush(kFillColorActive);
- HGDIOBJ old_brush = SelectObject(hdc, inactive_brush);
-
- // Keep a copy of what's on screen, so we can MERGECOPY it back later for
- // the purpose of highlighting the text.
- BitBlt(mem_dc, 0, 0, m_view->width(), m_view->height(),
- hdc, 0, 0, SRCCOPY);
-
- const size_t active_tickmark = getActiveTickmarkIndex();
- for (Vector<RefPtr<Range> >::const_iterator i = tickmarks->begin();
- i != tickmarks->end(); ++i) {
- const RefPtr<Range> range = (*i);
- const IntRect& bounds = range->boundingBox();
- // To highlight the word, we check if the rectangle boundary is within
- // the bounds vertically as well as horizontally.
- if (bounds.bottomRight().y() > vert_start &&
- bounds.topLeft().y() < vert_end &&
- bounds.bottomRight().x() > horz_start &&
- bounds.topLeft().x() < horz_end &&
- WebFrameImpl::RangeShouldBeHighlighted(range.get())) {
- // We highlight the active tick-mark with a green color instead
- // of the normal yellow color.
- SelectObject(hdc, ((i - tickmarks->begin()) == active_tickmark) ?
- active_brush : inactive_brush);
- highlightRange(hdc, mem_dc, range);
- }
- }
-
- SelectObject(mem_dc, old_brush);
- DeleteObject(active_brush);
- DeleteObject(inactive_brush);
-
- SelectObject(mem_dc, old_bmp);
- DeleteObject(mem_bmp);
-
- DeleteDC(mem_dc);
-
- canvas->endPlatformPaint();
- context->restore();
-}
-#else
-void ScrollView::ScrollViewPrivate::highlightMatches(
- GraphicsContext* context) const
-{
- notImplemented();
-}
-#endif
-
-// TODO(ojan): http://b/1143983 make this work for inline elements as they can
-// wrap (use highlightRange instead?)
-void ScrollView::ScrollViewPrivate::highlightInspectedNode(
- GraphicsContext* context, Frame* frame) const
-{
- WebViewImpl* c = static_cast<WebViewImpl*>(m_view->client());
- const WebCore::Node* inspected_node = c->getInspectedNode(frame);
-
- if (!inspected_node)
- return;
-
-#if !PLATFORM(CG)
- SkPaint paint;
- paint.setARGB(122, 255, 225, 0); // Yellow
-
- // TODO(ojan): http://b/1143991 Once we sync a Skia version that supports
- // it, use SkPorterDuff::kScreenMode and remove the transparency.
- // Then port highlightMatches/highlightRanges to use this as well.
- // Although, perhaps the web inspector really should be using
- // an alpha overlay? It's less pretty, but more clear what node
- // is being overlayed. In this case, the TODO is to make
- // highlightMatches/Ranges use Skia and to leave this as is.
- //
- // paint.setPorterDuffXfermode(SkPorterDuff::kScreenMode);
-
- // TODO(ojan): http://b/1143975 Draw the padding/border/margin boxes in
- // different colors.
- context->platformContext()->paintSkPaint(inspected_node->getRect(), paint);
-#else
- CGContextRef cg_context = context->platformContext();
- CGContextSaveGState(cg_context);
- CGContextSetRGBFillColor(cg_context, 0.4784, 1.0, 0.8824, 1.0);
- CGContextSetRGBStrokeColor(cg_context, 0.4784, 1.0, 0.8824, 1.0);
- CGContextFillRect(cg_context, inspected_node->getRect());
- CGContextRestoreGState(cg_context);
-#endif
-}
-
-#if PLATFORM(WIN_OS)
-void ScrollView::ScrollViewPrivate::highlightRange(HDC hdc, HDC mem_dc,
- RefPtr<Range> range) const {
- // We need to figure out whether the match that we want to
- // highlight is on a single line or on multiple lines.
- IntRect start = VisiblePosition(range->startPosition()).caretRect();
- IntRect end = VisiblePosition(range->endPosition()).caretRect();
- IntRect bounds = range->boundingBox();
-
- // Multi-line bounds have different y pos for start and end.
- if (start.y() == end.y()) {
- int x = bounds.topLeft().x() - m_scrollOffset.width();
- int y = bounds.topLeft().y() - m_scrollOffset.height();
- int w = bounds.bottomRight().x() - bounds.topLeft().x() + 1;
- int h = bounds.bottomRight().y() - bounds.topLeft().y() + 1;
-
- // MERGECOPY the relevant bits back, creating a highlight.
- BitBlt(hdc, x, y, w, h, mem_dc, x, y, MERGECOPY);
- } else {
- // Multi line bounds, for example, when we need to highlight
- // all the numbers (and only the numbers) in this block of
- // text:
- //
- // xxxxxxxxxxxxxxxx11111111
- // 222222222222222222222222
- // 222222222222222222222222
- // 333333333333333xxxxxxxxx
- //
- // In this case, the bounding box will contain all the text,
- // (including the exes (x)). We highlight in three steps.
- // First we highlight the segment containing the ones (1)
- // above. Then the whole middle section is highlighted, or the
- // twos (2), and finally the remaining segment consisting of
- // the threes (3) is highlighted.
-
- const int row_height = start.height();
- int x = 0, y = 0, w = 0, h = 0;
-
- // The start and end caret can be outside the bounding box, for leading
- // and trailing whitespace and we should not highlight those.
- if (start.intersects(bounds)) {
- // Highlight the first segment.
- x = start.x() - m_scrollOffset.width();
- y = start.y() - m_scrollOffset.height();
- w = bounds.topRight().x() - start.x() + 1;
- h = row_height;
-
- BitBlt(hdc, x, y, w, h, mem_dc, x, y, MERGECOPY);
- }
-
- // Figure out how large the middle section is.
- int rows_between = (end.y() - start.y()) / row_height - 1;
-
- if (rows_between > 0) {
- // Highlight the middle segment.
- x = bounds.x() - m_scrollOffset.width();
- y = bounds.y() - m_scrollOffset.height() + row_height;
- w = bounds.width();
- h = rows_between * row_height;
-
- BitBlt(hdc, x, y, w, h, mem_dc, x, y, MERGECOPY);
- }
-
- // The end caret might not intersect the bounding box, for example
- // when highlighting the last letter of a line that wraps. In that
- // case the end caret is set to the beginning of the next line, and
- // since it doesn't intersect with the bounding box we don't need to
- // highlight.
- if (end.intersects(bounds)) {
- // Highlight the remaining segment.
- x = bounds.bottomLeft().x() - m_scrollOffset.width();
- y = bounds.bottomLeft().y() - m_scrollOffset.height() -
- row_height + 1;
- w = end.x() - bounds.bottomLeft().x();
- h = row_height;
-
- BitBlt(hdc, x, y, w, h, mem_dc, x, y, MERGECOPY);
- }
- }
-}
-#endif
-
-ScrollView::ScrollView()
-{
- m_data = new ScrollViewPrivate(this);
-}
-
-ScrollView::~ScrollView()
-{
- delete m_data;
-}
-
-void ScrollView::updateContents(const IntRect& rect, bool now)
-{
- if (rect.isEmpty())
- return;
-
- IntRect containingWindowRect = contentsToWindow(rect);
-
- if (containingWindowRect.x() < 0)
- containingWindowRect.setX(0);
- if (containingWindowRect.y() < 0)
- containingWindowRect.setY(0);
-
- updateWindowRect(containingWindowRect, now);
-}
-
-void ScrollView::updateWindowRect(const IntRect& rect, bool now)
-{
- // TODO(dglazkov): make sure this is actually the right way to do this
-
- // Cache the dirty spot.
- addToDirtyRegion(rect);
-
- // since painting always happens asynchronously, we don't have a way to
- // honor the "now" parameter. it is unclear if it matters.
- if (now) {
- // TODO(iyengar): Should we force a layout to occur here?
- geometryChanged();
- }
-}
-
-void ScrollView::update()
-{
- // TODO(iyengar): Should we force a layout to occur here?
- geometryChanged();
-}
-
-int ScrollView::visibleWidth() const
-{
- return width() - (m_data->m_vBar ? m_data->m_vBar->width() : 0);
-}
-
-int ScrollView::visibleHeight() const
-{
- return height() - (m_data->m_hBar ? m_data->m_hBar->height() : 0);
-}
-
-FloatRect ScrollView::visibleContentRect() const
-{
- return FloatRect(contentsX(), contentsY(), visibleWidth(), visibleHeight());
-}
-
-FloatRect ScrollView::visibleContentRectConsideringExternalScrollers() const
-{
- // external scrollers not supported for now
- return visibleContentRect();
-}
-
-void ScrollView::setContentsPos(int newX, int newY)
-{
- int dx = newX - contentsX();
- int dy = newY - contentsY();
- scrollBy(dx, dy);
-}
-
-void ScrollView::resizeContents(int w, int h)
-{
- IntSize newContentsSize(w, h);
- if (m_data->m_contentsSize != newContentsSize) {
- m_data->m_contentsSize = newContentsSize;
- updateScrollbars(m_data->m_scrollOffset);
- }
-}
-
-void ScrollView::setFrameGeometry(const IntRect& newGeometry)
-{
- IntRect normalizedNewGeometry = newGeometry;
-
- // Webkit sometimes attempts to set negative sizes due to
- // sloppy calculations of width with margins and such.
- // (RenderPart:updateWidgetPosition is one example.)
- // Safeguard against this and prevent negative heights/widths.
- if (normalizedNewGeometry.width() < 0)
- normalizedNewGeometry.setWidth(0);
- if (normalizedNewGeometry.height() < 0)
- normalizedNewGeometry.setHeight(0);
-
- IntRect oldGeometry = frameGeometry();
- Widget::setFrameGeometry(normalizedNewGeometry);
-
- if (normalizedNewGeometry == oldGeometry)
- return;
-
- if (normalizedNewGeometry.width() != oldGeometry.width() ||
- normalizedNewGeometry.height() != oldGeometry.height()) {
- updateScrollbars(m_data->m_scrollOffset);
-
- // when used to display a popup menu, we do not have a frame
- FrameView* frameView = static_cast<FrameView*>(this);
- if (frameView->frame())
- frameView->setNeedsLayout();
- }
-
- geometryChanged();
-}
-
-int ScrollView::contentsX() const
-{
- return scrollOffset().width();
-}
-
-int ScrollView::contentsY() const
-{
- return scrollOffset().height();
-}
-
-int ScrollView::contentsWidth() const
-{
- return m_data->m_contentsSize.width();
-}
-
-int ScrollView::contentsHeight() const
-{
- return m_data->m_contentsSize.height();
-}
-
-IntPoint ScrollView::windowToContents(const IntPoint& windowPoint) const
-{
- IntPoint viewPoint = convertFromContainingWindow(windowPoint);
- return viewPoint + scrollOffset();
-}
-
-IntPoint ScrollView::contentsToWindow(const IntPoint& contentsPoint) const
-{
- IntPoint viewPoint = contentsPoint - scrollOffset();
- return convertToContainingWindow(viewPoint);
-}
-
-IntPoint ScrollView::convertChildToSelf(const Widget* child, const IntPoint& point) const
-{
- IntPoint newPoint = point;
- if (child != m_data->m_hBar && child != m_data->m_vBar)
- newPoint = point - scrollOffset();
- return Widget::convertChildToSelf(child, newPoint);
-}
-
-IntPoint ScrollView::convertSelfToChild(const Widget* child, const IntPoint& point) const
-{
- IntPoint newPoint = point;
- if (child != m_data->m_hBar && child != m_data->m_vBar)
- newPoint = point + scrollOffset();
- return Widget::convertSelfToChild(child, newPoint);
-}
-
-IntSize ScrollView::scrollOffset() const
-{
- return m_data->m_scrollOffset;
-}
-
-IntSize ScrollView::maximumScroll() const
-{
- // We should not check whether scrolling is allowed for this view before calculating
- // the maximumScroll. Please refer to http://b/issue?id=1164704, where in scrolling
- // would not work on a scrollview created with scrollbars disabled. The current
- // behavior mirrors Safari's webkit implementation. Firefox also behaves similarly.
- IntSize delta = (m_data->m_contentsSize - IntSize(visibleWidth(), visibleHeight())) - scrollOffset();
- delta.clampNegativeToZero();
- return delta;
-}
-
-void ScrollView::scrollBy(int dx, int dy)
-{
- IntSize scrollOffset = m_data->m_scrollOffset;
- IntSize newScrollOffset = scrollOffset + IntSize(dx, dy).shrunkTo(maximumScroll());
- newScrollOffset.clampNegativeToZero();
-
- if (newScrollOffset == scrollOffset)
- return;
-
- updateScrollbars(newScrollOffset);
-}
-
-void ScrollView::scrollRectIntoViewRecursively(const IntRect& r)
-{
- IntPoint p(max(0, r.x()), max(0, r.y()));
- ScrollView* view = this;
- while (view) {
- view->setContentsPos(p.x(), p.y());
- p.move(view->x() - view->scrollOffset().width(), view->y() - view->scrollOffset().height());
- view = static_cast<ScrollView*>(view->parent());
- }
-}
-
-WebCore::ScrollbarMode ScrollView::hScrollbarMode() const
-{
- return m_data->m_hScrollbarMode;
-}
-
-WebCore::ScrollbarMode ScrollView::vScrollbarMode() const
-{
- return m_data->m_vScrollbarMode;
-}
-
-void ScrollView::suppressScrollbars(bool suppressed, bool repaintOnSuppress)
-{
- m_data->m_scrollbarsSuppressed = suppressed;
- if (repaintOnSuppress && !suppressed) {
- if (m_data->m_hBar)
- m_data->m_hBar->invalidate();
- if (m_data->m_vBar)
- m_data->m_vBar->invalidate();
-
- // Invalidate the scroll corner too on unsuppress.
- IntRect hCorner;
- if (m_data->m_hBar && width() - m_data->m_hBar->width() > 0) {
- hCorner = IntRect(m_data->m_hBar->width(),
- height() - m_data->m_hBar->height(),
- width() - m_data->m_hBar->width(),
- m_data->m_hBar->height());
- invalidateRect(hCorner);
- }
-
- if (m_data->m_vBar && height() - m_data->m_vBar->height() > 0) {
- IntRect vCorner(width() - m_data->m_vBar->width(),
- m_data->m_vBar->height(),
- m_data->m_vBar->width(),
- height() - m_data->m_vBar->height());
- if (vCorner != hCorner)
- invalidateRect(vCorner);
- }
- }
-}
-
-void ScrollView::setHScrollbarMode(ScrollbarMode newMode)
-{
- if (m_data->m_hScrollbarMode != newMode) {
- m_data->m_hScrollbarMode = newMode;
- updateScrollbars(m_data->m_scrollOffset);
- }
-}
-
-void ScrollView::setVScrollbarMode(ScrollbarMode newMode)
-{
- if (m_data->m_vScrollbarMode != newMode) {
- m_data->m_vScrollbarMode = newMode;
- updateScrollbars(m_data->m_scrollOffset);
- }
-}
-
-void ScrollView::setScrollbarsMode(ScrollbarMode newMode)
-{
- if (m_data->m_hScrollbarMode != newMode ||
- m_data->m_vScrollbarMode != newMode) {
- m_data->m_hScrollbarMode = m_data->m_vScrollbarMode = newMode;
- updateScrollbars(m_data->m_scrollOffset);
- }
-}
-
-void ScrollView::setStaticBackground(bool flag)
-{
- m_data->m_hasStaticBackground = flag;
-}
-
-void ScrollView::updateScrollbars(const IntSize& desiredOffset)
-{
- // Don't allow re-entrancy into this function.
- if (m_data->m_inUpdateScrollbars)
- return;
-
- m_data->m_inUpdateScrollbars = true;
-
- bool hasVerticalScrollbar = m_data->m_vBar;
- bool hasHorizontalScrollbar = m_data->m_hBar;
- bool oldHasVertical = hasVerticalScrollbar;
- bool oldHasHorizontal = hasHorizontalScrollbar;
- ScrollbarMode hScroll = m_data->m_hScrollbarMode;
- ScrollbarMode vScroll = m_data->m_vScrollbarMode;
-
- const int cVerticalWidth = PlatformScrollbar::verticalScrollbarWidth();
- const int cHorizontalHeight = PlatformScrollbar::horizontalScrollbarHeight();
-
- // we may not be able to support scrollbars due to our frame geometry
- if (width() < cVerticalWidth)
- vScroll = ScrollbarAlwaysOff;
- if (height() < cHorizontalHeight)
- hScroll = ScrollbarAlwaysOff;
-
- for (int pass = 0; pass < 2; pass++) {
- bool scrollsVertically;
- bool scrollsHorizontally;
-
- if (!m_data->m_scrollbarsSuppressed && (hScroll == ScrollbarAuto || vScroll == ScrollbarAuto)) {
- // Do a layout if pending before checking if scrollbars are needed.
- if (hasVerticalScrollbar != oldHasVertical || hasHorizontalScrollbar != oldHasHorizontal)
- static_cast<FrameView*>(this)->layout();
-
- scrollsVertically = (vScroll == ScrollbarAlwaysOn) || (vScroll == ScrollbarAuto && contentsHeight() > height());
- if (scrollsVertically)
- scrollsHorizontally = (hScroll == ScrollbarAlwaysOn) || (hScroll == ScrollbarAuto && contentsWidth() + cVerticalWidth > width());
- else {
- scrollsHorizontally = (hScroll == ScrollbarAlwaysOn) || (hScroll == ScrollbarAuto && contentsWidth() > width());
- if (scrollsHorizontally)
- scrollsVertically = (vScroll == ScrollbarAlwaysOn) || (vScroll == ScrollbarAuto && contentsHeight() + cHorizontalHeight > height());
- }
- }
- else {
- scrollsHorizontally = (hScroll == ScrollbarAuto) ? hasHorizontalScrollbar : (hScroll == ScrollbarAlwaysOn);
- scrollsVertically = (vScroll == ScrollbarAuto) ? hasVerticalScrollbar : (vScroll == ScrollbarAlwaysOn);
- }
-
- if (hasVerticalScrollbar != scrollsVertically) {
- m_data->setHasVerticalScrollbar(scrollsVertically);
- hasVerticalScrollbar = scrollsVertically;
- }
-
- if (hasHorizontalScrollbar != scrollsHorizontally) {
- m_data->setHasHorizontalScrollbar(scrollsHorizontally);
- hasHorizontalScrollbar = scrollsHorizontally;
- }
- }
-
- // Set up the range (and page step/line step).
- IntSize maxScrollPosition(contentsWidth() - visibleWidth(), contentsHeight() - visibleHeight());
- IntSize scroll = desiredOffset.shrunkTo(maxScrollPosition);
- scroll.clampNegativeToZero();
-
- if (m_data->m_hBar) {
- int clientWidth = visibleWidth();
- m_data->m_hBar->setEnabled(contentsWidth() > clientWidth);
- int pageStep = (clientWidth - PAGE_KEEP);
- if (pageStep < 0) pageStep = clientWidth;
- IntRect oldRect(m_data->m_hBar->frameGeometry());
- IntRect hBarRect = IntRect(0,
- height() - m_data->m_hBar->height(),
- width() - (m_data->m_vBar ? m_data->m_vBar->width() : 0),
- m_data->m_hBar->height());
- m_data->m_hBar->setRect(hBarRect);
- if (!m_data->m_scrollbarsSuppressed && oldRect != m_data->m_hBar->frameGeometry())
- m_data->m_hBar->invalidate();
-
- if (m_data->m_scrollbarsSuppressed)
- m_data->m_hBar->setSuppressInvalidation(true);
- m_data->m_hBar->setSteps(LINE_STEP, pageStep);
- m_data->m_hBar->setProportion(clientWidth, contentsWidth());
- m_data->m_hBar->setValue(scroll.width());
- if (m_data->m_scrollbarsSuppressed)
- m_data->m_hBar->setSuppressInvalidation(false);
- }
-
- if (m_data->m_vBar) {
- int clientHeight = visibleHeight();
- m_data->m_vBar->setEnabled(contentsHeight() > clientHeight);
- int pageStep = (clientHeight - PAGE_KEEP);
- if (pageStep < 0) pageStep = clientHeight;
- IntRect oldRect(m_data->m_vBar->frameGeometry());
- IntRect vBarRect = IntRect(width() - m_data->m_vBar->width(),
- 0,
- m_data->m_vBar->width(),
- height() - (m_data->m_hBar ? m_data->m_hBar->height() : 0));
- m_data->m_vBar->setRect(vBarRect);
- if (!m_data->m_scrollbarsSuppressed && oldRect != m_data->m_vBar->frameGeometry())
- m_data->m_vBar->invalidate();
-
- if (m_data->m_scrollbarsSuppressed)
- m_data->m_vBar->setSuppressInvalidation(true);
- m_data->m_vBar->setSteps(LINE_STEP, pageStep);
- m_data->m_vBar->setProportion(clientHeight, contentsHeight());
- m_data->m_vBar->setValue(scroll.height());
- if (m_data->m_scrollbarsSuppressed)
- m_data->m_vBar->setSuppressInvalidation(false);
- }
-
- if (oldHasVertical != (m_data->m_vBar != 0) || oldHasHorizontal != (m_data->m_hBar != 0))
- geometryChanged();
-
- // See if our offset has changed in a situation where we might not have scrollbars.
- // This can happen when editing a body with overflow:hidden and scrolling to reveal selection.
- // It can also happen when maximizing a window that has scrollbars (but the new maximized result
- // does not).
- IntSize scrollDelta = scroll - m_data->m_scrollOffset;
- if (scrollDelta != IntSize()) {
- m_data->m_scrollOffset = scroll;
- m_data->scrollBackingStore(scrollDelta);
-
- // Inform the delegate that the scroll position has changed.
- WidgetClientChromium* c = static_cast<WidgetClientChromium*>(client());
- if (c)
- c->onScrollPositionChanged(this);
- }
-
- m_data->m_inUpdateScrollbars = false;
-
- ASSERT(visibleWidth() >= 0);
- ASSERT(visibleHeight() >= 0);
-}
-
-PlatformScrollbar* ScrollView::scrollbarUnderMouse(const PlatformMouseEvent& mouseEvent)
-{
- IntPoint viewPoint = convertFromContainingWindow(mouseEvent.pos());
- if (m_data->m_hBar && m_data->m_hBar->frameGeometry().contains(viewPoint))
- return m_data->m_hBar.get();
- if (m_data->m_vBar && m_data->m_vBar->frameGeometry().contains(viewPoint))
- return m_data->m_vBar.get();
- return 0;
-}
-
-void ScrollView::addChild(Widget* child)
-{
- child->setParent(this);
-
- // There is only one global widget client (which should be the WebViewImpl).
- // It is responsible for things like capturing the mouse.
- child->setClient(client());
-
- m_data->m_children.add(child);
-}
-
-void ScrollView::removeChild(Widget* child)
-{
- child->setParent(0);
- m_data->m_children.remove(child);
-}
-
-void ScrollView::paint(GraphicsContext* context, const IntRect& rect)
-{
- // FIXME: This code is here so we don't have to fork FrameView.h/.cpp.
- // In the end, FrameView should just merge with ScrollView.
- ASSERT(isFrameView());
-
- if (context->paintingDisabled())
- return;
-
- if (Frame* frame = static_cast<FrameView*>(this)->frame()) {
- IntRect documentDirtyRect = rect;
- documentDirtyRect.intersect(frameGeometry());
-
- context->save();
-
- context->translate(x(), y());
- documentDirtyRect.move(-x(), -y());
-
- context->translate(-contentsX(), -contentsY());
- documentDirtyRect.move(contentsX(), contentsY());
-
- // do not allow painting outside of the dirty rect
- context->clip(documentDirtyRect);
-
- frame->paint(context, documentDirtyRect);
-
- // Highlights the node selected in the DOM inspector.
- m_data->highlightInspectedNode(context, frame);
-
- context->restore();
- }
-
- // Highlight the matches found on the page, during a FindInPage operation.
- m_data->highlightMatches(context);
-
- // Now paint the scrollbars.
- if (!m_data->m_scrollbarsSuppressed && (m_data->m_hBar || m_data->m_vBar)) {
- context->save();
- IntRect scrollViewDirtyRect = rect;
- scrollViewDirtyRect.intersect(frameGeometry());
- context->translate(x(), y());
- scrollViewDirtyRect.move(-x(), -y());
- if (m_data->m_hBar)
- m_data->m_hBar->paint(context, scrollViewDirtyRect);
- if (m_data->m_vBar)
- m_data->m_vBar->paint(context, scrollViewDirtyRect);
-
- // Fill the scroll corner with white.
- IntRect hCorner;
- if (m_data->m_hBar && width() - m_data->m_hBar->width() > 0) {
- hCorner = IntRect(m_data->m_hBar->width(),
- height() - m_data->m_hBar->height(),
- width() - m_data->m_hBar->width(),
- m_data->m_hBar->height());
- if (hCorner.intersects(scrollViewDirtyRect))
- context->fillRect(hCorner, Color::white);
- }
-
- if (m_data->m_vBar && height() - m_data->m_vBar->height() > 0) {
- IntRect vCorner(width() - m_data->m_vBar->width(),
- m_data->m_vBar->height(),
- m_data->m_vBar->width(),
- height() - m_data->m_vBar->height());
- if (vCorner != hCorner && vCorner.intersects(scrollViewDirtyRect))
- context->fillRect(vCorner, Color::white);
- }
-
- context->restore();
- }
-}
-
-void ScrollView::themeChanged()
-{
- PlatformScrollbar::themeChanged();
- theme()->themeChanged();
- invalidate();
-}
-
-void ScrollView::wheelEvent(PlatformWheelEvent& e)
-{
- if (!m_data->allowsScrolling())
- return;
-
- // Determine how much we want to scroll. If we can move at all, we will accept the event.
- IntSize maxScrollDelta = maximumScroll();
- if ((e.deltaX() < 0 && maxScrollDelta.width() > 0) ||
- (e.deltaX() > 0 && scrollOffset().width() > 0) ||
- (e.deltaY() < 0 && maxScrollDelta.height() > 0) ||
- (e.deltaY() > 0 && scrollOffset().height() > 0)) {
- e.accept();
- scrollBy(-e.deltaX() * LINE_STEP, -e.deltaY() * LINE_STEP);
- }
-}
-
-HashSet<Widget*>* ScrollView::children()
-{
- return &(m_data->m_children);
-}
-
-void ScrollView::geometryChanged() const
-{
- HashSet<Widget*>::const_iterator end = m_data->m_children.end();
- for (HashSet<Widget*>::const_iterator current = m_data->m_children.begin(); current != end; ++current)
- (*current)->geometryChanged();
-}
-
-bool ScrollView::scroll(ScrollDirection direction, ScrollGranularity granularity)
-{
- if (direction == ScrollUp || direction == ScrollDown) {
- if (m_data->m_vBar)
- return m_data->m_vBar->scroll(direction, granularity);
- } else {
- if (m_data->m_hBar)
- return m_data->m_hBar->scroll(direction, granularity);
- }
- return false;
-}
-
-IntRect ScrollView::windowResizerRect()
-{
- return IntRect();
-}
-
-bool ScrollView::resizerOverlapsContent() const
-{
- return !m_data->m_scrollbarsAvoidingResizer;
-}
-
-void ScrollView::adjustOverlappingScrollbarCount(int overlapDelta)
-{
- int oldCount = m_data->m_scrollbarsAvoidingResizer;
- m_data->m_scrollbarsAvoidingResizer += overlapDelta;
- if (parent() && parent()->isFrameView())
- static_cast<FrameView*>(parent())->adjustOverlappingScrollbarCount(overlapDelta);
- else if (!m_data->m_scrollbarsSuppressed) {
- // If we went from n to 0 or from 0 to n and we're the outermost view,
- // we need to invalidate the windowResizerRect(), since it will now need to paint
- // differently.
- if (oldCount > 0 && m_data->m_scrollbarsAvoidingResizer == 0 ||
- oldCount == 0 && m_data->m_scrollbarsAvoidingResizer > 0)
- invalidateRect(windowResizerRect());
- }
-}
-
-void ScrollView::setParent(ScrollView* parentView)
-{
- if (!parentView && m_data->m_scrollbarsAvoidingResizer && parent() && parent()->isFrameView())
- static_cast<FrameView*>(parent())->adjustOverlappingScrollbarCount(false);
- Widget::setParent(parentView);
-}
-
-void ScrollView::addToDirtyRegion(const IntRect& containingWindowRect)
-{
- WidgetClientChromium* c = static_cast<WidgetClientChromium*>(client());
- if (c)
- c->invalidateRect(containingWindowRect);
-}
-
-void ScrollView::scrollBackingStore(int dx, int dy, const IntRect& scrollViewRect, const IntRect& clipRect)
-{
- // We don't know how to scroll in two directions at once.
- if (dx && dy) {
- IntRect updateRect = clipRect;
- updateRect.intersect(scrollViewRect);
- addToDirtyRegion(updateRect);
- return;
- }
-
- WidgetClientChromium* c = static_cast<WidgetClientChromium*>(client());
- if (c) {
- // TODO(ericroman): would be better to pass both the scroll rect
- // and clip rect up to the client and let them decide how best to
- // scroll the backing store.
- IntRect clippedScrollRect = scrollViewRect;
- clippedScrollRect.intersect(clipRect);
- c->scrollRect(dx, dy, clippedScrollRect);
- }
-}
-
-void ScrollView::updateBackingStore()
-{
- // nothing to do. painting happens asynchronously.
-}
-
-bool ScrollView::inWindow() const
-{
- WidgetClientChromium* c = static_cast<WidgetClientChromium*>(client());
- if (!c)
- return false;
-
- return !c->isHidden();
-}
-
-void ScrollView::attachToWindow()
-{
- if (m_data->m_attachedToWindow)
- return;
-
- m_data->m_attachedToWindow = true;
-
- if (m_data->m_visible) {
- HashSet<Widget*>::iterator end = m_data->m_children.end();
- for (HashSet<Widget*>::iterator it = m_data->m_children.begin(); it != end; ++it)
- (*it)->attachToWindow();
- }
-}
-
-void ScrollView::detachFromWindow()
-{
- if (!m_data->m_attachedToWindow)
- return;
-
- if (m_data->m_visible) {
- HashSet<Widget*>::iterator end = m_data->m_children.end();
- for (HashSet<Widget*>::iterator it = m_data->m_children.begin(); it != end; ++it)
- (*it)->detachFromWindow();
- }
-
- m_data->m_attachedToWindow = false;
-}
-
-void ScrollView::show()
-{
- if (!m_data->m_visible) {
- m_data->m_visible = true;
- if (isAttachedToWindow()) {
- HashSet<Widget*>::iterator end = m_data->m_children.end();
- for (HashSet<Widget*>::iterator it = m_data->m_children.begin(); it != end; ++it)
- (*it)->attachToWindow();
- }
- }
-
- Widget::show();
-}
-
-void ScrollView::hide()
-{
- if (m_data->m_visible) {
- if (isAttachedToWindow()) {
- HashSet<Widget*>::iterator end = m_data->m_children.end();
- for (HashSet<Widget*>::iterator it = m_data->m_children.begin(); it != end; ++it)
- (*it)->detachFromWindow();
- }
- m_data->m_visible = false;
- }
-
- Widget::hide();
-}
-
-bool ScrollView::isAttachedToWindow() const
-{
- return m_data->m_attachedToWindow;
-}
-
-void ScrollView::setAllowsScrolling(bool flag)
-{
- m_data->setAllowsScrolling(flag);
-}
-
-bool ScrollView::allowsScrolling() const
-{
- return m_data->allowsScrolling();
-}
-
-void ScrollView::printPanScrollIcon(const IntPoint& iconPosition)
-{
- m_data->m_drawPanScrollIcon = true;
- m_data->m_panScrollIconPoint = IntPoint(iconPosition.x() - panIconSizeLength / 2 , iconPosition.y() - panIconSizeLength / 2) ;
-
- updateWindowRect(IntRect(m_data->m_panScrollIconPoint, IntSize(panIconSizeLength,panIconSizeLength)), true);
-}
-
-void ScrollView::removePanScrollIcon()
-{
- m_data->m_drawPanScrollIcon = false;
-
- updateWindowRect(IntRect(m_data->m_panScrollIconPoint, IntSize(panIconSizeLength, panIconSizeLength)), true);
-}
-
-bool ScrollView::isScrollable()
-{
- return m_data->m_vBar != 0 || m_data->m_hBar != 0;
-}
-
-} // namespace WebCore
diff --git a/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.cpp b/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.cpp
new file mode 100644
index 0000000..e887d59
--- /dev/null
+++ b/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.cpp
@@ -0,0 +1,361 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ScrollbarThemeChromiumWin.h"
+
+#include <windows.h>
+#include <vsstyle.h>
+
+#include "GraphicsContext.h"
+#include "PlatformContextSkia.h"
+#include "PlatformMouseEvent.h"
+#include "Scrollbar.h"
+
+#include "base/gfx/native_theme.h"
+#include "base/win_util.h"
+#include "webkit/glue/webkit_glue.h"
+
+namespace WebCore {
+
+// The scrollbar size in DumpRenderTree on the Mac - so we can match their
+// layout results. Entries are for regular, small, and mini scrollbars.
+// Metrics obtained using [NSScroller scrollerWidthForControlSize:]
+static const int kMacScrollbarSize[3] = { 15, 11, 15 };
+
+static bool runningVista()
+{
+ return win_util::GetWinVersion() >= win_util::WINVERSION_VISTA;
+}
+
+static RECT toRECT(const IntRect& input)
+{
+ RECT output;
+ output.left = input.x();
+ output.right = input.right();
+ output.top = input.y();
+ output.bottom = input.bottom();
+ return output;
+}
+
+ScrollbarTheme* ScrollbarTheme::nativeTheme()
+{
+ static ScrollbarThemeChromiumWin theme;
+ return &theme;
+}
+
+ScrollbarThemeChromiumWin::ScrollbarThemeChromiumWin()
+{
+}
+
+ScrollbarThemeChromiumWin::~ScrollbarThemeChromiumWin()
+{
+}
+
+int ScrollbarThemeChromiumWin::scrollbarThickness(ScrollbarControlSize controlSize)
+{
+ static int thickness;
+ if (!thickness) {
+ if (webkit_glue::IsLayoutTestMode())
+ return kMacScrollbarSize[controlSize];
+ thickness = GetSystemMetrics(SM_CXVSCROLL);
+ }
+ return thickness;
+}
+
+void ScrollbarThemeChromiumWin::themeChanged()
+{
+}
+
+bool ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit()
+{
+ return runningVista();
+}
+
+bool ScrollbarThemeChromiumWin::hasThumb(Scrollbar* scrollbar)
+{
+ // This method is just called as a paint-time optimization to see if
+ // painting the thumb can be skipped. We don't have to be exact here.
+ return thumbLength(scrollbar) > 0;
+}
+
+IntRect ScrollbarThemeChromiumWin::backButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
+{
+ // Windows just has single arrows.
+ if (part == BackButtonEndPart)
+ return IntRect();
+
+ IntSize size = buttonSize(scrollbar);
+ return IntRect(scrollbar->x(), scrollbar->y(), size.width(), size.height());
+}
+
+IntRect ScrollbarThemeChromiumWin::forwardButtonRect(Scrollbar* scrollbar, ScrollbarPart part, bool)
+{
+ // Windows just has single arrows.
+ if (part == ForwardButtonStartPart)
+ return IntRect();
+
+ IntSize size = buttonSize(scrollbar);
+ int x, y;
+ if (scrollbar->orientation() == HorizontalScrollbar) {
+ x = scrollbar->x() + scrollbar->width() - size.width();
+ y = scrollbar->y();
+ } else {
+ x = scrollbar->x();
+ y = scrollbar->y() + scrollbar->height() - size.height();
+ }
+ return IntRect(x, y, size.width(), size.height());
+}
+
+IntRect ScrollbarThemeChromiumWin::trackRect(Scrollbar* scrollbar, bool)
+{
+ IntSize bs = buttonSize(scrollbar);
+ int thickness = scrollbarThickness();
+ if (scrollbar->orientation() == HorizontalScrollbar) {
+ if (scrollbar->width() < 2 * thickness)
+ return IntRect();
+ return IntRect(scrollbar->x() + bs.width(), scrollbar->y(), scrollbar->width() - 2 * bs.width(), thickness);
+ }
+ if (scrollbar->height() < 2 * thickness)
+ return IntRect();
+ return IntRect(scrollbar->x(), scrollbar->y() + bs.height(), thickness, scrollbar->height() - 2 * bs.height());
+}
+
+void ScrollbarThemeChromiumWin::paintTrackBackground(GraphicsContext* context, Scrollbar* scrollbar, const IntRect& rect)
+{
+ // Just assume a forward track part. We only paint the track as a single piece when there is no thumb.
+ if (!hasThumb(scrollbar))
+ paintTrackPiece(context, scrollbar, rect, ForwardTrackPart);
+}
+
+void ScrollbarThemeChromiumWin::paintTrackPiece(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart partType)
+{
+ bool horz = scrollbar->orientation() == HorizontalScrollbar;
+
+ gfx::PlatformCanvasWin* canvas = gc->platformContext()->canvas();
+ HDC hdc = canvas->beginPlatformPaint();
+
+ RECT paintRect = toRECT(rect);
+
+ int partId;
+ if (partType == BackTrackPart) {
+ partId = horz ? SBP_UPPERTRACKHORZ : SBP_UPPERTRACKVERT;
+ } else {
+ partId = horz ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
+ }
+
+ RECT alignRect = toRECT(trackRect(scrollbar, false));
+
+ // Draw the track area before/after the thumb on the scroll bar.
+ gfx::NativeTheme::instance()->PaintScrollbarTrack(
+ hdc,
+ partId,
+ getThemeState(scrollbar, partType),
+ getClassicThemeState(scrollbar, partType),
+ &paintRect,
+ &alignRect,
+ gc->platformContext()->canvas());
+
+ canvas->endPlatformPaint();
+}
+
+void ScrollbarThemeChromiumWin::paintButton(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect, ScrollbarPart part)
+{
+ bool horz = scrollbar->orientation() == HorizontalScrollbar;
+
+ gfx::PlatformCanvasWin* canvas = gc->platformContext()->canvas();
+ HDC hdc = canvas->beginPlatformPaint();
+
+ RECT paintRect = toRECT(rect);
+
+ int partId;
+ if (part == BackButtonStartPart || part == ForwardButtonStartPart) {
+ partId = horz ? DFCS_SCROLLLEFT : DFCS_SCROLLUP;
+ } else {
+ partId = horz ? DFCS_SCROLLRIGHT : DFCS_SCROLLDOWN;
+ }
+
+ // Draw the thumb (the box you drag in the scroll bar to scroll).
+ gfx::NativeTheme::instance()->PaintScrollbarArrow(
+ hdc,
+ getThemeArrowState(scrollbar, part),
+ partId | getClassicThemeState(scrollbar, part),
+ &paintRect);
+
+ canvas->endPlatformPaint();
+}
+
+void ScrollbarThemeChromiumWin::paintThumb(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect& rect)
+{
+ bool horz = scrollbar->orientation() == HorizontalScrollbar;
+
+ gfx::PlatformCanvasWin* canvas = gc->platformContext()->canvas();
+ HDC hdc = canvas->beginPlatformPaint();
+
+ RECT paintRect = toRECT(rect);
+
+ // Draw the thumb (the box you drag in the scroll bar to scroll).
+ gfx::NativeTheme::instance()->PaintScrollbarThumb(
+ hdc,
+ horz ? SBP_THUMBBTNHORZ : SBP_THUMBBTNVERT,
+ getThemeState(scrollbar, ThumbPart),
+ getClassicThemeState(scrollbar, ThumbPart),
+ &paintRect);
+
+ // Draw the gripper (the three little lines on the thumb).
+ gfx::NativeTheme::instance()->PaintScrollbarThumb(
+ hdc,
+ horz ? SBP_GRIPPERHORZ : SBP_GRIPPERVERT,
+ getThemeState(scrollbar, ThumbPart),
+ getClassicThemeState(scrollbar, ThumbPart),
+ &paintRect);
+
+ canvas->endPlatformPaint();
+}
+
+void ScrollbarThemeChromiumWin::paintScrollCorner(ScrollView* view, GraphicsContext* context, const IntRect& cornerRect)
+{
+ // ScrollbarThemeComposite::paintScrollCorner incorrectly assumes that the
+ // ScrollView is a FrameView (see FramelessScrollView), so we cannot let
+ // that code run. For FrameView's this is correct since we don't do custom
+ // scrollbar corner rendering, which ScrollbarThemeComposite supports.
+ ScrollbarTheme::paintScrollCorner(view, context, cornerRect);
+}
+
+bool ScrollbarThemeChromiumWin::shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent& evt)
+{
+ return evt.shiftKey() && evt.button() == LeftButton;
+}
+
+IntSize ScrollbarThemeChromiumWin::buttonSize(Scrollbar* scrollbar)
+{
+ // Our desired rect is essentially thickness by thickness.
+
+ // Our actual rect will shrink to half the available space when we have < 2
+ // times thickness pixels left. This allows the scrollbar to scale down
+ // and function even at tiny sizes.
+
+ // In layout test mode, we force the button "girth" (i.e., the length of
+ // the button along the axis of the scrollbar) to be a fixed size.
+ // FIXME: This is retarded! scrollbarThickness is already fixed in layout
+ // test mode so that should be enough to result in repeatable results, but
+ // preserving this hack avoids having to rebaseline pixel tests.
+ const int kLayoutTestModeGirth = 17;
+
+ int thickness = scrollbarThickness();
+ int girth = webkit_glue::IsLayoutTestMode() ? kLayoutTestModeGirth : thickness;
+ if (scrollbar->orientation() == HorizontalScrollbar) {
+ int width = scrollbar->width() < 2 * girth ? scrollbar->width() / 2 : girth;
+ return IntSize(width, thickness);
+ }
+
+ int height = scrollbar->height() < 2 * girth ? scrollbar->height() / 2 : girth;
+ return IntSize(thickness, height);
+}
+
+int ScrollbarThemeChromiumWin::getThemeState(Scrollbar* scrollbar, ScrollbarPart part) const
+{
+ // When dragging the thumb, draw thumb pressed and other segments normal
+ // regardless of where the cursor actually is. See also four places in
+ // getThemeArrowState().
+ if (scrollbar->pressedPart() == ThumbPart) {
+ if (part == ThumbPart)
+ return SCRBS_PRESSED;
+ return runningVista() ? SCRBS_HOVER : SCRBS_NORMAL;
+ }
+ if (!scrollbar->enabled())
+ return SCRBS_DISABLED;
+ if (scrollbar->hoveredPart() != part || part == BackTrackPart || part == ForwardTrackPart)
+ return (scrollbar->hoveredPart() == NoPart || !runningVista()) ? SCRBS_NORMAL : SCRBS_HOVER;
+ if (scrollbar->pressedPart() == NoPart)
+ return SCRBS_HOT;
+ return (scrollbar->pressedPart() == part) ? SCRBS_PRESSED : SCRBS_NORMAL;
+}
+
+int ScrollbarThemeChromiumWin::getThemeArrowState(Scrollbar* scrollbar, ScrollbarPart part) const
+{
+ // We could take advantage of knowing the values in the state enum to write
+ // some simpler code, but treating the state enum as a black box seems
+ // clearer and more future-proof.
+ if (part == BackButtonStartPart || part == ForwardButtonStartPart) {
+ if (scrollbar->orientation() == HorizontalScrollbar) {
+ if (scrollbar->pressedPart() == ThumbPart)
+ return !runningVista() ? ABS_LEFTNORMAL : ABS_LEFTHOVER;
+ if (!scrollbar->enabled())
+ return ABS_LEFTDISABLED;
+ if (scrollbar->hoveredPart() != part)
+ return ((scrollbar->hoveredPart() == NoPart) || !runningVista()) ? ABS_LEFTNORMAL : ABS_LEFTHOVER;
+ if (scrollbar->pressedPart() == NoPart)
+ return ABS_LEFTHOT;
+ return (scrollbar->pressedPart() == part) ?
+ ABS_LEFTPRESSED : ABS_LEFTNORMAL;
+ }
+ if (scrollbar->pressedPart() == ThumbPart)
+ return !runningVista() ? ABS_UPNORMAL : ABS_UPHOVER;
+ if (!scrollbar->enabled())
+ return ABS_UPDISABLED;
+ if (scrollbar->hoveredPart() != part)
+ return ((scrollbar->hoveredPart() == NoPart) || !runningVista()) ? ABS_UPNORMAL : ABS_UPHOVER;
+ if (scrollbar->pressedPart() == NoPart)
+ return ABS_UPHOT;
+ return (scrollbar->pressedPart() == part) ? ABS_UPPRESSED : ABS_UPNORMAL;
+ }
+ if (scrollbar->orientation() == HorizontalScrollbar) {
+ if (scrollbar->pressedPart() == ThumbPart)
+ return !runningVista() ? ABS_RIGHTNORMAL : ABS_RIGHTHOVER;
+ if (!scrollbar->enabled())
+ return ABS_RIGHTDISABLED;
+ if (scrollbar->hoveredPart() != part)
+ return ((scrollbar->hoveredPart() == NoPart) || !runningVista()) ? ABS_RIGHTNORMAL : ABS_RIGHTHOVER;
+ if (scrollbar->pressedPart() == NoPart)
+ return ABS_RIGHTHOT;
+ return (scrollbar->pressedPart() == part) ? ABS_RIGHTPRESSED : ABS_RIGHTNORMAL;
+ }
+ if (scrollbar->pressedPart() == ThumbPart)
+ return !runningVista() ? ABS_DOWNNORMAL : ABS_DOWNHOVER;
+ if (!scrollbar->enabled())
+ return ABS_DOWNDISABLED;
+ if (scrollbar->hoveredPart() != part)
+ return ((scrollbar->hoveredPart() == NoPart) || !runningVista()) ? ABS_DOWNNORMAL : ABS_DOWNHOVER;
+ if (scrollbar->pressedPart() == NoPart)
+ return ABS_DOWNHOT;
+ return (scrollbar->pressedPart() == part) ? ABS_DOWNPRESSED : ABS_DOWNNORMAL;
+}
+
+int ScrollbarThemeChromiumWin::getClassicThemeState(Scrollbar* scrollbar, ScrollbarPart part) const
+{
+ // When dragging the thumb, draw the buttons normal even when hovered.
+ if (scrollbar->pressedPart() == ThumbPart)
+ return 0;
+ if (!scrollbar->enabled())
+ return DFCS_INACTIVE;
+ if (scrollbar->hoveredPart() != part || part == BackTrackPart || part == ForwardTrackPart)
+ return 0;
+ if (scrollbar->pressedPart() == NoPart)
+ return DFCS_HOT;
+ return (scrollbar->pressedPart() == part) ? (DFCS_PUSHED | DFCS_FLAT) : 0;
+}
+
+}
diff --git a/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.h b/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.h
new file mode 100644
index 0000000..5f694da
--- /dev/null
+++ b/webkit/port/platform/chromium/ScrollbarThemeChromiumWin.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ScrollbarThemeChromiumWin_h
+#define ScrollbarThemeChromiumWin_h
+
+#include "ScrollbarThemeComposite.h"
+
+namespace WebCore {
+
+class ScrollbarThemeChromiumWin : public ScrollbarThemeComposite {
+public:
+ ScrollbarThemeChromiumWin();
+ virtual ~ScrollbarThemeChromiumWin();
+
+ virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar);
+
+ virtual void themeChanged();
+
+ virtual bool invalidateOnMouseEnterExit();
+
+protected:
+ virtual bool hasButtons(Scrollbar*) { return true; }
+ virtual bool hasThumb(Scrollbar*);
+
+ virtual IntRect backButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
+ virtual IntRect forwardButtonRect(Scrollbar*, ScrollbarPart, bool painting = false);
+ virtual IntRect trackRect(Scrollbar*, bool painting = false);
+
+ virtual void paintScrollCorner(ScrollView*, GraphicsContext*, const IntRect&);
+ virtual bool shouldCenterOnThumb(Scrollbar*, const PlatformMouseEvent&);
+
+ virtual void paintTrackBackground(GraphicsContext*, Scrollbar*, const IntRect&);
+ virtual void paintTrackPiece(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
+ virtual void paintButton(GraphicsContext*, Scrollbar*, const IntRect&, ScrollbarPart);
+ virtual void paintThumb(GraphicsContext*, Scrollbar*, const IntRect&);
+
+private:
+ IntSize buttonSize(Scrollbar*);
+ int getThemeState(Scrollbar*, ScrollbarPart) const;
+ int getThemeArrowState(Scrollbar*, ScrollbarPart) const;
+ int getClassicThemeState(Scrollbar*, ScrollbarPart) const;
+};
+
+}
+#endif
diff --git a/webkit/port/platform/chromium/TemporaryLinkStubs.cpp b/webkit/port/platform/chromium/TemporaryLinkStubs.cpp
index 25a4494..11f9459 100644
--- a/webkit/port/platform/chromium/TemporaryLinkStubs.cpp
+++ b/webkit/port/platform/chromium/TemporaryLinkStubs.cpp
@@ -36,8 +36,8 @@ MSVC_PUSH_WARNING_LEVEL(0);
MSVC_POP_WARNING();
using namespace WebCore;
-
String WebCore::signedPublicKeyAndChallengeString(unsigned, const String&, const KURL&) { notImplemented(); return String(); }
+void WebCore::getSupportedKeySizes(Vector<String>&) { notImplemented(); }
String KURL::fileSystemPath() const { notImplemented(); return String(); }
diff --git a/webkit/port/platform/chromium/WidgetChromium.cpp b/webkit/port/platform/chromium/WidgetChromium.cpp
index a36cb2c..9b84698 100644
--- a/webkit/port/platform/chromium/WidgetChromium.cpp
+++ b/webkit/port/platform/chromium/WidgetChromium.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -26,93 +26,41 @@
#include "config.h"
#include "Widget.h"
-#include "Cursor.h"
-#include "Document.h"
-#include "Element.h"
+#include "Assertions.h"
+#include "ChromeClientChromium.h"
#include "Frame.h"
#include "FrameView.h"
-#include "GraphicsContext.h"
-#include "IntRect.h"
-#include "WidgetClientChromium.h"
+#include "Page.h"
+#include "NotImplemented.h"
namespace WebCore {
-class WidgetPrivate
+ChromeClientChromium* chromeClientChromium(Widget* widget)
{
-public:
- WidgetClientChromium* client;
- ScrollView* parent;
- IntRect frameRect;
- bool enabled;
- bool suppressInvalidation;
-};
-
-Widget::Widget()
- : data(new WidgetPrivate)
-{
- data->client = 0;
- data->parent = 0;
- data->enabled = true;
- data->suppressInvalidation = false;
-}
-
-Widget::~Widget()
-{
- if (parent())
- parent()->removeChild(this);
- delete data;
-}
-
-void Widget::setContainingWindow(PlatformWidget containingWindow)
-{
- ASSERT_NOT_REACHED();
-}
-
-PlatformWidget Widget::containingWindow() const
-{
- if (!data->client)
- return NULL;
- return data->client->containingWindow();
-}
-
-void Widget::setClient(WidgetClient* c)
-{
- data->client = static_cast<WidgetClientChromium*>(c);
-}
-
-WidgetClient* Widget::client() const
-{
- return data->client;
-}
+ FrameView* view;
+ if (widget->isFrameView()) {
+ view = static_cast<FrameView*>(widget);
+ } else if (widget->parent() && widget->parent()->isFrameView()) {
+ view = static_cast<FrameView*>(widget->parent());
+ } else {
+ return 0;
+ }
-IntRect Widget::frameGeometry() const
-{
- return data->frameRect;
-}
+ Page* page = view->frame() ? view->frame()->page() : 0;
+ if (!page)
+ return 0;
-void Widget::setFrameGeometry(const IntRect &rect)
-{
- data->frameRect = rect;
+ return static_cast<ChromeClientChromium*>(page->chrome()->client());
}
-void Widget::setParent(ScrollView* v)
+Widget::Widget(PlatformWidget widget)
{
- if (!v || !v->isAttachedToWindow())
- detachFromWindow();
- data->parent = v;
- if (v && v->isAttachedToWindow())
- attachToWindow();
+ init(widget);
}
-ScrollView* Widget::parent() const
-{
- return data->parent;
-}
-
-void Widget::removeFromParent()
+Widget::~Widget()
{
- if (parent())
- parent()->removeChild(this);
+ ASSERT(!parent());
}
void Widget::show()
@@ -125,104 +73,34 @@ void Widget::hide()
void Widget::setCursor(const Cursor& cursor)
{
- if (data->client)
- data->client->setCursor(cursor);
-}
-
-IntPoint Widget::convertToContainingWindow(const IntPoint& point) const
-{
- IntPoint windowPoint = point;
- for (const Widget *parentWidget = parent(), *childWidget = this;
- parentWidget;
- childWidget = parentWidget, parentWidget = parentWidget->parent())
- windowPoint = parentWidget->convertChildToSelf(childWidget, windowPoint);
- return windowPoint;
-}
-
-IntPoint Widget::convertFromContainingWindow(const IntPoint& point) const
-{
- IntPoint widgetPoint = point;
- for (const Widget *parentWidget = parent(), *childWidget = this;
- parentWidget;
- childWidget = parentWidget, parentWidget = parentWidget->parent())
- widgetPoint = parentWidget->convertSelfToChild(childWidget, widgetPoint);
- return widgetPoint;
-}
-
-IntRect Widget::convertToContainingWindow(const IntRect& rect) const
-{
- IntRect convertedRect = rect;
- convertedRect.setLocation(convertToContainingWindow(convertedRect.location()));
- return convertedRect;
-}
-
-IntPoint Widget::convertChildToSelf(const Widget* child, const IntPoint& point) const
-{
- return IntPoint(point.x() + child->x(), point.y() + child->y());
-}
-
-IntPoint Widget::convertSelfToChild(const Widget* child, const IntPoint& point) const
-{
- return IntPoint(point.x() - child->x(), point.y() - child->y());
+ ChromeClientChromium* client = chromeClientChromium(this);
+ if (client)
+ client->setCursor(cursor);
}
void Widget::paint(GraphicsContext*, const IntRect&)
{
}
-bool Widget::isEnabled() const
-{
- return data->enabled;
-}
-
-void Widget::setEnabled(bool e)
-{
- if (e != data->enabled) {
- data->enabled = e;
- invalidate();
- }
-}
-
-bool Widget::suppressInvalidation() const
-{
- return data->suppressInvalidation;
-}
-
-void Widget::setSuppressInvalidation(bool suppress)
-{
- data->suppressInvalidation = suppress;
-}
-
-void Widget::invalidate()
+void Widget::setFocus()
{
- invalidateRect(IntRect(0, 0, width(), height()));
+ ChromeClientChromium* client = chromeClientChromium(this);
+ if (client)
+ client->focus();
}
-void Widget::invalidateRect(const IntRect& r)
+void Widget::setIsSelected(bool)
{
- if (data->suppressInvalidation)
- return;
-
- if (!data->client)
- return;
-
- IntRect windowRect = convertToContainingWindow(r);
-
- // Get our clip rect and intersect with it to ensure we don't invalidate too much.
- IntRect clipRect = windowClipRect();
- windowRect.intersect(clipRect);
-
- data->client->invalidateRect(windowRect);
}
-void Widget::setFocus()
+IntRect Widget::frameRect() const
{
- if (data->client)
- data->client->setFocus();
+ return m_frame;
}
-void Widget::setIsSelected(bool)
+void Widget::setFrameRect(const IntRect& rect)
{
+ m_frame = rect;
}
} // namespace WebCore
diff --git a/webkit/port/platform/chromium/WidgetClientChromium.h b/webkit/port/platform/chromium/WidgetClientChromium.h
deleted file mode 100644
index f39c49b..0000000
--- a/webkit/port/platform/chromium/WidgetClientChromium.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WidgetClientChromium_H__
-#define WidgetClientChromium_H__
-
-#include "base/gfx/native_widget_types.h"
-#include "WidgetClient.h"
-
-class SkBitmap;
-
-namespace WebCore {
-
-class Cursor;
-class IntRect;
-class Range;
-
-// Generic interface for features needed by the Widget.
-class WidgetClientChromium : public WidgetClient {
-public:
- virtual ~WidgetClientChromium() {}
-
- // Returns the containing window for the Widget.
- // TODO(pinkerton): this needs a better name, "window" is incorrect on other
- // platforms.
- virtual gfx::ViewHandle containingWindow() = 0;
-
- // Invalidate a region of the widget's containing window.
- virtual void invalidateRect(const IntRect& damagedRect) = 0;
-
- // Scroll the region of the widget's containing window within the given
- // clipRect by the specified dx and dy.
- virtual void scrollRect(int dx, int dy, const IntRect& clipRect) = 0;
-
- // Notifies the client of a new popup widget. The client should place
- // and size the widget with the given bounds, relative to the screen.
- virtual void popupOpened(Widget* widget, const IntRect& bounds) = 0;
-
- // Notifies the client that the given popup widget has closed.
- virtual void popupClosed(Widget* widget) = 0;
-
- // Indicates that a new cursor should be shown.
- virtual void setCursor(const Cursor& cursor) = 0;
-
- // Indicates the widget thinks it has focus. This should give focus to the
- // window hosting the widget.
- virtual void setFocus() = 0;
-
- // This function is called to retrieve a resource bitmap from the
- // renderer that was cached as a result of the renderer receiving a
- // ViewMsg_Preload_Bitmap message from the browser.
- virtual const SkBitmap* getPreloadedResourceBitmap(int resource_id) = 0;
-
- // Notification that the given widget's scroll position has changed. This
- // function is called AFTER the position has been updated.
- virtual void onScrollPositionChanged(Widget* widget) = 0;
-
- // Retrieves the tick-marks for a given frame.
- virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks(
- WebCore::Frame* frame) = 0;
-
- // Retrieves the index of the active tickmark for a given frame. If the
- // frame does not have an active tickmark (for example if the active
- // tickmark resides in another frame) this function returns kNoTickmark.
- static const size_t kNoTickmark = -1;
- virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame) = 0;
-
- // Returns true if this widget is hidden because it's in a background tab.
- virtual bool isHidden() = 0;
-};
-
-} // namespace WebCore
-
-#endif // WidgetClientChromium_H__
diff --git a/webkit/port/platform/graphics/GraphicsContextSkia.cpp b/webkit/port/platform/graphics/GraphicsContextSkia.cpp
index 1dd027a..e98dbf8 100644
--- a/webkit/port/platform/graphics/GraphicsContextSkia.cpp
+++ b/webkit/port/platform/graphics/GraphicsContextSkia.cpp
@@ -936,6 +936,27 @@ void GraphicsContext::setLineCap(LineCap cap)
}
}
+void GraphicsContext::setLineDash(const DashArray& dashes, float dashOffset)
+{
+ // TODO(dglazkov): This is lifted directly off SkiaSupport, lines 49-74
+ // so it is not guaranteed to work correctly. I made some minor cosmetic
+ // refactoring, but not much else. Please fix this?
+ size_t dashLength = dashes.size();
+ if (!dashLength)
+ return;
+
+ size_t count = (dashLength % 2) == 0 ? dashLength : dashLength * 2;
+ SkScalar* intervals = new SkScalar[count];
+
+ for(unsigned int i = 0; i < count; i++)
+ intervals[i] = dashes[i % dashLength];
+
+ m_data->setDashPathEffect(new SkDashPathEffect(intervals,
+ count, dashOffset));
+
+ delete[] intervals;
+}
+
void GraphicsContext::setLineJoin(LineJoin join)
{
switch (join) {
@@ -1096,22 +1117,4 @@ void GraphicsContext::setImageInterpolationQuality(InterpolationQuality)
notImplemented();
}
-// Skia platform gradients and patterns are handled at draw time
-// Upstream is considering removing these methods anyway
-void GraphicsContext::setPlatformStrokePattern(Pattern* pattern)
-{
-}
-
-void GraphicsContext::setPlatformFillPattern(Pattern* pattern)
-{
-}
-
-void GraphicsContext::setPlatformStrokeGradient(Gradient*)
-{
-}
-
-void GraphicsContext::setPlatformFillGradient(Gradient*)
-{
-}
-
}
diff --git a/webkit/port/platform/graphics/ImageSkia.cpp b/webkit/port/platform/graphics/ImageSkia.cpp
index 5e9d518..5cf364d 100644
--- a/webkit/port/platform/graphics/ImageSkia.cpp
+++ b/webkit/port/platform/graphics/ImageSkia.cpp
@@ -38,8 +38,8 @@
#include "Logging.h"
#include "NativeImageSkia.h"
#include "NotImplemented.h"
-#include "PlatformScrollBar.h"
#include "PlatformString.h"
+#include "ScrollbarTheme.h"
#include "SkiaUtils.h"
#include "SkShader.h"
@@ -93,20 +93,19 @@ void TransformDimensions(const SkMatrix& matrix,
static PassRefPtr<Image> GetTextAreaResizeCorner()
{
// Get the size of the resizer.
- const int width = PlatformScrollbar::verticalScrollbarWidth();
- const int height = PlatformScrollbar::horizontalScrollbarHeight();
+ const int thickness = ScrollbarTheme::nativeTheme()->scrollbarThickness();
// Setup a memory buffer.
- gfx::PlatformCanvasWin canvas(width, height, false);
+ gfx::PlatformCanvasWin canvas(thickness, thickness, false);
gfx::PlatformDeviceWin& device = canvas.getTopPlatformDevice();
- device.prepareForGDI(0, 0, width, height);
+ device.prepareForGDI(0, 0, thickness, thickness);
HDC hdc = device.getBitmapDC();
- RECT widgetRect = { 0, 0, width, height };
+ RECT widgetRect = { 0, 0, thickness, thickness };
// Do the drawing.
gfx::NativeTheme::instance()->PaintStatusGripper(hdc, SP_GRIPPER, 0, 0,
&widgetRect);
- device.postProcessGDI(0, 0, width, height);
+ device.postProcessGDI(0, 0, thickness, thickness);
return BitmapImageSingleFrameSkia::create(device.accessBitmap(false));
}
#endif
diff --git a/webkit/port/platform/graphics/PlatformContextSkia.h b/webkit/port/platform/graphics/PlatformContextSkia.h
index 67ab1f1f..c2aee46 100644
--- a/webkit/port/platform/graphics/PlatformContextSkia.h
+++ b/webkit/port/platform/graphics/PlatformContextSkia.h
@@ -10,7 +10,6 @@
namespace WebCore {
class GraphicsContext;
class GraphicsContextPlatformPrivate;
-class PlatformScrollbar;
class ScrollView;
}
diff --git a/webkit/port/platform/graphics/SkPaintContext.cpp b/webkit/port/platform/graphics/SkPaintContext.cpp
index 863aaa0..53b165e 100644
--- a/webkit/port/platform/graphics/SkPaintContext.cpp
+++ b/webkit/port/platform/graphics/SkPaintContext.cpp
@@ -209,7 +209,7 @@ void SkPaintContext::setup_paint_fill(SkPaint* paint) const {
int SkPaintContext::setup_paint_stroke(SkPaint* paint,
SkRect* rect,
- int length) {
+ int length) const {
setup_paint_common(paint);
float width = state_->mStrokeThickness;
@@ -313,7 +313,7 @@ void SkPaintContext::addPath(const SkPath& path) {
path_.addPath(path);
}
-SkPath* SkPaintContext::currentPath() {
+const SkPath* SkPaintContext::currentPath() const {
return &path_;
}
diff --git a/webkit/port/platform/graphics/SkPaintContext.h b/webkit/port/platform/graphics/SkPaintContext.h
index 0d7aaae..b14d5f2 100644
--- a/webkit/port/platform/graphics/SkPaintContext.h
+++ b/webkit/port/platform/graphics/SkPaintContext.h
@@ -51,7 +51,7 @@ class SkPaintContext {
// the pen, or 1 if the pen's width is 0 if a non-zero length is provided,
// the number of dashes/dots on a dashed/dotted line will be adjusted to
// start and end that length with a dash/dot.
- int setup_paint_stroke(SkPaint* paint, SkRect* rect, int length);
+ int setup_paint_stroke(SkPaint* paint, SkRect* rect, int length) const;
// State proxying functions
SkDrawLooper* setDrawLooper(SkDrawLooper* dl);
@@ -69,7 +69,7 @@ class SkPaintContext {
void beginPath();
void addPath(const SkPath& path);
- SkPath* currentPath();
+ const SkPath* currentPath() const;
void setGradient(SkShader*);
void setPattern(SkShader*);
diff --git a/webkit/port/platform/win/ScreenWin.cpp b/webkit/port/platform/win/PlatformScreenWin.cpp
index d69888a..1c529d8 100644
--- a/webkit/port/platform/win/ScreenWin.cpp
+++ b/webkit/port/platform/win/PlatformScreenWin.cpp
@@ -24,7 +24,7 @@
*/
#include "config.h"
-#include "Screen.h"
+#include "PlatformScreen.h"
#include "IntRect.h"
#include "FloatRect.h"
@@ -44,7 +44,8 @@ static FloatRect ToFloatRect(const RECT& rect) {
// Returns info for the default monitor if widget is NULL
static MONITORINFOEX monitorInfoForWidget(Widget* widget)
{
- HWND window = widget ? widget->containingWindow() : 0;
+ // TODO(darin): We should not be dealing with native widgets here!
+ HWND window = widget ? widget->root()->hostWindow()->platformWindow() : 0;
return webkit_glue::GetMonitorInfoForWindow(window);
}
diff --git a/webkit/port/rendering/RenderThemeWin.cpp b/webkit/port/rendering/RenderThemeWin.cpp
index c302118..859df7d 100644
--- a/webkit/port/rendering/RenderThemeWin.cpp
+++ b/webkit/port/rendering/RenderThemeWin.cpp
@@ -31,7 +31,7 @@
#include "Document.h"
#include "FontSelector.h"
#include "GraphicsContext.h"
-#include "PlatformScrollBar.h"
+#include "ScrollbarTheme.h"
#include "SkiaUtils.h"
#include "base/gfx/native_theme.h"
@@ -706,7 +706,7 @@ int RenderThemeWin::menuListInternalPadding(RenderStyle* style, int paddingType)
// we don't draw a button, so don't reserve space for it.
const int bar_type = style->direction() == LTR ? RightPadding : LeftPadding;
if (paddingType == bar_type && style->appearance() != NoAppearance)
- padding += PlatformScrollbar::verticalScrollbarWidth();
+ padding += ScrollbarTheme::nativeTheme()->scrollbarThickness();
return padding;
}
diff --git a/webkit/port/svg/SVGElementInstance.idl b/webkit/port/svg/SVGElementInstance.idl
new file mode 100644
index 0000000..606aa18
--- /dev/null
+++ b/webkit/port/svg/SVGElementInstance.idl
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+module svg {
+
+ interface [
+ Conditional=SVG,
+ ObjCCustomInternalImpl,
+ CustomListeners,
+ CustomPushEventHandlerScope,
+ GenerateToJS,
+ GenerateNativeConverter
+ ] SVGElementInstance
+#if defined(LANGUAGE_OBJECTIVE_C)
+ : Object, EventTarget
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+ {
+ readonly attribute SVGElement correspondingElement;
+ readonly attribute SVGUseElement correspondingUseElement;
+ readonly attribute SVGElementInstance parentNode;
+ readonly attribute SVGElementInstanceList childNodes;
+ readonly attribute SVGElementInstance firstChild;
+ readonly attribute SVGElementInstance lastChild;
+ readonly attribute SVGElementInstance previousSibling;
+ readonly attribute SVGElementInstance nextSibling;
+
+ // EventTarget
+#if !defined(LANGUAGE_OBJECTIVE_C)
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onabort;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onblur;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onchange;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onclick;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString oncontextmenu;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondblclick;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onerror;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onfocus;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString oninput;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onkeydown;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onkeypress;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onkeyup;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onload;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmousedown;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmousemove;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmouseout;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmouseover;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmouseup;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onmousewheel;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onbeforecut;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString oncut;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onbeforecopy;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString oncopy;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onbeforepaste;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onpaste;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondragenter;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondragover;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondragleave;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondrop;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondragstart;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondrag;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString ondragend;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onreset;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onresize;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onscroll;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onsearch;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onselect;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onselectstart;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onsubmit;
+ attribute [DontEnum, Custom=ElementEventHandler] DOMString onunload;
+
+ [Custom] void addEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ [Custom] void removeEventListener(in DOMString type,
+ in EventListener listener,
+ in boolean useCapture);
+ boolean dispatchEvent(in Event event)
+ raises(EventException);
+#endif /* defined(LANGUAGE_OBJECTIVE_C) */
+ };
+}
diff --git a/webkit/tools/layout_tests/layout_package/http_server.sh b/webkit/tools/layout_tests/layout_package/http_server.sh
index 5412994..5412994 100755..100644
--- a/webkit/tools/layout_tests/layout_package/http_server.sh
+++ b/webkit/tools/layout_tests/layout_package/http_server.sh
diff --git a/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt b/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt
index 48a5ff5..f16cc8b 100644
--- a/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt
+++ b/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt
@@ -173,7 +173,7 @@ V8 | KJS # LayoutTests/fast/history/history_reload.html = PASS | FAIL
V8 | KJS # LayoutTests/fast/repaint/bugzilla-6473.html = PASS | FAIL
// Bug 982608: test had a wrong result for one condition
-V8 | KJS # LayoutTests/plugins/destroy-stream-twice.html = FAIL
+V8 | KJS # LayoutTests/plugins/destroy-stream-twice.html = FAIL | TIMEOUT
// This test has been modified and placed in pending, so we ignore the original
// until we get our modification into WebKit.
@@ -268,7 +268,7 @@ V8 | KJS # LayoutTests/fast/history/subframe-is-visited.html = FAIL
// Bug 945322: test shell should dump text when
// layoutTestController.notifyDone() is called
// Not critical for beta.
-V8 | KJS # LayoutTests/editing/selection/drag-in-iframe.html = TIMEOUT
+V8 | KJS # LayoutTests/editing/selection/drag-in-iframe.html = FAIL | TIMEOUT
// BUG 938563: occasionally times out (performs about 50 HTTP CGI requests)
V8 | KJS # LayoutTests/http/tests/xmlhttprequest/supported-xml-content-types.html = PASS | TIMEOUT
@@ -356,7 +356,7 @@ V8 | KJS # LayoutTests/editing/deleting/deletionUI-single-instance.html = FAIL
// Bug 871718: These tests load data: URLs into frames and sets queries on then.
// This is totally broken. This layout test should be rewitten so that the
// subframes are not data URLs (probably we want files in the resources dir.).
-V8 | KJS # LayoutTests/fast/encoding/char-encoding.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/encoding/char-encoding.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/fast/encoding/char-decoding.html = FAIL | TIMEOUT
// Bug 1130795: since we don't have Aqua-themed controls, don't ignore the
@@ -900,10 +900,10 @@ V8 | KJS # LayoutTests/fast/transforms/shadows.html = FAIL
V8 | KJS # LayoutTests/http/tests/misc/acid3.html = FAIL
V8 | KJS # DEFER : LayoutTests/http/tests/misc/frame-default-enc-same-domain.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/canvas-remote-read-svg-image.html = FAIL
-V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-object-prototype.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-object-prototype.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/http/tests/security/cross-origin-xsl-BLOCKED.html = FAIL
-V8 | KJS # LayoutTests/http/tests/security/xss-DENIED-synchronous-form.html = FAIL
-V8 | KJS # LayoutTests/http/tests/security/xss-eval.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/xss-DENIED-synchronous-form.html = FAIL | TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/xss-eval.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html = FAIL
V8 | KJS # LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-no-content-length-onProgress.html = FAIL
V8 | KJS # LayoutTests/media/progress-event-total.html = FAIL
@@ -931,7 +931,7 @@ V8 | KJS # LayoutTests/fast/forms/form-hides-table.html = FAIL
V8 | KJS # LayoutTests/fast/forms/input-readonly-autoscroll.html = FAIL
V8 | KJS # LayoutTests/fast/replaced/replaced-breaking.html = FAIL
V8 | KJS # LayoutTests/fast/table/text-field-baseline.html = FAIL
-V8 | KJS # LayoutTests/http/tests/messaging/cross-domain-message-event-dispatch.html = FAIL | PASS
+V8 | KJS # LayoutTests/http/tests/messaging/cross-domain-message-event-dispatch.html = FAIL | PASS | TIMEOUT
V8 | KJS # LayoutTests/http/tests/navigation/back-to-slow-frame.html = FAIL
V8 | KJS # LayoutTests/http/tests/navigation/metaredirect-basic.html = FAIL
V8 | KJS # LayoutTests/http/tests/navigation/post-basic.html = FAIL | PASS
@@ -939,14 +939,14 @@ V8 | KJS # LayoutTests/http/tests/navigation/post-frames.html = FAIL | PASS
V8 | KJS # LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/aboutBlank/xss-DENIED-set-opener.html = FAIL
-V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-history-put.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-history-put.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/listener/xss-JSTargetNode-onclick-shortcut.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/listener/xss-XMLHttpRequest-shortcut.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/listener/xss-window-onclick-addEventListener.html = FAIL
V8 | KJS # LayoutTests/http/tests/security/listener/xss-window-onclick-shortcut.html = FAIL
-V8 | KJS # LayoutTests/http/tests/security/postMessage/invalid-origin-throws-exception.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/postMessage/invalid-origin-throws-exception.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-34-t.svg = FAIL
V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-40-t.svg = FAIL
V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/color-prop-01-b.svg = FAIL
@@ -1080,3 +1080,334 @@ V8 | KJS # LayoutTests/http/tests/navigation/redirect302-goback.html = FAIL | PA
// Got flakey (both debug and release) around r3581 (ananta).
V8 | KJS # LayoutTests/http/tests/plugins/geturlnotify-from-npp-destroystream.html = FAIL | PASS
+
+// NEW FOR MERGE 36102:37604
+V8 | KJS # LayoutTests/animations/big-rotation.html = FAIL
+V8 | KJS # LayoutTests/animations/matrix-anim.html = FAIL
+V8 | KJS # LayoutTests/editing/spelling/inline_spelling_markers.html = FAIL
+V8 | KJS # LayoutTests/fast/block/basic/quirk-percent-height-grandchild.html = FAIL
+V8 | KJS # LayoutTests/fast/block/positioning/replaced-inside-fixed-top-bottom.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/001-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/001.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/002-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/002.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/003-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/003-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/003.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/004-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/004-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/004.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/005-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/005-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/005.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/006-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/006-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/006.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/007-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/007-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/007.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/008-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-color/008.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/001-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/001.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/002-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/002.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/003-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/003-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/003.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/004-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/004-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/004.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/005-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/005-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/005.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/006-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/006-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/006.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/007-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/007-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/007.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/008-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/008.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/009-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/009.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/010-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/background-image/010.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/001-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/001.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/002-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/002.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/003-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/003-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/003.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/004-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/004-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/004.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/005-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/005-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/005.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/006-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/006-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/006.html = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/007-declarative.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/007-xhtml.xhtml = FAIL
+V8 | KJS # LayoutTests/fast/body-propagation/overflow/007.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/HTMLScriptElement/script-reexecution.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/StyleSheet/ownerNode-lifetime-2.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/constructors-cached-navigate.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/constructors-cached.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/password-placeholder-text-security.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/placeholder-pseudo-style.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/placeholder-set-attribute.html = FAIL
+V8 | KJS # LayoutTests/fast/js/arguments.html = FAIL
+V8 | KJS # LayoutTests/fast/js/construct-global-object.html = FAIL
+V8 | KJS # LayoutTests/fast/js/function-dot-arguments.html = FAIL
+V8 | KJS # LayoutTests/fast/js/primitive-method-this.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/button-spurious-layout-hint.html = FAIL
+V8 | KJS # LayoutTests/fast/table/empty-row-crash.html = FAIL
+V8 | KJS # LayoutTests/http/tests/plugins/local-geturl-from-remote.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/basic-scrollbar.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/disabled-scrollbar.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/listbox-scrollbar-combinations.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/overflow-scrollbar-combinations.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/scrollbar-buttons.html = FAIL
+V8 | KJS # LayoutTests/scrollbars/scrollbar-orientation.html = FAIL
+V8 | KJS # LayoutTests/transforms/2d/compound-transforms-vs-containers.html = FAIL
+V8 | KJS # LayoutTests/transforms/2d/transform-borderbox.html = FAIL
+V8 | KJS # LayoutTests/transforms/2d/transform-origin-borderbox.html = FAIL
+V8 | KJS # LayoutTests/fast/events/message-channel-gc-2.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/events/message-channel-gc.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/events/message-port-deleted-document.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/events/message-port-deleted-frame.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/events/message-port-inactive-document.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/events/message-port.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/misc/dns-prefetch-control.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/frameNavigation/not-opener.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/frameNavigation/opener.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/MessagePort/event-listener-context.html = CRASH
+// missing expected results
+V8 | KJS # SKIP LayoutTests/fast/forms/search-placeholder-value-changed.html = FAIL
+V8 | KJS # SKIP LayoutTests/fast/frames/frame-length-fractional.html = FAIL
+V8 | KJS # SKIP LayoutTests/fast/table/floating-th.html = FAIL
+V8 | KJS # SKIP LayoutTests/fast/table/table-display-types-strict.html = FAIL
+V8 | KJS # SKIP LayoutTests/fast/table/table-display-types.html = FAIL
+
+// CHANGED OR REBASELINED IN WEBKIT 36102:37604
+V8 | KJS # LayoutTests/fast/css/variables/block-cycle-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/color-hex-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/colors-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/declaration-block-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/font-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/image-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/import-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/inline-style-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/invalid-variable-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/margin-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/misplaced-import-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/multiple-term-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/override-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/print-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/remove-variable-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/set-variable-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/shorthand-test.html = FAIL
+V8 | KJS # LayoutTests/fast/css/variables/variable-iteration-test.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/8250.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/input-disabled-color.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/password-placeholder.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/selection-functions.html = FAIL
+V8 | KJS # LayoutTests/fast/js/number-toString.html = FAIL
+V8 | KJS # LayoutTests/fast/js/numeric-conversion.html = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-03-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-11-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-24-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-33-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-39-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-41-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-46-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-60-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-61-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-62-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-63-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-64-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-65-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-66-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-67-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-68-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-69-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-70-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-81-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/animate-elem-82-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/coords-viewattr-01-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/coords-viewattr-02-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-01-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-02-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-03-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-04-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-05-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-06-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/fonts-elem-07-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/pservers-grad-08-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-01-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-02-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-03-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-06-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-07-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/render-elems-08-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/script-handle-02-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/script-handle-03-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/script-handle-04-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/struct-image-05-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/struct-image-06-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/struct-image-07-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-align-05-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-align-06-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-text-04-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-text-05-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-text-07-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/W3C-SVG-1.1/text-tspan-01-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/filters/filterRegions.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/textLayout.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/textLayout2.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/textLength.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/textPCDATA.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/textPosition2.svg = FAIL
+V8 | KJS # LayoutTests/svg/batik/text/xmlSpace.svg = FAIL
+V8 | KJS # LayoutTests/svg/carto.net/button.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/class-baseValue.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/container-opacity-clip-viewBox.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/getscreenctm-in-mixed-content2.xhtml = FAIL
+V8 | KJS # LayoutTests/svg/custom/svg-fonts-in-html.html = FAIL
+V8 | KJS # LayoutTests/svg/custom/text-linking.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/text-xy-updates.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/use-clipped-transform.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree.svg = FAIL
+V8 | KJS # LayoutTests/svg/custom/use-instanceRoot-as-event-target.xhtml = FAIL
+V8 | KJS # LayoutTests/svg/custom/use-instanceRoot-event-listeners.xhtml = FAIL
+V8 | KJS # LayoutTests/svg/custom/use-setAttribute-crash.svg = FAIL
+V8 | KJS # LayoutTests/svg/dom/SVGScriptElement/script-reexecution.svg = FAIL
+V8 | KJS # LayoutTests/svg/hixie/links/003-broken.xml = FAIL
+V8 | KJS # LayoutTests/svg/text/kerning.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/multichar-glyph.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-align-05-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-align-06-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-altglyph-01-b.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-text-04-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-text-05-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-text-06-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-text-07-t.svg = FAIL
+V8 | KJS # LayoutTests/svg/text/text-tspan-01-b.svg = FAIL
+
+// MERGE REGRESSIONS 36102:37604
+V8 | KJS # LayoutTests/editing/pasteboard/drag-drop-dead-frame.html = FAIL
+V8 | KJS # LayoutTests/editing/style/smoosh-styles-003.html = FAIL
+V8 | KJS # LayoutTests/fast/backgrounds/svg-as-background-1.html = FAIL
+V8 | KJS # LayoutTests/fast/backgrounds/svg-as-background-2.html = FAIL
+V8 | KJS # LayoutTests/fast/backgrounds/svg-as-background-3.html = FAIL
+V8 | KJS # LayoutTests/fast/backgrounds/svg-as-background-4.html = FAIL
+V8 | KJS # LayoutTests/fast/borders/svg-as-border-image-2.html = FAIL
+V8 | KJS # LayoutTests/fast/borders/svg-as-border-image.html = FAIL
+V8 | KJS # LayoutTests/fast/css/font-family-initial.html = FAIL
+V8 | KJS # LayoutTests/fast/css/line-height-overflow.html = FAIL
+V8 | KJS # LayoutTests/fast/css/rtl-ordering.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/Window/get-set-properties.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/Window/new-window-opener.html = FAIL
+V8 | KJS # LayoutTests/fast/dom/Window/window-open-pending-url.html = FAIL
+V8 | KJS # LayoutTests/fast/events/mouse-click-events.html = FAIL
+V8 | KJS # LayoutTests/fast/events/onclick-list-marker.html = FAIL
+V8 | KJS # LayoutTests/fast/events/updateLayoutForHitTest.html = FAIL
+V8 | KJS # LayoutTests/fast/flexbox/009.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/form-element-geometry.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/listbox-deselect-scroll.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/listbox-scrollbar-incremental-load.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/listbox-selection-2.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/select-initial-position.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/select-item-background-clip.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/select-visual-hebrew.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/textarea-rows-cols.html = FAIL
+V8 | KJS # LayoutTests/fast/forms/visual-hebrew-text-field.html = FAIL
+V8 | KJS # LayoutTests/fast/frames/invalid.html = FAIL
+V8 | KJS # LayoutTests/fast/frames/onlyCommentInIFrame.html = FAIL
+V8 | KJS # LayoutTests/fast/frames/valid.html = FAIL
+V8 | KJS # LayoutTests/fast/history/go-back-to-changed-name.html = FAIL
+V8 | KJS # LayoutTests/fast/html/keygen.html = FAIL
+V8 | KJS # LayoutTests/fast/images/svg-as-background.html = FAIL
+V8 | KJS # LayoutTests/fast/images/svg-as-image.html = FAIL
+V8 | KJS # LayoutTests/fast/images/svg-as-relative-image.html = FAIL
+V8 | KJS # LayoutTests/fast/invalid/residual-style.html = FAIL
+V8 | KJS # LayoutTests/fast/js/bitwise-and-on-undefined.html = FAIL
+V8 | KJS # LayoutTests/fast/js/date-DST-pre-1970.html = FAIL
+V8 | KJS # LayoutTests/fast/overflow/overflow-x-y.html = FAIL
+V8 | KJS # LayoutTests/fast/overflow/unreachable-overflow-rtl-bug.html = FAIL
+V8 | KJS # LayoutTests/fast/parser/comment-in-textarea.html = FAIL
+V8 | KJS # LayoutTests/fast/parser/open-comment-in-textarea.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/layer-child-outline.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/line-flow-with-floats-7.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/overflow-outline-repaint.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/overflow-scroll-delete.html = FAIL
+V8 | KJS # LayoutTests/fast/repaint/selection-after-delete.html = FAIL
+V8 | KJS # LayoutTests/fast/replaced/image-sizing.html = FAIL
+V8 | KJS # LayoutTests/fast/replaced/image-solid-color-with-alpha.html = FAIL
+V8 | KJS # LayoutTests/fast/replaced/inline-box-wrapper-handover.html = FAIL
+V8 | KJS # LayoutTests/fast/replaced/percent-height-in-anonymous-block.html = FAIL
+V8 | KJS # LayoutTests/fast/replaced/width100percent-textarea.html = FAIL
+V8 | KJS # LayoutTests/fast/table/cell-width-auto.html = FAIL
+V8 | KJS # LayoutTests/fast/table/cellindex.html = FAIL
+V8 | KJS # LayoutTests/fast/table/form-in-table-before-misnested-text-crash-css.html = FAIL
+V8 | KJS # LayoutTests/fast/table/form-in-tbody-before-misnested-text-crash-css.html = FAIL
+V8 | KJS # LayoutTests/fast/text/drawBidiText.html = FAIL
+V8 | KJS # LayoutTests/fast/text/international/001.html = FAIL
+V8 | KJS # LayoutTests/fast/text/international/002.html = FAIL
+V8 | KJS # LayoutTests/fast/text/international/003.html = FAIL
+V8 | KJS # LayoutTests/fast/text/international/wrap-CJK-001.html = FAIL
+V8 | KJS # LayoutTests/http/tests/plugins/post-url-file.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url.html = FAIL
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug24627.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug24661.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug2479-1.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug2479-3.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug24880.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug25004.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug25074.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/bugs/bug25086.html = FAIL
+V8 | KJS # LayoutTests/tables/mozilla/dom/deleteCol1.html = FAIL
+V8 | KJS # chrome/fast/dom/Window/window-lookup-precedence.html = FAIL
+V8 | KJS # chrome/fast/dom/xmlhttprequest-gc.html = FAIL
+V8 | KJS # chrome/fast/dom/xss-DENIED-javascript-variations.html = FAIL
+V8 | KJS # chrome/fast/forms/basic-textareas.html = FAIL
+V8 | KJS # chrome/fast/forms/lazy-event-listener-scope-chain.html = FAIL
+V8 | KJS # pending/security/block-test.html = FAIL
+V8 | KJS # LayoutTests/fast/events/no-blur-on-page-leave.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/messaging/cross-domain-message-send.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/plugins/npapi-response-headers.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-DOMImplementation.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-delete.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/cross-frame-access-location-put.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/host-compare-case-insensitive.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/object-literals.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/postMessage/delivery-order.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/postMessage/origin-unaffected-by-base-tag.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/postMessage/origin-unaffected-by-document-domain.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/security/postMessage/target-origin.html = TIMEOUT
+V8 | KJS # LayoutTests/http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html = TIMEOUT
+V8 | KJS # chrome/http/tests/security/listener/xss-inactive-closure.html = TIMEOUT
+V8 | KJS # pending/plugins/destroy-stream-twice.html = TIMEOUT
+V8 | KJS # LayoutTests/fast/xpath/nsresolver-exception.xhtml = CRASH \ No newline at end of file
diff --git a/webkit/tools/layout_tests/test_lists/win/tests_ignored.txt b/webkit/tools/layout_tests/test_lists/win/tests_ignored.txt
index 21d6847..0e547f6 100644
--- a/webkit/tools/layout_tests/test_lists/win/tests_ignored.txt
+++ b/webkit/tools/layout_tests/test_lists/win/tests_ignored.txt
@@ -180,3 +180,6 @@ KJS # SKIP : chrome/fast/dom/set-table-head-no-crash.html = FAIL
// Dashboard-related test
KJS | V8 # SKIP : LayoutTests/fast/css/dashboard-region-parser.html = FAIL
+
+// Not a test?
+KJS | V8 # SKIP : LayoutTests/http/tests/incremental/pause-in-script-element.pl = FAIL \ No newline at end of file
diff --git a/webkit/tools/test_shell/test_shell_main.cc b/webkit/tools/test_shell/test_shell_main.cc
index b184dc8..b91ff13 100644
--- a/webkit/tools/test_shell/test_shell_main.cc
+++ b/webkit/tools/test_shell/test_shell_main.cc
@@ -125,7 +125,6 @@ int main(int argc, char* argv[]) {
CommandLine parsed_command_line;
if (parsed_command_line.HasSwitch(test_shell::kStartupDialog))
MessageBox(NULL, L"attach to me?", L"test_shell", MB_OK);
- //webkit_glue::SetLayoutTestMode(true);
// Allocate a message loop for this thread. Although it is not used
// directly, its constructor sets up some necessary state.
@@ -140,6 +139,9 @@ int main(int argc, char* argv[]) {
TestShell::InitLogging(suppress_error_dialogs, layout_test_mode);
+ // Set this early before we start using WebCore.
+ webkit_glue::SetLayoutTestMode(layout_test_mode);
+
// Suppress abort message in v8 library in debugging mode.
// V8 calls abort() when it hits assertion errors.
if (suppress_error_dialogs) {
@@ -299,8 +301,6 @@ int main(int argc, char* argv[]) {
// See if we need to run the tests.
if (layout_test_mode) {
- webkit_glue::SetLayoutTestMode(true);
-
// Set up for the kind of test requested.
TestShell::TestParams params;
if (parsed_command_line.HasSwitch(test_shell::kDumpPixels)) {
diff --git a/webkit/webkit.xcodeproj/project.pbxproj b/webkit/webkit.xcodeproj/project.pbxproj
index c877cc8..7a3b97b 100644
--- a/webkit/webkit.xcodeproj/project.pbxproj
+++ b/webkit/webkit.xcodeproj/project.pbxproj
@@ -40,6 +40,7 @@
/* Begin PBXBuildFile section */
4D11C4E10E9ABEA900EF7617 /* ExceptionContextV8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D11C4D90E9ABE9200EF7617 /* ExceptionContextV8.cpp */; };
4D11C5520E9AC23100EF7617 /* RenderThemeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E49E50DE0E65E33200AD47F7 /* RenderThemeMac.mm */; };
+ 4D329F8C0EB908A40041FB7E /* V8MessageChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D329F8A0EB908A40041FB7E /* V8MessageChannel.cpp */; };
4D7B071F0E9DAE56009A6919 /* GraphicsContextStub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D7B071E0E9DAE56009A6919 /* GraphicsContextStub.cpp */; };
4DB043A40EB1577900A5633C /* webcursor.cc in Sources */ = {isa = PBXBuildFile; fileRef = 825405300D92E3DA0006B936 /* webcursor.cc */; };
4DB044230EB161D600A5633C /* IconMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB044220EB161D600A5633C /* IconMac.cpp */; };
@@ -55,7 +56,6 @@
4DB7EF930E9B9F6300C66CE0 /* V8File.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF820E9B9F6300C66CE0 /* V8File.cpp */; };
4DB7EF940E9B9F6300C66CE0 /* V8FileList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF840E9B9F6300C66CE0 /* V8FileList.cpp */; };
4DB7EF950E9B9F6300C66CE0 /* V8ImageData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF860E9B9F6300C66CE0 /* V8ImageData.cpp */; };
- 4DB7EF960E9B9F6300C66CE0 /* V8NSResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF880E9B9F6300C66CE0 /* V8NSResolver.cpp */; };
4DB7EF970E9B9F6300C66CE0 /* V8SVGAnimateColorElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF8A0E9B9F6300C66CE0 /* V8SVGAnimateColorElement.cpp */; };
4DB7EF980E9B9F6300C66CE0 /* V8SVGAnimateElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF8C0E9B9F6300C66CE0 /* V8SVGAnimateElement.cpp */; };
4DB7EF990E9B9F6300C66CE0 /* V8SVGAnimateTransformElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF8E0E9B9F6300C66CE0 /* V8SVGAnimateTransformElement.cpp */; };
@@ -114,9 +114,7 @@
4DB7F5290E9BD3FB00C66CE0 /* MainThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F5210E9BD3FB00C66CE0 /* MainThread.cpp */; };
4DB7F52A0E9BD3FB00C66CE0 /* ThreadingPthreads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F5270E9BD3FB00C66CE0 /* ThreadingPthreads.cpp */; };
4DB7F5420E9BD50600C66CE0 /* MainThreadMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F5410E9BD50600C66CE0 /* MainThreadMac.mm */; };
- 4DB7F55C0E9BD66300C66CE0 /* JSNSResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F5570E9BD66300C66CE0 /* JSNSResolver.cpp */; };
4DB7F55D0E9BD66300C66CE0 /* V8XMLHttpRequestCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F55B0E9BD66300C66CE0 /* V8XMLHttpRequestCustom.cpp */; };
- 4DB7F5620E9BD69A00C66CE0 /* JSNSResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F5570E9BD66300C66CE0 /* JSNSResolver.cpp */; };
4DB7F5630E9BD69A00C66CE0 /* V8XMLHttpRequestCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F55B0E9BD66300C66CE0 /* V8XMLHttpRequestCustom.cpp */; };
4DB7F9A80E9BEBA600C66CE0 /* V8WebKitCSSKeyframeRule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F9A40E9BEB9B00C66CE0 /* V8WebKitCSSKeyframeRule.cpp */; };
4DB7F9A90E9BEBA800C66CE0 /* V8WebKitCSSKeyframesRule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7F9A60E9BEB9B00C66CE0 /* V8WebKitCSSKeyframesRule.cpp */; };
@@ -226,7 +224,6 @@
7B0094330DAFEFE600F72082 /* V8HTMLQuoteElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091F10DAFEFE300F72082 /* V8HTMLQuoteElement.cpp */; };
7B0094350DAFEFE600F72082 /* V8HTMLScriptElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091F30DAFEFE300F72082 /* V8HTMLScriptElement.cpp */; };
7B0094370DAFEFE600F72082 /* V8HTMLSelectElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091F50DAFEFE300F72082 /* V8HTMLSelectElement.cpp */; };
- 7B0094390DAFEFE600F72082 /* V8HTMLSelectionInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091F70DAFEFE300F72082 /* V8HTMLSelectionInputElement.cpp */; };
7B00943D0DAFEFE600F72082 /* V8HTMLStyleElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091FB0DAFEFE300F72082 /* V8HTMLStyleElement.cpp */; };
7B00943F0DAFEFE600F72082 /* V8HTMLTableCaptionElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091FD0DAFEFE300F72082 /* V8HTMLTableCaptionElement.cpp */; };
7B0094410DAFEFE600F72082 /* V8HTMLTableCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0091FF0DAFEFE300F72082 /* V8HTMLTableCellElement.cpp */; };
@@ -425,6 +422,51 @@
AB332F3E0E9548900020F882 /* AccessibilityObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 82761F810E3FAC700030D324 /* AccessibilityObject.cpp */; };
AB332F4D0E95497E0020F882 /* AnimationController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB332F4B0E95497E0020F882 /* AnimationController.cpp */; };
AB8FE8A50E9BCD3E0051E7B4 /* GKURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8FE8A40E9BCD3E0051E7B4 /* GKURL.cpp */; };
+ ABBD23820EB7A8D200BEC658 /* StyleInheritedData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23810EB7A8D200BEC658 /* StyleInheritedData.cpp */; };
+ ABBD23A20EB7A95B00BEC658 /* StyleMarqueeData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23930EB7A95B00BEC658 /* StyleMarqueeData.cpp */; };
+ ABBD23A30EB7A95B00BEC658 /* StyleMultiColData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23950EB7A95B00BEC658 /* StyleMultiColData.cpp */; };
+ ABBD23A40EB7A95B00BEC658 /* StyleRareInheritedData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23970EB7A95B00BEC658 /* StyleRareInheritedData.cpp */; };
+ ABBD23A50EB7A95B00BEC658 /* StyleRareNonInheritedData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23990EB7A95B00BEC658 /* StyleRareNonInheritedData.cpp */; };
+ ABBD23A60EB7A95B00BEC658 /* StyleSurroundData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD239C0EB7A95B00BEC658 /* StyleSurroundData.cpp */; };
+ ABBD23A70EB7A95B00BEC658 /* StyleTransformData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD239E0EB7A95B00BEC658 /* StyleTransformData.cpp */; };
+ ABBD23A80EB7A95B00BEC658 /* StyleVisualData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23A00EB7A95B00BEC658 /* StyleVisualData.cpp */; };
+ ABBD23C30EB7AC1300BEC658 /* Animation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23AB0EB7AC1300BEC658 /* Animation.cpp */; };
+ ABBD23C40EB7AC1300BEC658 /* AnimationList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23AD0EB7AC1300BEC658 /* AnimationList.cpp */; };
+ ABBD23C50EB7AC1300BEC658 /* BindingURI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23AF0EB7AC1300BEC658 /* BindingURI.cpp */; };
+ ABBD23C60EB7AC1300BEC658 /* ContentData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23B40EB7AC1300BEC658 /* ContentData.cpp */; };
+ ABBD23C70EB7AC1300BEC658 /* CounterDirectives.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23B70EB7AC1300BEC658 /* CounterDirectives.cpp */; };
+ ABBD23C80EB7AC1300BEC658 /* FillLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23BC0EB7AC1300BEC658 /* FillLayer.cpp */; };
+ ABBD23C90EB7AC1300BEC658 /* KeyframeList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23BF0EB7AC1300BEC658 /* KeyframeList.cpp */; };
+ ABBD23CA0EB7AC1300BEC658 /* MatrixTransformOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23C10EB7AC1300BEC658 /* MatrixTransformOperation.cpp */; };
+ ABBD23EA0EB7ACA600BEC658 /* RotateTransformOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23D50EB7ACA600BEC658 /* RotateTransformOperation.cpp */; };
+ ABBD23EB0EB7ACA600BEC658 /* ScaleTransformOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23D70EB7ACA600BEC658 /* ScaleTransformOperation.cpp */; };
+ ABBD23EC0EB7ACA600BEC658 /* ShadowData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23D90EB7ACA600BEC658 /* ShadowData.cpp */; };
+ ABBD23ED0EB7ACA600BEC658 /* SkewTransformOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23DB0EB7ACA600BEC658 /* SkewTransformOperation.cpp */; };
+ ABBD23EE0EB7ACA600BEC658 /* StyleBackgroundData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23DD0EB7ACA600BEC658 /* StyleBackgroundData.cpp */; };
+ ABBD23EF0EB7ACA600BEC658 /* StyleBoxData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23DF0EB7ACA600BEC658 /* StyleBoxData.cpp */; };
+ ABBD23F00EB7ACA600BEC658 /* StyleFlexibleBoxData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23E20EB7ACA600BEC658 /* StyleFlexibleBoxData.cpp */; };
+ ABBD23F10EB7ACA600BEC658 /* TransformOperations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23E60EB7ACA600BEC658 /* TransformOperations.cpp */; };
+ ABBD23F20EB7ACA600BEC658 /* TranslateTransformOperation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD23E80EB7ACA600BEC658 /* TranslateTransformOperation.cpp */; };
+ ABBD24370EB7AE0700BEC658 /* V8MessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24020EB7AE0700BEC658 /* V8MessagePort.cpp */; };
+ ABBD246D0EB7B1DA00BEC658 /* MessageChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24660EB7B1DA00BEC658 /* MessageChannel.cpp */; };
+ ABBD246E0EB7B1DA00BEC658 /* MessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24680EB7B1DA00BEC658 /* MessagePort.cpp */; };
+ ABBD246F0EB7B1DA00BEC658 /* XMLTokenizerLibxml2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD246C0EB7B1DA00BEC658 /* XMLTokenizerLibxml2.cpp */; };
+ ABBD24790EB7B31B00BEC658 /* V8MessagePortCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24780EB7B31B00BEC658 /* V8MessagePortCustom.cpp */; };
+ ABBD24820EB7BCBB00BEC658 /* CSSNthSelector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24800EB7BCBB00BEC658 /* CSSNthSelector.cpp */; };
+ ABBD248A0EB7BEA400BEC658 /* CachedResourceHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24840EB7BEA400BEC658 /* CachedResourceHandle.cpp */; };
+ ABBD248B0EB7BEA400BEC658 /* ImageLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24860EB7BEA400BEC658 /* ImageLoader.cpp */; };
+ ABBD248C0EB7BEA400BEC658 /* MediaDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24880EB7BEA400BEC658 /* MediaDocument.cpp */; };
+ ABBD249F0EB7BFC500BEC658 /* Length.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24950EB7BFC500BEC658 /* Length.cpp */; };
+ ABBD24A00EB7BFC500BEC658 /* RenderScrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24960EB7BFC500BEC658 /* RenderScrollbar.cpp */; };
+ ABBD24A10EB7BFC500BEC658 /* RenderScrollbarPart.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24980EB7BFC500BEC658 /* RenderScrollbarPart.cpp */; };
+ ABBD24A20EB7BFC500BEC658 /* RenderScrollbarTheme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD249A0EB7BFC500BEC658 /* RenderScrollbarTheme.cpp */; };
+ ABBD24B70EB7C0DC00BEC658 /* WidthIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24B50EB7C0DC00BEC658 /* WidthIterator.cpp */; };
+ ABBD24C60EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24C30EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp */; };
+ ABBD24D90EB7C29F00BEC658 /* CoreTextController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24D50EB7C29F00BEC658 /* CoreTextController.cpp */; };
+ ABBD24DA0EB7C29F00BEC658 /* FontMacATSUI.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24D70EB7C29F00BEC658 /* FontMacATSUI.mm */; };
+ ABBD24DB0EB7C29F00BEC658 /* FontMacCoreText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24D80EB7C29F00BEC658 /* FontMacCoreText.cpp */; };
+ ABBD24E80EB7C35500BEC658 /* ScrollbarThemeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E90F20D7F3CC2001ECF42 /* ScrollbarThemeMac.mm */; };
+ ABBD24EE0EB7C3C800BEC658 /* AccessibilityList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBD24EC0EB7C3C800BEC658 /* AccessibilityList.cpp */; };
B507F51C0E9BE98B00D16D77 /* PluginStubsMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B507F51B0E9BE98B00D16D77 /* PluginStubsMac.cpp */; };
B507F54E0E9BECC300D16D77 /* HTMLPlugInImageElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B507F54D0E9BECC300D16D77 /* HTMLPlugInImageElement.cpp */; };
B50F5BE00E96D3F800AD71A6 /* WebCoreObjCExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = B50F5BDF0E96D3F800AD71A6 /* WebCoreObjCExtras.mm */; };
@@ -437,10 +479,11 @@
B5442A7B0E9BDCF30098766D /* PatternCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5442A7A0E9BDCF30098766D /* PatternCG.cpp */; };
B5442A880E9BDD600098766D /* RenderImageGeneratedContent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5442A860E9BDD600098766D /* RenderImageGeneratedContent.cpp */; };
B5442A900E9BDDF10098766D /* SharedBufferCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5442A8F0E9BDDF10098766D /* SharedBufferCF.cpp */; };
+ B556C24F0EB8FCD800418C57 /* FileSystemChromiumMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B556C24E0EB8FCD800418C57 /* FileSystemChromiumMac.mm */; };
+ B556C33D0EB9035B00418C57 /* FileSystemChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B556C33C0EB9035B00418C57 /* FileSystemChromium.cpp */; };
B5599D130E95942900E2A85A /* SVGDocumentExtensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5599D120E95942900E2A85A /* SVGDocumentExtensions.cpp */; };
B5599D160E9594E800E2A85A /* SVGImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B5599D140E9594E800E2A85A /* SVGImage.cpp */; };
B57635F80E96C13D008A7ABC /* ResourceResponseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B57635F70E96C13D008A7ABC /* ResourceResponseBase.cpp */; };
- B58533D80EB658D7007104C1 /* FileChooserChromiumMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B58533A40EB6543C007104C1 /* FileChooserChromiumMac.mm */; };
B58831090E9BD5B000CEC344 /* RenderReplica.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B58831070E9BD5B000CEC344 /* RenderReplica.cpp */; };
B58831140E9BD61F00CEC344 /* TextControlInnerElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B58831130E9BD61F00CEC344 /* TextControlInnerElements.cpp */; };
B588312A0E9BD6D800CEC344 /* StringBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B58831290E9BD6D800CEC344 /* StringBuilder.cpp */; };
@@ -819,8 +862,7 @@
E45625230E268E87005E4685 /* ProtectionSpace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E913C0D7F3CC2001ECF42 /* ProtectionSpace.cpp */; };
E45625250E268E87005E4685 /* ResourceHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91470D7F3CC2001ECF42 /* ResourceHandle.cpp */; };
E45625260E268E87005E4685 /* ResourceRequestBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E914B0D7F3CC2001ECF42 /* ResourceRequestBase.cpp */; };
- E45625280E268E87005E4685 /* FileSystemPOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E915D0D7F3CC2001ECF42 /* FileSystemPOSIX.cpp */; };
- E456252A0E268E87005E4685 /* ScrollBar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91870D7F3CC2001ECF42 /* ScrollBar.cpp */; };
+ E456252A0E268E87005E4685 /* Scrollbar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91870D7F3CC2001ECF42 /* Scrollbar.cpp */; };
E456252B0E268E87005E4685 /* SecurityOrigin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E918C0D7F3CC2001ECF42 /* SecurityOrigin.cpp */; };
E456252C0E268E87005E4685 /* SharedBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91900D7F3CC2001ECF42 /* SharedBuffer.cpp */; };
E456252D0E268E87005E4685 /* AtomicString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91AA0D7F3CC2001ECF42 /* AtomicString.cpp */; };
@@ -1186,9 +1228,8 @@
E473F64B0EADFFF8006C2098 /* Language.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F64A0EADFFF8006C2098 /* Language.cpp */; };
E473F64E0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F64D0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp */; };
E473F6530EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6500EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp */; };
- E473F65A0EAE005C006C2098 /* PlatformScrollBarChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6590EAE005C006C2098 /* PlatformScrollBarChromium.cpp */; };
E473F6600EAE00A6006C2098 /* PopupMenuChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F65E0EAE00A6006C2098 /* PopupMenuChromium.cpp */; };
- E473F6620EAE00D5006C2098 /* ScrollViewChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6610EAE00D5006C2098 /* ScrollViewChromium.cpp */; };
+ E473F6620EAE00D5006C2098 /* ScrollView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6610EAE00D5006C2098 /* ScrollView.cpp */; };
E473F6640EAE00E4006C2098 /* SearchPopupMenuChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6630EAE00E4006C2098 /* SearchPopupMenuChromium.cpp */; };
E473F6660EAE00F4006C2098 /* SharedTimerChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6650EAE00F4006C2098 /* SharedTimerChromium.cpp */; };
E473F6680EAE0109006C2098 /* SoundPosix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E473F6670EAE0109006C2098 /* SoundPosix.cpp */; };
@@ -1351,6 +1392,8 @@
/* Begin PBXFileReference section */
046192AA0EA5476500FB37B0 /* BitmapImageSingleFrameSkia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitmapImageSingleFrameSkia.h; sourceTree = "<group>"; };
4D11C4D90E9ABE9200EF7617 /* ExceptionContextV8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ExceptionContextV8.cpp; sourceTree = "<group>"; };
+ 4D329F8A0EB908A40041FB7E /* V8MessageChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8MessageChannel.cpp; sourceTree = "<group>"; };
+ 4D329F8B0EB908A40041FB7E /* V8MessageChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8MessageChannel.h; sourceTree = "<group>"; };
4D7B071E0E9DAE56009A6919 /* GraphicsContextStub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContextStub.cpp; sourceTree = "<group>"; };
4DB044220EB161D600A5633C /* IconMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconMac.cpp; sourceTree = "<group>"; };
4DB044420EB1639E00A5633C /* ImageMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageMac.cpp; sourceTree = "<group>"; };
@@ -1374,8 +1417,6 @@
4DB7EF850E9B9F6300C66CE0 /* V8FileList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8FileList.h; sourceTree = "<group>"; };
4DB7EF860E9B9F6300C66CE0 /* V8ImageData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8ImageData.cpp; sourceTree = "<group>"; };
4DB7EF870E9B9F6300C66CE0 /* V8ImageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8ImageData.h; sourceTree = "<group>"; };
- 4DB7EF880E9B9F6300C66CE0 /* V8NSResolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8NSResolver.cpp; sourceTree = "<group>"; };
- 4DB7EF890E9B9F6300C66CE0 /* V8NSResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8NSResolver.h; sourceTree = "<group>"; };
4DB7EF8A0E9B9F6300C66CE0 /* V8SVGAnimateColorElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGAnimateColorElement.cpp; sourceTree = "<group>"; };
4DB7EF8B0E9B9F6300C66CE0 /* V8SVGAnimateColorElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGAnimateColorElement.h; sourceTree = "<group>"; };
4DB7EF8C0E9B9F6300C66CE0 /* V8SVGAnimateElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGAnimateElement.cpp; sourceTree = "<group>"; };
@@ -1460,13 +1501,13 @@
4DB7F1000E9BAB5600C66CE0 /* WebKitAnimationEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitAnimationEvent.h; sourceTree = "<group>"; };
4DB7F1010E9BAB5600C66CE0 /* WebKitTransitionEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitTransitionEvent.cpp; sourceTree = "<group>"; };
4DB7F1020E9BAB5600C66CE0 /* WebKitTransitionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitTransitionEvent.h; sourceTree = "<group>"; };
- 4DB7F1140E9BAC1500C66CE0 /* Archive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Archive.h; sourceTree = "<group>"; };
- 4DB7F1150E9BAC1500C66CE0 /* ArchiveFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveFactory.cpp; sourceTree = "<group>"; };
- 4DB7F1160E9BAC1500C66CE0 /* ArchiveFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArchiveFactory.h; sourceTree = "<group>"; };
- 4DB7F1170E9BAC1500C66CE0 /* ArchiveResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveResource.cpp; sourceTree = "<group>"; };
- 4DB7F1180E9BAC1500C66CE0 /* ArchiveResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArchiveResource.h; sourceTree = "<group>"; };
- 4DB7F1190E9BAC1500C66CE0 /* ArchiveResourceCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ArchiveResourceCollection.cpp; sourceTree = "<group>"; };
- 4DB7F11A0E9BAC1500C66CE0 /* ArchiveResourceCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ArchiveResourceCollection.h; sourceTree = "<group>"; };
+ 4DB7F1140E9BAC1500C66CE0 /* Archive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Archive.h; path = archive/Archive.h; sourceTree = "<group>"; };
+ 4DB7F1150E9BAC1500C66CE0 /* ArchiveFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArchiveFactory.cpp; path = archive/ArchiveFactory.cpp; sourceTree = "<group>"; };
+ 4DB7F1160E9BAC1500C66CE0 /* ArchiveFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArchiveFactory.h; path = archive/ArchiveFactory.h; sourceTree = "<group>"; };
+ 4DB7F1170E9BAC1500C66CE0 /* ArchiveResource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArchiveResource.cpp; path = archive/ArchiveResource.cpp; sourceTree = "<group>"; };
+ 4DB7F1180E9BAC1500C66CE0 /* ArchiveResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArchiveResource.h; path = archive/ArchiveResource.h; sourceTree = "<group>"; };
+ 4DB7F1190E9BAC1500C66CE0 /* ArchiveResourceCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArchiveResourceCollection.cpp; path = archive/ArchiveResourceCollection.cpp; sourceTree = "<group>"; };
+ 4DB7F11A0E9BAC1500C66CE0 /* ArchiveResourceCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArchiveResourceCollection.h; path = archive/ArchiveResourceCollection.h; sourceTree = "<group>"; };
4DB7F1D80E9BAD5400C66CE0 /* SMILTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMILTime.cpp; sourceTree = "<group>"; };
4DB7F1D90E9BAD5400C66CE0 /* SMILTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMILTime.h; sourceTree = "<group>"; };
4DB7F1DA0E9BAD5400C66CE0 /* SMILTimeContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMILTimeContainer.cpp; sourceTree = "<group>"; };
@@ -1507,8 +1548,6 @@
4DB7F5270E9BD3FB00C66CE0 /* ThreadingPthreads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadingPthreads.cpp; sourceTree = "<group>"; };
4DB7F5280E9BD3FB00C66CE0 /* ThreadSpecific.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadSpecific.h; sourceTree = "<group>"; };
4DB7F5410E9BD50600C66CE0 /* MainThreadMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainThreadMac.mm; sourceTree = "<group>"; };
- 4DB7F5570E9BD66300C66CE0 /* JSNSResolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNSResolver.cpp; sourceTree = "<group>"; };
- 4DB7F5580E9BD66300C66CE0 /* JSNSResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNSResolver.h; sourceTree = "<group>"; };
4DB7F5590E9BD66300C66CE0 /* v8_collection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = v8_collection.h; sourceTree = "<group>"; };
4DB7F55A0E9BD66300C66CE0 /* V8SVGPODTypeWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGPODTypeWrapper.h; sourceTree = "<group>"; };
4DB7F55B0E9BD66300C66CE0 /* V8XMLHttpRequestCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8XMLHttpRequestCustom.cpp; sourceTree = "<group>"; };
@@ -1524,12 +1563,12 @@
4DB7F9E80E9BECB500C66CE0 /* NetworkStateNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkStateNotifier.h; path = pending/NetworkStateNotifier.h; sourceTree = SOURCE_ROOT; };
4DB7F9ED0E9BECEC00C66CE0 /* AuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallenge.h; sourceTree = "<group>"; };
4DB7F9EE0E9BECEC00C66CE0 /* NetworkStateNotifierMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkStateNotifierMac.cpp; sourceTree = "<group>"; };
- 4DB7FA080E9BEDC900C66CE0 /* LegacyWebArchiveMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LegacyWebArchiveMac.mm; path = cf/LegacyWebArchiveMac.mm; sourceTree = "<group>"; };
- 4DB7FA410E9BF0CA00C66CE0 /* StyleCachedImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StyleCachedImage.cpp; path = style/StyleCachedImage.cpp; sourceTree = "<group>"; };
- 4DB7FA420E9BF0CA00C66CE0 /* StyleCachedImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleCachedImage.h; path = style/StyleCachedImage.h; sourceTree = "<group>"; };
- 4DB7FA430E9BF0CA00C66CE0 /* StyleGeneratedImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StyleGeneratedImage.cpp; path = style/StyleGeneratedImage.cpp; sourceTree = "<group>"; };
- 4DB7FA440E9BF0CA00C66CE0 /* StyleGeneratedImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleGeneratedImage.h; path = style/StyleGeneratedImage.h; sourceTree = "<group>"; };
- 4DB7FA450E9BF0CA00C66CE0 /* StyleImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StyleImage.h; path = style/StyleImage.h; sourceTree = "<group>"; };
+ 4DB7FA080E9BEDC900C66CE0 /* LegacyWebArchiveMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LegacyWebArchiveMac.mm; path = archive/cf/LegacyWebArchiveMac.mm; sourceTree = "<group>"; };
+ 4DB7FA410E9BF0CA00C66CE0 /* StyleCachedImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleCachedImage.cpp; sourceTree = "<group>"; };
+ 4DB7FA420E9BF0CA00C66CE0 /* StyleCachedImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleCachedImage.h; sourceTree = "<group>"; };
+ 4DB7FA430E9BF0CA00C66CE0 /* StyleGeneratedImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleGeneratedImage.cpp; sourceTree = "<group>"; };
+ 4DB7FA440E9BF0CA00C66CE0 /* StyleGeneratedImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleGeneratedImage.h; sourceTree = "<group>"; };
+ 4DB7FA450E9BF0CA00C66CE0 /* StyleImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleImage.h; sourceTree = "<group>"; };
4DB7FE690E9BF69A00C66CE0 /* WebSystemInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSystemInterface.h; sourceTree = "<group>"; };
4DB7FE6A0E9BF69A00C66CE0 /* WebSystemInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebSystemInterface.m; sourceTree = "<group>"; };
4DB7FE6F0E9BF6AC00C66CE0 /* libwebcoresysteminterface.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwebcoresysteminterface.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1732,8 +1771,6 @@
7B0091F40DAFEFE300F72082 /* V8HTMLScriptElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HTMLScriptElement.h; sourceTree = "<group>"; };
7B0091F50DAFEFE300F72082 /* V8HTMLSelectElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8HTMLSelectElement.cpp; sourceTree = "<group>"; };
7B0091F60DAFEFE300F72082 /* V8HTMLSelectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HTMLSelectElement.h; sourceTree = "<group>"; };
- 7B0091F70DAFEFE300F72082 /* V8HTMLSelectionInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8HTMLSelectionInputElement.cpp; sourceTree = "<group>"; };
- 7B0091F80DAFEFE300F72082 /* V8HTMLSelectionInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HTMLSelectionInputElement.h; sourceTree = "<group>"; };
7B0091FB0DAFEFE300F72082 /* V8HTMLStyleElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8HTMLStyleElement.cpp; sourceTree = "<group>"; };
7B0091FC0DAFEFE300F72082 /* V8HTMLStyleElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HTMLStyleElement.h; sourceTree = "<group>"; };
7B0091FD0DAFEFE300F72082 /* V8HTMLTableCaptionElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8HTMLTableCaptionElement.cpp; sourceTree = "<group>"; };
@@ -2087,15 +2124,15 @@
7B0096160DAFF19C00F72082 /* Location.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Location.h; sourceTree = "<group>"; };
7B00961D0DAFF19C00F72082 /* ScheduledAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScheduledAction.h; sourceTree = "<group>"; };
7B0096290DAFF1D000F72082 /* InspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InspectorController.cpp; path = port/page/inspector/InspectorController.cpp; sourceTree = "<group>"; };
- 7B0E595B0DB3D195007D4907 /* IconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconDatabase.h; sourceTree = "<group>"; };
- 7B0E595C0DB3D195007D4907 /* IconDatabaseClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconDatabaseClient.h; sourceTree = "<group>"; };
- 7B0E595D0DB3D195007D4907 /* IconDatabaseNone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabaseNone.cpp; sourceTree = "<group>"; };
- 7B0E595E0DB3D195007D4907 /* IconLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconLoader.cpp; sourceTree = "<group>"; };
- 7B0E595F0DB3D195007D4907 /* IconLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconLoader.h; sourceTree = "<group>"; };
- 7B0E59600DB3D195007D4907 /* IconRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconRecord.cpp; sourceTree = "<group>"; };
- 7B0E59610DB3D195007D4907 /* IconRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconRecord.h; sourceTree = "<group>"; };
- 7B0E59620DB3D195007D4907 /* PageURLRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageURLRecord.cpp; sourceTree = "<group>"; };
- 7B0E59630DB3D195007D4907 /* PageURLRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageURLRecord.h; sourceTree = "<group>"; };
+ 7B0E595B0DB3D195007D4907 /* IconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IconDatabase.h; path = icon/IconDatabase.h; sourceTree = "<group>"; };
+ 7B0E595C0DB3D195007D4907 /* IconDatabaseClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IconDatabaseClient.h; path = icon/IconDatabaseClient.h; sourceTree = "<group>"; };
+ 7B0E595D0DB3D195007D4907 /* IconDatabaseNone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IconDatabaseNone.cpp; path = icon/IconDatabaseNone.cpp; sourceTree = "<group>"; };
+ 7B0E595E0DB3D195007D4907 /* IconLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IconLoader.cpp; path = icon/IconLoader.cpp; sourceTree = "<group>"; };
+ 7B0E595F0DB3D195007D4907 /* IconLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IconLoader.h; path = icon/IconLoader.h; sourceTree = "<group>"; };
+ 7B0E59600DB3D195007D4907 /* IconRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IconRecord.cpp; path = icon/IconRecord.cpp; sourceTree = "<group>"; };
+ 7B0E59610DB3D195007D4907 /* IconRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IconRecord.h; path = icon/IconRecord.h; sourceTree = "<group>"; };
+ 7B0E59620DB3D195007D4907 /* PageURLRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PageURLRecord.cpp; path = icon/PageURLRecord.cpp; sourceTree = "<group>"; };
+ 7B0E59630DB3D195007D4907 /* PageURLRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PageURLRecord.h; path = icon/PageURLRecord.h; sourceTree = "<group>"; };
7B14AA450DE323CD00F4E646 /* CachedPage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedPage.cpp; sourceTree = "<group>"; };
7B14AA460DE323CD00F4E646 /* CachedPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedPage.h; sourceTree = "<group>"; };
7B14AAA80DE3340400F4E646 /* CharsetData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CharsetData.cpp; sourceTree = "<group>"; };
@@ -2381,7 +2418,7 @@
7B5E8A5B0D7F3A7C001ECF42 /* TextEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextEvent.cpp; sourceTree = "<group>"; };
7B5E8A5C0D7F3A7C001ECF42 /* TextEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextEvent.h; sourceTree = "<group>"; };
7B5E8A5E0D7F3A7C001ECF42 /* Tokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tokenizer.h; sourceTree = "<group>"; };
- 7B5E8A5F0D7F3A7C001ECF42 /* Traversal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Traversal.cpp; path = ../../../../webkit/pending/Traversal.cpp; sourceTree = "<group>"; };
+ 7B5E8A5F0D7F3A7C001ECF42 /* Traversal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Traversal.cpp; sourceTree = "<group>"; };
7B5E8A600D7F3A7C001ECF42 /* Traversal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Traversal.h; sourceTree = "<group>"; };
7B5E8A610D7F3A7C001ECF42 /* TreeWalker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TreeWalker.cpp; sourceTree = "<group>"; };
7B5E8A620D7F3A7C001ECF42 /* TreeWalker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeWalker.h; sourceTree = "<group>"; };
@@ -2405,7 +2442,7 @@
7B5E8B030D7F3AFA001ECF42 /* CreateLinkCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreateLinkCommand.h; sourceTree = "<group>"; };
7B5E8B040D7F3AFA001ECF42 /* DeleteButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteButton.cpp; sourceTree = "<group>"; };
7B5E8B050D7F3AFA001ECF42 /* DeleteButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteButton.h; sourceTree = "<group>"; };
- 7B5E8B060D7F3AFA001ECF42 /* DeleteButtonController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DeleteButtonController.cpp; path = ../../../../webkit/pending/DeleteButtonController.cpp; sourceTree = "<group>"; };
+ 7B5E8B060D7F3AFA001ECF42 /* DeleteButtonController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteButtonController.cpp; sourceTree = "<group>"; };
7B5E8B070D7F3AFA001ECF42 /* DeleteButtonController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteButtonController.h; sourceTree = "<group>"; };
7B5E8B080D7F3AFA001ECF42 /* DeleteFromTextNodeCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeleteFromTextNodeCommand.cpp; sourceTree = "<group>"; };
7B5E8B090D7F3AFA001ECF42 /* DeleteFromTextNodeCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeleteFromTextNodeCommand.h; sourceTree = "<group>"; };
@@ -2706,9 +2743,9 @@
7B5E8DC20D7F3C01001ECF42 /* ImageDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageDocument.h; sourceTree = "<group>"; };
7B5E8DC30D7F3C01001ECF42 /* loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loader.cpp; sourceTree = "<group>"; };
7B5E8DC40D7F3C01001ECF42 /* loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loader.h; sourceTree = "<group>"; };
- 7B5E8DC60D7F3C01001ECF42 /* LoaderNSURLExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoaderNSURLExtras.h; sourceTree = "<group>"; };
- 7B5E8DC70D7F3C01001ECF42 /* LoaderNSURLExtras.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = LoaderNSURLExtras.mm; sourceTree = "<group>"; };
- 7B5E8DC80D7F3C01001ECF42 /* ResourceLoaderMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceLoaderMac.mm; sourceTree = "<group>"; };
+ 7B5E8DC60D7F3C01001ECF42 /* LoaderNSURLExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LoaderNSURLExtras.h; path = mac/LoaderNSURLExtras.h; sourceTree = "<group>"; };
+ 7B5E8DC70D7F3C01001ECF42 /* LoaderNSURLExtras.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; name = LoaderNSURLExtras.mm; path = mac/LoaderNSURLExtras.mm; sourceTree = "<group>"; };
+ 7B5E8DC80D7F3C01001ECF42 /* ResourceLoaderMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ResourceLoaderMac.mm; path = mac/ResourceLoaderMac.mm; sourceTree = "<group>"; };
7B5E8DC90D7F3C01001ECF42 /* UserStyleSheetLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserStyleSheetLoader.cpp; sourceTree = "<group>"; };
7B5E8DCA0D7F3C01001ECF42 /* UserStyleSheetLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserStyleSheetLoader.h; sourceTree = "<group>"; };
7B5E8DCB0D7F3C01001ECF42 /* MainResourceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MainResourceLoader.cpp; sourceTree = "<group>"; };
@@ -2766,9 +2803,9 @@
7B5E8E5C0D7F3C48001ECF42 /* FrameView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameView.h; sourceTree = "<group>"; };
7B5E8E610D7F3C48001ECF42 /* History.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = History.cpp; sourceTree = "<group>"; };
7B5E8E620D7F3C48001ECF42 /* History.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = History.h; sourceTree = "<group>"; };
- 7B5E8EF80D7F3C48001ECF42 /* InspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorClient.h; sourceTree = "<group>"; };
+ 7B5E8EF80D7F3C48001ECF42 /* InspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorClient.h; path = ../inspector/InspectorClient.h; sourceTree = "<group>"; };
7B5E8EF90D7F3C48001ECF42 /* InspectorController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InspectorController.cpp; path = ../../../../webkit/port/page/inspector/InspectorController.cpp; sourceTree = "<group>"; };
- 7B5E8EFA0D7F3C48001ECF42 /* InspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorController.h; path = ../../../../webkit/pending/InspectorController.h; sourceTree = "<group>"; };
+ 7B5E8EFA0D7F3C48001ECF42 /* InspectorController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorController.h; path = ../inspector/InspectorController.h; sourceTree = "<group>"; };
7B5E8EFD0D7F3C48001ECF42 /* ChromeMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ChromeMac.mm; sourceTree = "<group>"; };
7B5E8EFE0D7F3C48001ECF42 /* DragControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DragControllerMac.mm; sourceTree = "<group>"; };
7B5E8EFF0D7F3C48001ECF42 /* EventHandlerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EventHandlerMac.mm; sourceTree = "<group>"; };
@@ -2942,8 +2979,8 @@
7B5E90ED0D7F3CC2001ECF42 /* PasteboardHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PasteboardHelper.h; sourceTree = "<group>"; };
7B5E90EE0D7F3CC2001ECF42 /* PasteboardMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PasteboardMac.mm; path = ../../../../../webkit/port/platform/mac/PasteboardMac.mm; sourceTree = "<group>"; };
7B5E90EF0D7F3CC2001ECF42 /* PlatformMouseEventMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformMouseEventMac.mm; sourceTree = "<group>"; };
- 7B5E90F10D7F3CC2001ECF42 /* PlatformScrollBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformScrollBar.h; sourceTree = "<group>"; };
- 7B5E90F20D7F3CC2001ECF42 /* PlatformScrollBarMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformScrollBarMac.mm; sourceTree = "<group>"; };
+ 7B5E90F10D7F3CC2001ECF42 /* ScrollbarThemeMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarThemeMac.h; sourceTree = "<group>"; };
+ 7B5E90F20D7F3CC2001ECF42 /* ScrollbarThemeMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollbarThemeMac.mm; sourceTree = "<group>"; };
7B5E90F40D7F3CC2001ECF42 /* PopupMenuMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PopupMenuMac.mm; sourceTree = "<group>"; };
7B5E90F60D7F3CC2001ECF42 /* SearchPopupMenuMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SearchPopupMenuMac.mm; sourceTree = "<group>"; };
7B5E90F70D7F3CC2001ECF42 /* SharedBufferMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SharedBufferMac.mm; sourceTree = "<group>"; };
@@ -3003,9 +3040,8 @@
7B5E91590D7F3CC2001ECF42 /* PlatformWheelEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformWheelEvent.h; sourceTree = "<group>"; };
7B5E915A0D7F3CC2001ECF42 /* PopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenu.h; sourceTree = "<group>"; };
7B5E915B0D7F3CC2001ECF42 /* PopupMenuClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuClient.h; sourceTree = "<group>"; };
- 7B5E915D0D7F3CC2001ECF42 /* FileSystemPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemPOSIX.cpp; sourceTree = "<group>"; };
- 7B5E91870D7F3CC2001ECF42 /* ScrollBar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollBar.cpp; sourceTree = "<group>"; };
- 7B5E91880D7F3CC2001ECF42 /* ScrollBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollBar.h; sourceTree = "<group>"; };
+ 7B5E91870D7F3CC2001ECF42 /* Scrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Scrollbar.cpp; sourceTree = "<group>"; };
+ 7B5E91880D7F3CC2001ECF42 /* Scrollbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scrollbar.h; sourceTree = "<group>"; };
7B5E91890D7F3CC2001ECF42 /* ScrollTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollTypes.h; sourceTree = "<group>"; };
7B5E918A0D7F3CC2001ECF42 /* ScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollView.h; sourceTree = "<group>"; };
7B5E918B0D7F3CC2001ECF42 /* SearchPopupMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchPopupMenu.h; sourceTree = "<group>"; };
@@ -3158,7 +3194,7 @@
7B5E95640D7F3E95001ECF42 /* RenderListMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderListMarker.h; sourceTree = "<group>"; };
7B5E95650D7F3E95001ECF42 /* RenderMedia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMedia.cpp; sourceTree = "<group>"; };
7B5E95660D7F3E95001ECF42 /* RenderMedia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMedia.h; sourceTree = "<group>"; };
- 7B5E95670D7F3E95001ECF42 /* RenderMenuList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderMenuList.cpp; path = ../../../../webkit/pending/RenderMenuList.cpp; sourceTree = "<group>"; };
+ 7B5E95670D7F3E95001ECF42 /* RenderMenuList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMenuList.cpp; sourceTree = "<group>"; };
7B5E95680D7F3E95001ECF42 /* RenderMenuList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMenuList.h; sourceTree = "<group>"; };
7B5E956B0D7F3E95001ECF42 /* RenderPart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderPart.cpp; sourceTree = "<group>"; };
7B5E956D0D7F3E95001ECF42 /* RenderPartObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderPartObject.cpp; sourceTree = "<group>"; };
@@ -3210,7 +3246,6 @@
7B5E959F0D7F3E95001ECF42 /* RenderTextFragment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTextFragment.cpp; sourceTree = "<group>"; };
7B5E95A00D7F3E95001ECF42 /* RenderTextFragment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTextFragment.h; sourceTree = "<group>"; };
7B5E95A10D7F3E95001ECF42 /* RenderTheme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTheme.cpp; sourceTree = "<group>"; };
- 7B5E95A20D7F3E95001ECF42 /* RenderTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderTheme.h; path = ../../../../webkit/pending/RenderTheme.h; sourceTree = "<group>"; };
7B5E95A30D7F3E95001ECF42 /* RenderThemeMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderThemeMac.h; path = ../../../../webkit/pending/RenderThemeMac.h; sourceTree = "<group>"; };
7B5E95AA0D7F3E95001ECF42 /* RenderTreeAsText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeAsText.cpp; sourceTree = "<group>"; };
7B5E95AB0D7F3E95001ECF42 /* RenderTreeAsText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeAsText.h; sourceTree = "<group>"; };
@@ -3826,38 +3861,192 @@
93BF8E650EA6AED30030F05C /* ResourceRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceRequest.h; path = chromium/ResourceRequest.h; sourceTree = "<group>"; };
93BF8E660EA6AED30030F05C /* ResourceResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceResponse.h; path = chromium/ResourceResponse.h; sourceTree = "<group>"; };
93BF8F510EA6BD870030F05C /* AccessibilityObjectChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AccessibilityObjectChromium.cpp; path = chromium/AccessibilityObjectChromium.cpp; sourceTree = "<group>"; };
- AB0240640E9565F7006D59C8 /* DocumentLoaderMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentLoaderMac.cpp; sourceTree = "<group>"; };
+ AB0240640E9565F7006D59C8 /* DocumentLoaderMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DocumentLoaderMac.cpp; path = mac/DocumentLoaderMac.cpp; sourceTree = "<group>"; };
AB332F4B0E95497E0020F882 /* AnimationController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AnimationController.cpp; path = animation/AnimationController.cpp; sourceTree = "<group>"; };
AB332F4C0E95497E0020F882 /* AnimationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AnimationController.h; path = animation/AnimationController.h; sourceTree = "<group>"; };
AB50EA1C0E9AB12B00FDD61B /* EmptyClients.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmptyClients.h; sourceTree = "<group>"; };
AB8FE8A40E9BCD3E0051E7B4 /* GKURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GKURL.cpp; sourceTree = "<group>"; };
ABA23E6B0E9FC43700C96905 /* Navigator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Navigator.cpp; sourceTree = "<group>"; };
+ ABBD23810EB7A8D200BEC658 /* StyleInheritedData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleInheritedData.cpp; sourceTree = "<group>"; };
+ ABBD23830EB7A8EC00BEC658 /* StyleInheritedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleInheritedData.h; sourceTree = "<group>"; };
+ ABBD23930EB7A95B00BEC658 /* StyleMarqueeData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleMarqueeData.cpp; sourceTree = "<group>"; };
+ ABBD23940EB7A95B00BEC658 /* StyleMarqueeData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleMarqueeData.h; sourceTree = "<group>"; };
+ ABBD23950EB7A95B00BEC658 /* StyleMultiColData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleMultiColData.cpp; sourceTree = "<group>"; };
+ ABBD23960EB7A95B00BEC658 /* StyleMultiColData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleMultiColData.h; sourceTree = "<group>"; };
+ ABBD23970EB7A95B00BEC658 /* StyleRareInheritedData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleRareInheritedData.cpp; sourceTree = "<group>"; };
+ ABBD23980EB7A95B00BEC658 /* StyleRareInheritedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleRareInheritedData.h; sourceTree = "<group>"; };
+ ABBD23990EB7A95B00BEC658 /* StyleRareNonInheritedData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleRareNonInheritedData.cpp; sourceTree = "<group>"; };
+ ABBD239A0EB7A95B00BEC658 /* StyleRareNonInheritedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleRareNonInheritedData.h; sourceTree = "<group>"; };
+ ABBD239B0EB7A95B00BEC658 /* StyleReflection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleReflection.h; sourceTree = "<group>"; };
+ ABBD239C0EB7A95B00BEC658 /* StyleSurroundData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSurroundData.cpp; sourceTree = "<group>"; };
+ ABBD239D0EB7A95B00BEC658 /* StyleSurroundData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleSurroundData.h; sourceTree = "<group>"; };
+ ABBD239E0EB7A95B00BEC658 /* StyleTransformData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleTransformData.cpp; sourceTree = "<group>"; };
+ ABBD239F0EB7A95B00BEC658 /* StyleTransformData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleTransformData.h; sourceTree = "<group>"; };
+ ABBD23A00EB7A95B00BEC658 /* StyleVisualData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleVisualData.cpp; sourceTree = "<group>"; };
+ ABBD23A10EB7A95B00BEC658 /* StyleVisualData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleVisualData.h; sourceTree = "<group>"; };
+ ABBD23AB0EB7AC1300BEC658 /* Animation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Animation.cpp; sourceTree = "<group>"; };
+ ABBD23AC0EB7AC1300BEC658 /* Animation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Animation.h; sourceTree = "<group>"; };
+ ABBD23AD0EB7AC1300BEC658 /* AnimationList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnimationList.cpp; sourceTree = "<group>"; };
+ ABBD23AE0EB7AC1300BEC658 /* AnimationList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimationList.h; sourceTree = "<group>"; };
+ ABBD23AF0EB7AC1300BEC658 /* BindingURI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BindingURI.cpp; sourceTree = "<group>"; };
+ ABBD23B00EB7AC1300BEC658 /* BindingURI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BindingURI.h; sourceTree = "<group>"; };
+ ABBD23B10EB7AC1300BEC658 /* BorderData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BorderData.h; sourceTree = "<group>"; };
+ ABBD23B20EB7AC1300BEC658 /* BorderValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BorderValue.h; sourceTree = "<group>"; };
+ ABBD23B30EB7AC1300BEC658 /* CollapsedBorderValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollapsedBorderValue.h; sourceTree = "<group>"; };
+ ABBD23B40EB7AC1300BEC658 /* ContentData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContentData.cpp; sourceTree = "<group>"; };
+ ABBD23B50EB7AC1300BEC658 /* ContentData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContentData.h; sourceTree = "<group>"; };
+ ABBD23B60EB7AC1300BEC658 /* CounterContent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CounterContent.h; sourceTree = "<group>"; };
+ ABBD23B70EB7AC1300BEC658 /* CounterDirectives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CounterDirectives.cpp; sourceTree = "<group>"; };
+ ABBD23B80EB7AC1300BEC658 /* CounterDirectives.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CounterDirectives.h; sourceTree = "<group>"; };
+ ABBD23B90EB7AC1300BEC658 /* CursorData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CursorData.h; sourceTree = "<group>"; };
+ ABBD23BA0EB7AC1300BEC658 /* CursorList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CursorList.h; sourceTree = "<group>"; };
+ ABBD23BB0EB7AC1300BEC658 /* DataRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataRef.h; sourceTree = "<group>"; };
+ ABBD23BC0EB7AC1300BEC658 /* FillLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FillLayer.cpp; sourceTree = "<group>"; };
+ ABBD23BD0EB7AC1300BEC658 /* FillLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FillLayer.h; sourceTree = "<group>"; };
+ ABBD23BE0EB7AC1300BEC658 /* IdentityTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IdentityTransformOperation.h; sourceTree = "<group>"; };
+ ABBD23BF0EB7AC1300BEC658 /* KeyframeList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KeyframeList.cpp; sourceTree = "<group>"; };
+ ABBD23C00EB7AC1300BEC658 /* KeyframeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyframeList.h; sourceTree = "<group>"; };
+ ABBD23C10EB7AC1300BEC658 /* MatrixTransformOperation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MatrixTransformOperation.cpp; sourceTree = "<group>"; };
+ ABBD23C20EB7AC1300BEC658 /* MatrixTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MatrixTransformOperation.h; sourceTree = "<group>"; };
+ ABBD23D30EB7ACA600BEC658 /* OutlineValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OutlineValue.h; sourceTree = "<group>"; };
+ ABBD23D40EB7ACA600BEC658 /* RenderStyleConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderStyleConstants.h; sourceTree = "<group>"; };
+ ABBD23D50EB7ACA600BEC658 /* RotateTransformOperation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RotateTransformOperation.cpp; sourceTree = "<group>"; };
+ ABBD23D60EB7ACA600BEC658 /* RotateTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RotateTransformOperation.h; sourceTree = "<group>"; };
+ ABBD23D70EB7ACA600BEC658 /* ScaleTransformOperation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScaleTransformOperation.cpp; sourceTree = "<group>"; };
+ ABBD23D80EB7ACA600BEC658 /* ScaleTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScaleTransformOperation.h; sourceTree = "<group>"; };
+ ABBD23D90EB7ACA600BEC658 /* ShadowData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShadowData.cpp; sourceTree = "<group>"; };
+ ABBD23DA0EB7ACA600BEC658 /* ShadowData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShadowData.h; sourceTree = "<group>"; };
+ ABBD23DB0EB7ACA600BEC658 /* SkewTransformOperation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SkewTransformOperation.cpp; sourceTree = "<group>"; };
+ ABBD23DC0EB7ACA600BEC658 /* SkewTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SkewTransformOperation.h; sourceTree = "<group>"; };
+ ABBD23DD0EB7ACA600BEC658 /* StyleBackgroundData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleBackgroundData.cpp; sourceTree = "<group>"; };
+ ABBD23DE0EB7ACA600BEC658 /* StyleBackgroundData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBackgroundData.h; sourceTree = "<group>"; };
+ ABBD23DF0EB7ACA600BEC658 /* StyleBoxData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleBoxData.cpp; sourceTree = "<group>"; };
+ ABBD23E00EB7ACA600BEC658 /* StyleBoxData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBoxData.h; sourceTree = "<group>"; };
+ ABBD23E10EB7ACA600BEC658 /* StyleDashboardRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleDashboardRegion.h; sourceTree = "<group>"; };
+ ABBD23E20EB7ACA600BEC658 /* StyleFlexibleBoxData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleFlexibleBoxData.cpp; sourceTree = "<group>"; };
+ ABBD23E30EB7ACA600BEC658 /* StyleFlexibleBoxData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleFlexibleBoxData.h; sourceTree = "<group>"; };
+ ABBD23E40EB7ACA600BEC658 /* TimingFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimingFunction.h; sourceTree = "<group>"; };
+ ABBD23E50EB7ACA600BEC658 /* TransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransformOperation.h; sourceTree = "<group>"; };
+ ABBD23E60EB7ACA600BEC658 /* TransformOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TransformOperations.cpp; sourceTree = "<group>"; };
+ ABBD23E70EB7ACA600BEC658 /* TransformOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TransformOperations.h; sourceTree = "<group>"; };
+ ABBD23E80EB7ACA600BEC658 /* TranslateTransformOperation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TranslateTransformOperation.cpp; sourceTree = "<group>"; };
+ ABBD23E90EB7ACA600BEC658 /* TranslateTransformOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranslateTransformOperation.h; sourceTree = "<group>"; };
+ ABBD24000EB7AE0700BEC658 /* V8Database.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8Database.cpp; sourceTree = "<group>"; };
+ ABBD24010EB7AE0700BEC658 /* V8Database.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8Database.h; sourceTree = "<group>"; };
+ ABBD24020EB7AE0700BEC658 /* V8MessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8MessagePort.cpp; sourceTree = "<group>"; };
+ ABBD24030EB7AE0700BEC658 /* V8MessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8MessagePort.h; sourceTree = "<group>"; };
+ ABBD24040EB7AE0700BEC658 /* V8SVGComponentTransferFunctionElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGComponentTransferFunctionElement.cpp; sourceTree = "<group>"; };
+ ABBD24050EB7AE0700BEC658 /* V8SVGComponentTransferFunctionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGComponentTransferFunctionElement.h; sourceTree = "<group>"; };
+ ABBD24060EB7AE0700BEC658 /* V8SVGFEBlendElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEBlendElement.cpp; sourceTree = "<group>"; };
+ ABBD24070EB7AE0700BEC658 /* V8SVGFEBlendElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEBlendElement.h; sourceTree = "<group>"; };
+ ABBD24080EB7AE0700BEC658 /* V8SVGFEColorMatrixElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEColorMatrixElement.cpp; sourceTree = "<group>"; };
+ ABBD24090EB7AE0700BEC658 /* V8SVGFEColorMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEColorMatrixElement.h; sourceTree = "<group>"; };
+ ABBD240A0EB7AE0700BEC658 /* V8SVGFEComponentTransferElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEComponentTransferElement.cpp; sourceTree = "<group>"; };
+ ABBD240B0EB7AE0700BEC658 /* V8SVGFEComponentTransferElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEComponentTransferElement.h; sourceTree = "<group>"; };
+ ABBD240C0EB7AE0700BEC658 /* V8SVGFECompositeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFECompositeElement.cpp; sourceTree = "<group>"; };
+ ABBD240D0EB7AE0700BEC658 /* V8SVGFECompositeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFECompositeElement.h; sourceTree = "<group>"; };
+ ABBD240E0EB7AE0700BEC658 /* V8SVGFEDiffuseLightingElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEDiffuseLightingElement.cpp; sourceTree = "<group>"; };
+ ABBD240F0EB7AE0700BEC658 /* V8SVGFEDiffuseLightingElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEDiffuseLightingElement.h; sourceTree = "<group>"; };
+ ABBD24100EB7AE0700BEC658 /* V8SVGFEDisplacementMapElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEDisplacementMapElement.cpp; sourceTree = "<group>"; };
+ ABBD24110EB7AE0700BEC658 /* V8SVGFEDisplacementMapElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEDisplacementMapElement.h; sourceTree = "<group>"; };
+ ABBD24120EB7AE0700BEC658 /* V8SVGFEDistantLightElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEDistantLightElement.cpp; sourceTree = "<group>"; };
+ ABBD24130EB7AE0700BEC658 /* V8SVGFEDistantLightElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEDistantLightElement.h; sourceTree = "<group>"; };
+ ABBD24140EB7AE0700BEC658 /* V8SVGFEFloodElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEFloodElement.cpp; sourceTree = "<group>"; };
+ ABBD24150EB7AE0700BEC658 /* V8SVGFEFloodElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEFloodElement.h; sourceTree = "<group>"; };
+ ABBD24160EB7AE0700BEC658 /* V8SVGFEFuncAElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEFuncAElement.cpp; sourceTree = "<group>"; };
+ ABBD24170EB7AE0700BEC658 /* V8SVGFEFuncAElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEFuncAElement.h; sourceTree = "<group>"; };
+ ABBD24180EB7AE0700BEC658 /* V8SVGFEFuncBElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEFuncBElement.cpp; sourceTree = "<group>"; };
+ ABBD24190EB7AE0700BEC658 /* V8SVGFEFuncBElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEFuncBElement.h; sourceTree = "<group>"; };
+ ABBD241A0EB7AE0700BEC658 /* V8SVGFEFuncGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEFuncGElement.cpp; sourceTree = "<group>"; };
+ ABBD241B0EB7AE0700BEC658 /* V8SVGFEFuncGElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEFuncGElement.h; sourceTree = "<group>"; };
+ ABBD241C0EB7AE0700BEC658 /* V8SVGFEFuncRElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEFuncRElement.cpp; sourceTree = "<group>"; };
+ ABBD241D0EB7AE0700BEC658 /* V8SVGFEFuncRElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEFuncRElement.h; sourceTree = "<group>"; };
+ ABBD241E0EB7AE0700BEC658 /* V8SVGFEGaussianBlurElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEGaussianBlurElement.cpp; sourceTree = "<group>"; };
+ ABBD241F0EB7AE0700BEC658 /* V8SVGFEGaussianBlurElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEGaussianBlurElement.h; sourceTree = "<group>"; };
+ ABBD24200EB7AE0700BEC658 /* V8SVGFEImageElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEImageElement.cpp; sourceTree = "<group>"; };
+ ABBD24210EB7AE0700BEC658 /* V8SVGFEImageElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEImageElement.h; sourceTree = "<group>"; };
+ ABBD24220EB7AE0700BEC658 /* V8SVGFEMergeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEMergeElement.cpp; sourceTree = "<group>"; };
+ ABBD24230EB7AE0700BEC658 /* V8SVGFEMergeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEMergeElement.h; sourceTree = "<group>"; };
+ ABBD24240EB7AE0700BEC658 /* V8SVGFEMergeNodeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEMergeNodeElement.cpp; sourceTree = "<group>"; };
+ ABBD24250EB7AE0700BEC658 /* V8SVGFEMergeNodeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEMergeNodeElement.h; sourceTree = "<group>"; };
+ ABBD24260EB7AE0700BEC658 /* V8SVGFEOffsetElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEOffsetElement.cpp; sourceTree = "<group>"; };
+ ABBD24270EB7AE0700BEC658 /* V8SVGFEOffsetElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEOffsetElement.h; sourceTree = "<group>"; };
+ ABBD24280EB7AE0700BEC658 /* V8SVGFEPointLightElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFEPointLightElement.cpp; sourceTree = "<group>"; };
+ ABBD24290EB7AE0700BEC658 /* V8SVGFEPointLightElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFEPointLightElement.h; sourceTree = "<group>"; };
+ ABBD242A0EB7AE0700BEC658 /* V8SVGFESpecularLightingElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFESpecularLightingElement.cpp; sourceTree = "<group>"; };
+ ABBD242B0EB7AE0700BEC658 /* V8SVGFESpecularLightingElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFESpecularLightingElement.h; sourceTree = "<group>"; };
+ ABBD242C0EB7AE0700BEC658 /* V8SVGFESpotLightElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFESpotLightElement.cpp; sourceTree = "<group>"; };
+ ABBD242D0EB7AE0700BEC658 /* V8SVGFESpotLightElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFESpotLightElement.h; sourceTree = "<group>"; };
+ ABBD242E0EB7AE0700BEC658 /* V8SVGFETileElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFETileElement.cpp; sourceTree = "<group>"; };
+ ABBD242F0EB7AE0700BEC658 /* V8SVGFETileElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFETileElement.h; sourceTree = "<group>"; };
+ ABBD24300EB7AE0700BEC658 /* V8SVGFETurbulenceElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFETurbulenceElement.cpp; sourceTree = "<group>"; };
+ ABBD24310EB7AE0700BEC658 /* V8SVGFETurbulenceElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFETurbulenceElement.h; sourceTree = "<group>"; };
+ ABBD24320EB7AE0700BEC658 /* V8SVGFilterElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8SVGFilterElement.cpp; sourceTree = "<group>"; };
+ ABBD24330EB7AE0700BEC658 /* V8SVGFilterElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8SVGFilterElement.h; sourceTree = "<group>"; };
+ ABBD24340EB7AE0700BEC658 /* V8VoidCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8VoidCallback.cpp; sourceTree = "<group>"; };
+ ABBD24350EB7AE0700BEC658 /* V8VoidCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8VoidCallback.h; sourceTree = "<group>"; };
+ ABBD24660EB7B1DA00BEC658 /* MessageChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageChannel.cpp; sourceTree = "<group>"; };
+ ABBD24670EB7B1DA00BEC658 /* MessageChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageChannel.h; sourceTree = "<group>"; };
+ ABBD24680EB7B1DA00BEC658 /* MessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessagePort.cpp; sourceTree = "<group>"; };
+ ABBD24690EB7B1DA00BEC658 /* MessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessagePort.h; sourceTree = "<group>"; };
+ ABBD246A0EB7B1DA00BEC658 /* NodeRareData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeRareData.h; sourceTree = "<group>"; };
+ ABBD246B0EB7B1DA00BEC658 /* NodeRenderStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeRenderStyle.h; sourceTree = "<group>"; };
+ ABBD246C0EB7B1DA00BEC658 /* XMLTokenizerLibxml2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLTokenizerLibxml2.cpp; sourceTree = "<group>"; };
+ ABBD24780EB7B31B00BEC658 /* V8MessagePortCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8MessagePortCustom.cpp; sourceTree = "<group>"; };
+ ABBD24800EB7BCBB00BEC658 /* CSSNthSelector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSNthSelector.cpp; sourceTree = "<group>"; };
+ ABBD24810EB7BCBB00BEC658 /* CSSNthSelector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSNthSelector.h; sourceTree = "<group>"; };
+ ABBD24840EB7BEA400BEC658 /* CachedResourceHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedResourceHandle.cpp; sourceTree = "<group>"; };
+ ABBD24850EB7BEA400BEC658 /* CachedResourceHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedResourceHandle.h; sourceTree = "<group>"; };
+ ABBD24860EB7BEA400BEC658 /* ImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageLoader.cpp; sourceTree = "<group>"; };
+ ABBD24870EB7BEA400BEC658 /* ImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageLoader.h; sourceTree = "<group>"; };
+ ABBD24880EB7BEA400BEC658 /* MediaDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaDocument.cpp; sourceTree = "<group>"; };
+ ABBD24890EB7BEA400BEC658 /* MediaDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaDocument.h; sourceTree = "<group>"; };
+ ABBD24950EB7BFC500BEC658 /* Length.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Length.cpp; sourceTree = "<group>"; };
+ ABBD24960EB7BFC500BEC658 /* RenderScrollbar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderScrollbar.cpp; sourceTree = "<group>"; };
+ ABBD24970EB7BFC500BEC658 /* RenderScrollbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderScrollbar.h; sourceTree = "<group>"; };
+ ABBD24980EB7BFC500BEC658 /* RenderScrollbarPart.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderScrollbarPart.cpp; sourceTree = "<group>"; };
+ ABBD24990EB7BFC500BEC658 /* RenderScrollbarPart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderScrollbarPart.h; sourceTree = "<group>"; };
+ ABBD249A0EB7BFC500BEC658 /* RenderScrollbarTheme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderScrollbarTheme.cpp; sourceTree = "<group>"; };
+ ABBD249B0EB7BFC500BEC658 /* RenderScrollbarTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderScrollbarTheme.h; sourceTree = "<group>"; };
+ ABBD249C0EB7BFC500BEC658 /* RenderTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTheme.h; sourceTree = "<group>"; };
+ ABBD24B50EB7C0DC00BEC658 /* WidthIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WidthIterator.cpp; sourceTree = "<group>"; };
+ ABBD24B60EB7C0DC00BEC658 /* WidthIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WidthIterator.h; sourceTree = "<group>"; };
+ ABBD24C10EB7C17E00BEC658 /* ScrollbarClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarClient.h; sourceTree = "<group>"; };
+ ABBD24C20EB7C17E00BEC658 /* ScrollbarTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarTheme.h; sourceTree = "<group>"; };
+ ABBD24C30EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollbarThemeComposite.cpp; sourceTree = "<group>"; };
+ ABBD24C40EB7C17E00BEC658 /* ScrollbarThemeComposite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarThemeComposite.h; sourceTree = "<group>"; };
+ ABBD24D50EB7C29F00BEC658 /* CoreTextController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CoreTextController.cpp; sourceTree = "<group>"; };
+ ABBD24D60EB7C29F00BEC658 /* CoreTextController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreTextController.h; sourceTree = "<group>"; };
+ ABBD24D70EB7C29F00BEC658 /* FontMacATSUI.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FontMacATSUI.mm; sourceTree = "<group>"; };
+ ABBD24D80EB7C29F00BEC658 /* FontMacCoreText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontMacCoreText.cpp; sourceTree = "<group>"; };
+ ABBD24EC0EB7C3C800BEC658 /* AccessibilityList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityList.cpp; sourceTree = "<group>"; };
+ ABBD24ED0EB7C3C800BEC658 /* AccessibilityList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityList.h; sourceTree = "<group>"; };
B507F51B0E9BE98B00D16D77 /* PluginStubsMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginStubsMac.cpp; sourceTree = "<group>"; };
B507F54D0E9BECC300D16D77 /* HTMLPlugInImageElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLPlugInImageElement.cpp; sourceTree = "<group>"; };
B50F5BDF0E96D3F800AD71A6 /* WebCoreObjCExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebCoreObjCExtras.mm; path = pending/WebCoreObjCExtras.mm; sourceTree = SOURCE_ROOT; };
B51C76BF0E9BC7A400D9DFC4 /* GradientCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GradientCG.cpp; sourceTree = "<group>"; };
B51C76CD0E9BC8D100D9DFC4 /* RenderMarquee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMarquee.h; sourceTree = "<group>"; };
B51C76CE0E9BC8D100D9DFC4 /* RenderMarquee.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMarquee.cpp; sourceTree = "<group>"; };
- B51C76D90E9BC9F400D9DFC4 /* NinePieceImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NinePieceImage.h; path = style/NinePieceImage.h; sourceTree = "<group>"; };
- B51C76DA0E9BC9F400D9DFC4 /* NinePieceImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NinePieceImage.cpp; path = style/NinePieceImage.cpp; sourceTree = "<group>"; };
+ B51C76D90E9BC9F400D9DFC4 /* NinePieceImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NinePieceImage.h; sourceTree = "<group>"; };
+ B51C76DA0E9BC9F400D9DFC4 /* NinePieceImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NinePieceImage.cpp; sourceTree = "<group>"; };
B53CCC5D0E9BCFF100D51C9A /* SVGAltGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAltGlyphElement.h; sourceTree = "<group>"; };
B53CCC5E0E9BCFF100D51C9A /* SVGAltGlyphElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAltGlyphElement.cpp; sourceTree = "<group>"; };
- B53CCC6F0E9BD0B300D51C9A /* LegacyWebArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LegacyWebArchive.h; path = cf/LegacyWebArchive.h; sourceTree = "<group>"; };
- B53CCC700E9BD0B300D51C9A /* LegacyWebArchive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LegacyWebArchive.cpp; path = cf/LegacyWebArchive.cpp; sourceTree = "<group>"; };
+ B53CCC6F0E9BD0B300D51C9A /* LegacyWebArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LegacyWebArchive.h; path = archive/cf/LegacyWebArchive.h; sourceTree = "<group>"; };
+ B53CCC700E9BD0B300D51C9A /* LegacyWebArchive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LegacyWebArchive.cpp; path = archive/cf/LegacyWebArchive.cpp; sourceTree = "<group>"; };
B53CCC810E9BD1C700D51C9A /* SVGHKernElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGHKernElement.h; sourceTree = "<group>"; };
B53CCC820E9BD1C700D51C9A /* SVGHKernElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGHKernElement.cpp; sourceTree = "<group>"; };
B5442A7A0E9BDCF30098766D /* PatternCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PatternCG.cpp; sourceTree = "<group>"; };
B5442A860E9BDD600098766D /* RenderImageGeneratedContent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderImageGeneratedContent.cpp; sourceTree = "<group>"; };
B5442A870E9BDD600098766D /* RenderImageGeneratedContent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderImageGeneratedContent.h; sourceTree = "<group>"; };
B5442A8F0E9BDDF10098766D /* SharedBufferCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedBufferCF.cpp; sourceTree = "<group>"; };
+ B556C24E0EB8FCD800418C57 /* FileSystemChromiumMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSystemChromiumMac.mm; sourceTree = "<group>"; };
+ B556C33C0EB9035B00418C57 /* FileSystemChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemChromium.cpp; sourceTree = "<group>"; };
B5599D0D0E95929900E2A85A /* SVGFEColorMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SVGFEColorMatrixElement.h; path = ../third_party/WebKit/WebCore/svg/SVGFEColorMatrixElement.h; sourceTree = SOURCE_ROOT; };
B5599D110E95942900E2A85A /* SVGDocumentExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGDocumentExtensions.h; sourceTree = "<group>"; };
B5599D120E95942900E2A85A /* SVGDocumentExtensions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGDocumentExtensions.cpp; sourceTree = "<group>"; };
B5599D140E9594E800E2A85A /* SVGImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImage.cpp; sourceTree = "<group>"; };
B5599D150E9594E800E2A85A /* SVGImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGImage.h; sourceTree = "<group>"; };
B57635F70E96C13D008A7ABC /* ResourceResponseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceResponseBase.cpp; sourceTree = "<group>"; };
- B58533A40EB6543C007104C1 /* FileChooserChromiumMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = FileChooserChromiumMac.mm; path = platform/chromium/FileChooserChromiumMac.mm; sourceTree = "<group>"; };
- B58533B90EB65626007104C1 /* FileChooserChromiumMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileChooserChromiumMac.h; path = platform/chromium/FileChooserChromiumMac.h; sourceTree = "<group>"; };
B58831070E9BD5B000CEC344 /* RenderReplica.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderReplica.cpp; sourceTree = "<group>"; };
B58831080E9BD5B000CEC344 /* RenderReplica.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderReplica.h; sourceTree = "<group>"; };
B58831120E9BD61F00CEC344 /* TextControlInnerElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextControlInnerElements.h; sourceTree = "<group>"; };
@@ -3875,8 +4064,8 @@
B5C1809A0E958D81006EAF87 /* RenderObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderObject.h; sourceTree = "<group>"; };
B5C1809B0E958D81006EAF87 /* RenderObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderObject.cpp; sourceTree = "<group>"; };
B5C1809D0E958D96006EAF87 /* RenderPart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderPart.h; sourceTree = "<group>"; };
- B5C1809E0E958E3D006EAF87 /* RenderStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderStyle.h; path = pending/RenderStyle.h; sourceTree = SOURCE_ROOT; };
- B5C180A30E958EAA006EAF87 /* RenderStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderStyle.cpp; path = style/RenderStyle.cpp; sourceTree = "<group>"; };
+ B5C1809E0E958E3D006EAF87 /* RenderStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderStyle.h; sourceTree = "<group>"; };
+ B5C180A30E958EAA006EAF87 /* RenderStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderStyle.cpp; sourceTree = "<group>"; };
B5C180A60E958EFD006EAF87 /* RenderTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTable.cpp; sourceTree = "<group>"; };
B5C180A80E958F0E006EAF87 /* RenderText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderText.h; sourceTree = "<group>"; };
B5C180A90E958F28006EAF87 /* RenderWordBreak.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderWordBreak.h; sourceTree = "<group>"; };
@@ -3901,38 +4090,35 @@
E45626950E268E87005E4685 /* libwebcore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwebcore.a; sourceTree = BUILT_PRODUCTS_DIR; };
E45627150E268F03005E4685 /* libglue.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libglue.a; sourceTree = BUILT_PRODUCTS_DIR; };
E45627F40E2694B8005E4685 /* libport.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libport.a; sourceTree = BUILT_PRODUCTS_DIR; };
- E473F6320EADFF61006C2098 /* ContextMenuItemChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ContextMenuItemChromium.cpp; path = platform/chromium/ContextMenuItemChromium.cpp; sourceTree = "<group>"; };
- E473F6330EADFF61006C2098 /* ContextMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ContextMenuChromium.cpp; path = platform/chromium/ContextMenuChromium.cpp; sourceTree = "<group>"; };
- E473F6360EADFF84006C2098 /* CursorChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CursorChromium.cpp; path = platform/chromium/CursorChromium.cpp; sourceTree = "<group>"; };
- E473F6380EADFF8E006C2098 /* DragImageRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DragImageRef.h; path = platform/chromium/DragImageRef.h; sourceTree = "<group>"; };
- E473F6390EADFF8E006C2098 /* DragDataChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DragDataChromium.cpp; path = platform/chromium/DragDataChromium.cpp; sourceTree = "<group>"; };
- E473F63A0EADFF8E006C2098 /* DragDataRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DragDataRef.h; path = platform/chromium/DragDataRef.h; sourceTree = "<group>"; };
- E473F63B0EADFF8E006C2098 /* DragImageChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DragImageChromium.cpp; path = platform/chromium/DragImageChromium.cpp; sourceTree = "<group>"; };
- E473F63E0EADFFB5006C2098 /* FileChooserChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileChooserChromium.cpp; path = platform/chromium/FileChooserChromium.cpp; sourceTree = "<group>"; };
- E473F6400EADFFC6006C2098 /* FileSystemPosix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileSystemPosix.cpp; path = platform/chromium/FileSystemPosix.cpp; sourceTree = "<group>"; };
- E473F6410EADFFC6006C2098 /* FramelessScrollView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FramelessScrollView.cpp; path = platform/chromium/FramelessScrollView.cpp; sourceTree = "<group>"; };
- E473F6420EADFFC6006C2098 /* FramelessScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FramelessScrollView.h; path = platform/chromium/FramelessScrollView.h; sourceTree = "<group>"; };
- E473F64A0EADFFF8006C2098 /* Language.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Language.cpp; path = platform/chromium/Language.cpp; sourceTree = "<group>"; };
- E473F64D0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MimeTypeRegistryChromium.cpp; path = platform/chromium/MimeTypeRegistryChromium.cpp; sourceTree = "<group>"; };
- E473F6500EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PlatformKeyboardEventChromium.cpp; path = platform/chromium/PlatformKeyboardEventChromium.cpp; sourceTree = "<group>"; };
- E473F6510EAE002F006C2098 /* PasteboardPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PasteboardPrivate.h; path = platform/chromium/PasteboardPrivate.h; sourceTree = "<group>"; };
- E473F6520EAE002F006C2098 /* PlatformCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformCursor.h; path = platform/chromium/PlatformCursor.h; sourceTree = "<group>"; };
- E473F6580EAE005C006C2098 /* PlatformScrollBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformScrollBar.h; path = platform/chromium/PlatformScrollBar.h; sourceTree = "<group>"; };
- E473F6590EAE005C006C2098 /* PlatformScrollBarChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PlatformScrollBarChromium.cpp; path = platform/chromium/PlatformScrollBarChromium.cpp; sourceTree = "<group>"; };
- E473F65D0EAE009A006C2098 /* PlatformWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformWidget.h; path = platform/chromium/PlatformWidget.h; sourceTree = "<group>"; };
- E473F65E0EAE00A6006C2098 /* PopupMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PopupMenuChromium.cpp; path = platform/chromium/PopupMenuChromium.cpp; sourceTree = "<group>"; };
- E473F65F0EAE00A6006C2098 /* PopupMenuPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PopupMenuPrivate.h; path = platform/chromium/PopupMenuPrivate.h; sourceTree = "<group>"; };
- E473F6610EAE00D5006C2098 /* ScrollViewChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollViewChromium.cpp; path = platform/chromium/ScrollViewChromium.cpp; sourceTree = "<group>"; };
- E473F6630EAE00E4006C2098 /* SearchPopupMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SearchPopupMenuChromium.cpp; path = platform/chromium/SearchPopupMenuChromium.cpp; sourceTree = "<group>"; };
- E473F6650EAE00F4006C2098 /* SharedTimerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SharedTimerChromium.cpp; path = platform/chromium/SharedTimerChromium.cpp; sourceTree = "<group>"; };
- E473F6670EAE0109006C2098 /* SoundPosix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SoundPosix.cpp; path = platform/chromium/SoundPosix.cpp; sourceTree = "<group>"; };
+ E473F6320EADFF61006C2098 /* ContextMenuItemChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuItemChromium.cpp; sourceTree = "<group>"; };
+ E473F6330EADFF61006C2098 /* ContextMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextMenuChromium.cpp; sourceTree = "<group>"; };
+ E473F6360EADFF84006C2098 /* CursorChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CursorChromium.cpp; sourceTree = "<group>"; };
+ E473F6380EADFF8E006C2098 /* DragImageRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragImageRef.h; sourceTree = "<group>"; };
+ E473F6390EADFF8E006C2098 /* DragDataChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DragDataChromium.cpp; sourceTree = "<group>"; };
+ E473F63A0EADFF8E006C2098 /* DragDataRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DragDataRef.h; sourceTree = "<group>"; };
+ E473F63B0EADFF8E006C2098 /* DragImageChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DragImageChromium.cpp; sourceTree = "<group>"; };
+ E473F63E0EADFFB5006C2098 /* FileChooserChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileChooserChromium.cpp; sourceTree = "<group>"; };
+ E473F6400EADFFC6006C2098 /* FileSystemPosix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemPosix.cpp; sourceTree = "<group>"; };
+ E473F6410EADFFC6006C2098 /* FramelessScrollView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FramelessScrollView.cpp; sourceTree = "<group>"; };
+ E473F6420EADFFC6006C2098 /* FramelessScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FramelessScrollView.h; sourceTree = "<group>"; };
+ E473F64A0EADFFF8006C2098 /* Language.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Language.cpp; sourceTree = "<group>"; };
+ E473F64D0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MimeTypeRegistryChromium.cpp; sourceTree = "<group>"; };
+ E473F6500EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformKeyboardEventChromium.cpp; sourceTree = "<group>"; };
+ E473F6510EAE002F006C2098 /* PasteboardPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PasteboardPrivate.h; sourceTree = "<group>"; };
+ E473F6520EAE002F006C2098 /* PlatformCursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformCursor.h; sourceTree = "<group>"; };
+ E473F65D0EAE009A006C2098 /* PlatformWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformWidget.h; sourceTree = "<group>"; };
+ E473F65E0EAE00A6006C2098 /* PopupMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PopupMenuChromium.cpp; sourceTree = "<group>"; };
+ E473F65F0EAE00A6006C2098 /* PopupMenuPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuPrivate.h; sourceTree = "<group>"; };
+ E473F6610EAE00D5006C2098 /* ScrollView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollView.cpp; path = ../../../third_party/WebKit/WebCore/platform/ScrollView.cpp; sourceTree = "<group>"; };
+ E473F6630EAE00E4006C2098 /* SearchPopupMenuChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SearchPopupMenuChromium.cpp; sourceTree = "<group>"; };
+ E473F6650EAE00F4006C2098 /* SharedTimerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedTimerChromium.cpp; sourceTree = "<group>"; };
+ E473F6670EAE0109006C2098 /* SoundPosix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SoundPosix.cpp; sourceTree = "<group>"; };
E473F66D0EAE012D006C2098 /* SSLKeyGeneratorChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SSLKeyGeneratorChromium.cpp; path = chromium/SSLKeyGeneratorChromium.cpp; sourceTree = "<group>"; };
E473F66F0EAE016A006C2098 /* SystemTimeChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SystemTimeChromium.cpp; path = chromium/SystemTimeChromium.cpp; sourceTree = "<group>"; };
E473F6740EAE0199006C2098 /* TemporaryLinkStubs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TemporaryLinkStubs.cpp; path = chromium/TemporaryLinkStubs.cpp; sourceTree = "<group>"; };
E473F6760EAE01A1006C2098 /* TextBoundariesChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TextBoundariesChromium.cpp; path = chromium/TextBoundariesChromium.cpp; sourceTree = "<group>"; };
E473F6770EAE01A1006C2098 /* TextBreakIteratorInternalICUChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TextBreakIteratorInternalICUChromium.cpp; path = chromium/TextBreakIteratorInternalICUChromium.cpp; sourceTree = "<group>"; };
- E473F67F0EAE01BE006C2098 /* WidgetChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WidgetChromium.cpp; path = platform/chromium/WidgetChromium.cpp; sourceTree = "<group>"; };
- E473F6800EAE01BE006C2098 /* WidgetClientChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WidgetClientChromium.h; path = platform/chromium/WidgetClientChromium.h; sourceTree = "<group>"; };
+ E473F67F0EAE01BE006C2098 /* WidgetChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WidgetChromium.cpp; sourceTree = "<group>"; };
E473F6850EAE01F5006C2098 /* EventHandlerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EventHandlerChromium.cpp; path = chromium/EventHandlerChromium.cpp; sourceTree = "<group>"; };
E473F6870EAE021B006C2098 /* FrameChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FrameChromium.cpp; path = chromium/FrameChromium.cpp; sourceTree = "<group>"; };
E473F6890EAE0230006C2098 /* DragControllerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DragControllerChromium.cpp; path = chromium/DragControllerChromium.cpp; sourceTree = "<group>"; };
@@ -4020,13 +4206,6 @@
isa = PBXGroup;
children = (
B53CCC6B0E9BD0A700D51C9A /* cf */,
- 4DB7F1140E9BAC1500C66CE0 /* Archive.h */,
- 4DB7F1150E9BAC1500C66CE0 /* ArchiveFactory.cpp */,
- 4DB7F1160E9BAC1500C66CE0 /* ArchiveFactory.h */,
- 4DB7F1170E9BAC1500C66CE0 /* ArchiveResource.cpp */,
- 4DB7F1180E9BAC1500C66CE0 /* ArchiveResource.h */,
- 4DB7F1190E9BAC1500C66CE0 /* ArchiveResourceCollection.cpp */,
- 4DB7F11A0E9BAC1500C66CE0 /* ArchiveResourceCollection.h */,
);
path = archive;
sourceTree = "<group>";
@@ -4088,8 +4267,6 @@
isa = PBXGroup;
children = (
7B0095D20DAFF0DC00F72082 /* dom_wrapper_map.h */,
- 4DB7F5570E9BD66300C66CE0 /* JSNSResolver.cpp */,
- 4DB7F5580E9BD66300C66CE0 /* JSNSResolver.h */,
7B0095D30DAFF0DC00F72082 /* JSXPathNSResolver.cpp */,
7B0095D40DAFF0DC00F72082 /* JSXPathNSResolver.h */,
7B0095D50DAFF0DC00F72082 /* np_v8object.cpp */,
@@ -4122,6 +4299,7 @@
7B0095EC0DAFF0DD00F72082 /* v8_utility.h */,
7B0095ED0DAFF0DD00F72082 /* v8_vectornodelist.cpp */,
7B0095EE0DAFF0DD00F72082 /* v8_vectornodelist.h */,
+ ABBD24780EB7B31B00BEC658 /* V8MessagePortCustom.cpp */,
4DB7F55A0E9BD66300C66CE0 /* V8SVGPODTypeWrapper.h */,
4DB7F55B0E9BD66300C66CE0 /* V8XMLHttpRequestCustom.cpp */,
);
@@ -4141,15 +4319,6 @@
7B0E59590DB3D195007D4907 /* icon */ = {
isa = PBXGroup;
children = (
- 7B0E595B0DB3D195007D4907 /* IconDatabase.h */,
- 7B0E595C0DB3D195007D4907 /* IconDatabaseClient.h */,
- 7B0E595D0DB3D195007D4907 /* IconDatabaseNone.cpp */,
- 7B0E595E0DB3D195007D4907 /* IconLoader.cpp */,
- 7B0E595F0DB3D195007D4907 /* IconLoader.h */,
- 7B0E59600DB3D195007D4907 /* IconRecord.cpp */,
- 7B0E59610DB3D195007D4907 /* IconRecord.h */,
- 7B0E59620DB3D195007D4907 /* PageURLRecord.cpp */,
- 7B0E59630DB3D195007D4907 /* PageURLRecord.h */,
);
path = icon;
sourceTree = "<group>";
@@ -4390,6 +4559,8 @@
7B5E88F20D7F3A08001ECF42 /* CSSMutableStyleDeclaration.cpp */,
7B5E88F30D7F3A08001ECF42 /* CSSMutableStyleDeclaration.h */,
7B5E88F40D7F3A08001ECF42 /* CSSNamespace.h */,
+ ABBD24800EB7BCBB00BEC658 /* CSSNthSelector.cpp */,
+ ABBD24810EB7BCBB00BEC658 /* CSSNthSelector.h */,
7B5E88F50D7F3A08001ECF42 /* CSSPageRule.cpp */,
7B5E88F60D7F3A08001ECF42 /* CSSPageRule.h */,
7B5E88F90D7F3A08001ECF42 /* CSSParser.cpp */,
@@ -4547,8 +4718,12 @@
7B5E8A110D7F3A7C001ECF42 /* MappedAttribute.cpp */,
7B5E8A120D7F3A7C001ECF42 /* MappedAttribute.h */,
7B5E8A130D7F3A7C001ECF42 /* MappedAttributeEntry.h */,
+ ABBD24660EB7B1DA00BEC658 /* MessageChannel.cpp */,
+ ABBD24670EB7B1DA00BEC658 /* MessageChannel.h */,
7B5E8A140D7F3A7C001ECF42 /* MessageEvent.cpp */,
7B5E8A150D7F3A7C001ECF42 /* MessageEvent.h */,
+ ABBD24680EB7B1DA00BEC658 /* MessagePort.cpp */,
+ ABBD24690EB7B1DA00BEC658 /* MessagePort.h */,
7B5E8A170D7F3A7C001ECF42 /* MouseEvent.cpp */,
7B5E8A180D7F3A7C001ECF42 /* MouseEvent.h */,
7B5E8A1B0D7F3A7C001ECF42 /* MouseRelatedEvent.cpp */,
@@ -4571,6 +4746,8 @@
7B5E8A300D7F3A7C001ECF42 /* NodeIterator.cpp */,
7B5E8A310D7F3A7C001ECF42 /* NodeIterator.h */,
7B5E8A330D7F3A7C001ECF42 /* NodeList.h */,
+ ABBD246A0EB7B1DA00BEC658 /* NodeRareData.h */,
+ ABBD246B0EB7B1DA00BEC658 /* NodeRenderStyle.h */,
7B5E8A350D7F3A7C001ECF42 /* Notation.cpp */,
7B5E8A360D7F3A7C001ECF42 /* Notation.h */,
7B5E8A380D7F3A7C001ECF42 /* OverflowEvent.cpp */,
@@ -4624,6 +4801,7 @@
7B5E8A6A0D7F3A7D001ECF42 /* WheelEvent.h */,
7B5E8A6C0D7F3A7D001ECF42 /* XMLTokenizer.cpp */,
7B5E8A6D0D7F3A7D001ECF42 /* XMLTokenizer.h */,
+ ABBD246C0EB7B1DA00BEC658 /* XMLTokenizerLibxml2.cpp */,
);
path = dom;
sourceTree = "<group>";
@@ -4961,6 +5139,13 @@
4DB7F10F0E9BABEE00C66CE0 /* archive */,
7B0E59590DB3D195007D4907 /* icon */,
7B5E8DC50D7F3C01001ECF42 /* mac */,
+ 4DB7F1140E9BAC1500C66CE0 /* Archive.h */,
+ 4DB7F1150E9BAC1500C66CE0 /* ArchiveFactory.cpp */,
+ 4DB7F1160E9BAC1500C66CE0 /* ArchiveFactory.h */,
+ 4DB7F1170E9BAC1500C66CE0 /* ArchiveResource.cpp */,
+ 4DB7F1180E9BAC1500C66CE0 /* ArchiveResource.h */,
+ 4DB7F1190E9BAC1500C66CE0 /* ArchiveResourceCollection.cpp */,
+ 4DB7F11A0E9BAC1500C66CE0 /* ArchiveResourceCollection.h */,
7B5E8D920D7F3C01001ECF42 /* Cache.cpp */,
7B5E8D930D7F3C01001ECF42 /* Cache.h */,
7B5E8D940D7F3C01001ECF42 /* CachedCSSStyleSheet.cpp */,
@@ -4974,6 +5159,8 @@
7B5E8D9C0D7F3C01001ECF42 /* CachedResourceClient.h */,
7B5E8D9D0D7F3C01001ECF42 /* CachedResourceClientWalker.cpp */,
7B5E8D9E0D7F3C01001ECF42 /* CachedResourceClientWalker.h */,
+ ABBD24840EB7BEA400BEC658 /* CachedResourceHandle.cpp */,
+ ABBD24850EB7BEA400BEC658 /* CachedResourceHandle.h */,
7B5E8D9F0D7F3C01001ECF42 /* CachedScript.cpp */,
7B5E8DA00D7F3C01001ECF42 /* CachedScript.h */,
7B5E8DA10D7F3C01001ECF42 /* CachedXBLDocument.cpp */,
@@ -4985,6 +5172,7 @@
7B5E8DA70D7F3C01001ECF42 /* DocLoader.h */,
7B5E8DA80D7F3C01001ECF42 /* DocumentLoader.cpp */,
7B5E8DA90D7F3C01001ECF42 /* DocumentLoader.h */,
+ AB0240640E9565F7006D59C8 /* DocumentLoaderMac.cpp */,
AB50EA1C0E9AB12B00FDD61B /* EmptyClients.h */,
7B5E8DAA0D7F3C01001ECF42 /* FormState.cpp */,
7B5E8DAB0D7F3C01001ECF42 /* FormState.h */,
@@ -4996,16 +5184,34 @@
7B5E8DB20D7F3C01001ECF42 /* FTPDirectoryDocument.h */,
7B5E8DB30D7F3C01001ECF42 /* FTPDirectoryParser.cpp */,
7B5E8DB40D7F3C01001ECF42 /* FTPDirectoryParser.h */,
+ 7B0E595B0DB3D195007D4907 /* IconDatabase.h */,
+ 7B0E595C0DB3D195007D4907 /* IconDatabaseClient.h */,
+ 7B0E595D0DB3D195007D4907 /* IconDatabaseNone.cpp */,
+ 7B0E595E0DB3D195007D4907 /* IconLoader.cpp */,
+ 7B0E595F0DB3D195007D4907 /* IconLoader.h */,
+ 7B0E59600DB3D195007D4907 /* IconRecord.cpp */,
+ 7B0E59610DB3D195007D4907 /* IconRecord.h */,
7B5E8DC10D7F3C01001ECF42 /* ImageDocument.cpp */,
7B5E8DC20D7F3C01001ECF42 /* ImageDocument.h */,
+ ABBD24860EB7BEA400BEC658 /* ImageLoader.cpp */,
+ ABBD24870EB7BEA400BEC658 /* ImageLoader.h */,
+ B53CCC700E9BD0B300D51C9A /* LegacyWebArchive.cpp */,
+ B53CCC6F0E9BD0B300D51C9A /* LegacyWebArchive.h */,
+ 4DB7FA080E9BEDC900C66CE0 /* LegacyWebArchiveMac.mm */,
7B5E8DC30D7F3C01001ECF42 /* loader.cpp */,
7B5E8DC40D7F3C01001ECF42 /* loader.h */,
+ 7B5E8DC60D7F3C01001ECF42 /* LoaderNSURLExtras.h */,
+ 7B5E8DC70D7F3C01001ECF42 /* LoaderNSURLExtras.mm */,
7B5E8DCB0D7F3C01001ECF42 /* MainResourceLoader.cpp */,
7B5E8DCC0D7F3C01001ECF42 /* MainResourceLoader.h */,
+ ABBD24880EB7BEA400BEC658 /* MediaDocument.cpp */,
+ ABBD24890EB7BEA400BEC658 /* MediaDocument.h */,
7B5E8DCD0D7F3C01001ECF42 /* NavigationAction.cpp */,
7B5E8DCE0D7F3C01001ECF42 /* NavigationAction.h */,
7B5E8DCF0D7F3C01001ECF42 /* NetscapePlugInStreamLoader.cpp */,
7B5E8DD00D7F3C01001ECF42 /* NetscapePlugInStreamLoader.h */,
+ 7B0E59620DB3D195007D4907 /* PageURLRecord.cpp */,
+ 7B0E59630DB3D195007D4907 /* PageURLRecord.h */,
7B5E8DD10D7F3C01001ECF42 /* PluginDocument.cpp */,
7B5E8DD20D7F3C01001ECF42 /* PluginDocument.h */,
7B5E8DD30D7F3C01001ECF42 /* ProgressTracker.cpp */,
@@ -5014,6 +5220,7 @@
7B5E8DD70D7F3C01001ECF42 /* Request.h */,
7B5E8DD80D7F3C01001ECF42 /* ResourceLoader.cpp */,
7B5E8DD90D7F3C01001ECF42 /* ResourceLoader.h */,
+ 7B5E8DC80D7F3C01001ECF42 /* ResourceLoaderMac.mm */,
7B5E8DDA0D7F3C01001ECF42 /* SubresourceLoader.cpp */,
7B5E8DDB0D7F3C01001ECF42 /* SubresourceLoader.h */,
7B5E8DDC0D7F3C01001ECF42 /* SubresourceLoaderClient.h */,
@@ -5031,10 +5238,6 @@
7B5E8DC50D7F3C01001ECF42 /* mac */ = {
isa = PBXGroup;
children = (
- AB0240640E9565F7006D59C8 /* DocumentLoaderMac.cpp */,
- 7B5E8DC60D7F3C01001ECF42 /* LoaderNSURLExtras.h */,
- 7B5E8DC70D7F3C01001ECF42 /* LoaderNSURLExtras.mm */,
- 7B5E8DC80D7F3C01001ECF42 /* ResourceLoaderMac.mm */,
);
path = mac;
sourceTree = "<group>";
@@ -5046,6 +5249,8 @@
7B5E8EFC0D7F3C48001ECF42 /* mac */,
4DB7F1E80E9BAE2900C66CE0 /* AccessibilityImageMapLink.cpp */,
4DB7F1E90E9BAE2900C66CE0 /* AccessibilityImageMapLink.h */,
+ ABBD24EC0EB7C3C800BEC658 /* AccessibilityList.cpp */,
+ ABBD24ED0EB7C3C800BEC658 /* AccessibilityList.h */,
4DB7F1EA0E9BAE2900C66CE0 /* AccessibilityListBox.cpp */,
4DB7F1EB0E9BAE2900C66CE0 /* AccessibilityListBox.h */,
4DB7F1EC0E9BAE2900C66CE0 /* AccessibilityListBoxOption.cpp */,
@@ -5113,6 +5318,9 @@
4DB7F1FC0E9BAE2900C66CE0 /* PageGroup.h */,
7B5E8F130D7F3C49001ECF42 /* Screen.cpp */,
7B5E8F140D7F3C49001ECF42 /* Screen.h */,
+ 7B5E918C0D7F3CC2001ECF42 /* SecurityOrigin.cpp */,
+ 7B5E918D0D7F3CC2001ECF42 /* SecurityOrigin.h */,
+ 7B5E918E0D7F3CC2001ECF42 /* SecurityOriginHash.h */,
7B5E8F160D7F3C49001ECF42 /* Settings.cpp */,
7B5E8F170D7F3C49001ECF42 /* Settings.h */,
7B5E8F1C0D7F3C49001ECF42 /* WindowFeatures.cpp */,
@@ -5144,7 +5352,6 @@
7B5E8FA20D7F3CC1001ECF42 /* graphics */,
7B5E90D40D7F3CC2001ECF42 /* mac */,
7B5E91140D7F3CC2001ECF42 /* network */,
- 7B5E915C0D7F3CC2001ECF42 /* posix */,
7B5E91A90D7F3CC2001ECF42 /* text */,
7B5E8F7D0D7F3CC1001ECF42 /* Arena.cpp */,
7B5E8F7E0D7F3CC1001ECF42 /* Arena.h */,
@@ -5184,14 +5391,15 @@
7B5E91590D7F3CC2001ECF42 /* PlatformWheelEvent.h */,
7B5E915A0D7F3CC2001ECF42 /* PopupMenu.h */,
7B5E915B0D7F3CC2001ECF42 /* PopupMenuClient.h */,
- 7B5E91870D7F3CC2001ECF42 /* ScrollBar.cpp */,
- 7B5E91880D7F3CC2001ECF42 /* ScrollBar.h */,
+ 7B5E91870D7F3CC2001ECF42 /* Scrollbar.cpp */,
+ 7B5E91880D7F3CC2001ECF42 /* Scrollbar.h */,
+ ABBD24C10EB7C17E00BEC658 /* ScrollbarClient.h */,
+ ABBD24C20EB7C17E00BEC658 /* ScrollbarTheme.h */,
+ ABBD24C30EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp */,
+ ABBD24C40EB7C17E00BEC658 /* ScrollbarThemeComposite.h */,
7B5E91890D7F3CC2001ECF42 /* ScrollTypes.h */,
7B5E918A0D7F3CC2001ECF42 /* ScrollView.h */,
7B5E918B0D7F3CC2001ECF42 /* SearchPopupMenu.h */,
- 7B5E918C0D7F3CC2001ECF42 /* SecurityOrigin.cpp */,
- 7B5E918D0D7F3CC2001ECF42 /* SecurityOrigin.h */,
- 7B5E918E0D7F3CC2001ECF42 /* SecurityOriginHash.h */,
7B5E91900D7F3CC2001ECF42 /* SharedBuffer.cpp */,
7B5E91910D7F3CC2001ECF42 /* SharedBuffer.h */,
7B5E91920D7F3CC2001ECF42 /* SharedTimer.h */,
@@ -5298,6 +5506,8 @@
7B5E903E0D7F3CC2001ECF42 /* StringTruncator.h */,
4DB7F0060E9BA3A100C66CE0 /* TextRun.h */,
4DB7F0070E9BA3A100C66CE0 /* UnitBezier.h */,
+ ABBD24B50EB7C0DC00BEC658 /* WidthIterator.cpp */,
+ ABBD24B60EB7C0DC00BEC658 /* WidthIterator.h */,
);
path = graphics;
sourceTree = "<group>";
@@ -5332,6 +5542,8 @@
children = (
7B5E90040D7F3CC1001ECF42 /* ColorMac.h */,
7B5E90050D7F3CC1001ECF42 /* ColorMac.mm */,
+ ABBD24D50EB7C29F00BEC658 /* CoreTextController.cpp */,
+ ABBD24D60EB7C29F00BEC658 /* CoreTextController.h */,
7B5E90060D7F3CC1001ECF42 /* FloatPointMac.mm */,
7B5E90070D7F3CC1001ECF42 /* FloatRectMac.mm */,
7B5E90080D7F3CC1001ECF42 /* FloatSizeMac.mm */,
@@ -5339,6 +5551,8 @@
7B5E900A0D7F3CC1001ECF42 /* FontCustomPlatformData.cpp */,
7B5E900B0D7F3CC1001ECF42 /* FontCustomPlatformData.h */,
7B5E900C0D7F3CC1001ECF42 /* FontMac.mm */,
+ ABBD24D70EB7C29F00BEC658 /* FontMacATSUI.mm */,
+ ABBD24D80EB7C29F00BEC658 /* FontMacCoreText.cpp */,
7B5E900D0D7F3CC1001ECF42 /* FontPlatformData.h */,
7B5E900E0D7F3CC1001ECF42 /* FontPlatformDataMac.mm */,
7B5E900F0D7F3CC1001ECF42 /* GlyphPageTreeNodeMac.cpp */,
@@ -5383,8 +5597,8 @@
7B5E90ED0D7F3CC2001ECF42 /* PasteboardHelper.h */,
7B5E90EE0D7F3CC2001ECF42 /* PasteboardMac.mm */,
7B5E90EF0D7F3CC2001ECF42 /* PlatformMouseEventMac.mm */,
- 7B5E90F10D7F3CC2001ECF42 /* PlatformScrollBar.h */,
- 7B5E90F20D7F3CC2001ECF42 /* PlatformScrollBarMac.mm */,
+ 7B5E90F10D7F3CC2001ECF42 /* ScrollbarThemeMac.h */,
+ 7B5E90F20D7F3CC2001ECF42 /* ScrollbarThemeMac.mm */,
7B5E90F40D7F3CC2001ECF42 /* PopupMenuMac.mm */,
E49E507C0E65D36300AD47F7 /* ScrollViewMac.mm */,
7B5E90F60D7F3CC2001ECF42 /* SearchPopupMenuMac.mm */,
@@ -5468,14 +5682,6 @@
path = mac;
sourceTree = "<group>";
};
- 7B5E915C0D7F3CC2001ECF42 /* posix */ = {
- isa = PBXGroup;
- children = (
- 7B5E915D0D7F3CC2001ECF42 /* FileSystemPOSIX.cpp */,
- );
- path = posix;
- sourceTree = "<group>";
- };
7B5E91A90D7F3CC2001ECF42 /* text */ = {
isa = PBXGroup;
children = (
@@ -5578,6 +5784,14 @@
7B5E95150D7F3E94001ECF42 /* rendering */ = {
isa = PBXGroup;
children = (
+ ABBD24950EB7BFC500BEC658 /* Length.cpp */,
+ ABBD24960EB7BFC500BEC658 /* RenderScrollbar.cpp */,
+ ABBD24970EB7BFC500BEC658 /* RenderScrollbar.h */,
+ ABBD24980EB7BFC500BEC658 /* RenderScrollbarPart.cpp */,
+ ABBD24990EB7BFC500BEC658 /* RenderScrollbarPart.h */,
+ ABBD249A0EB7BFC500BEC658 /* RenderScrollbarTheme.cpp */,
+ ABBD249B0EB7BFC500BEC658 /* RenderScrollbarTheme.h */,
+ ABBD249C0EB7BFC500BEC658 /* RenderTheme.h */,
B5C180A00E958E85006EAF87 /* style */,
7B5E95160D7F3E94001ECF42 /* AutoTableLayout.cpp */,
7B5E95170D7F3E94001ECF42 /* AutoTableLayout.h */,
@@ -5723,7 +5937,6 @@
7B5E959F0D7F3E95001ECF42 /* RenderTextFragment.cpp */,
7B5E95A00D7F3E95001ECF42 /* RenderTextFragment.h */,
7B5E95A10D7F3E95001ECF42 /* RenderTheme.cpp */,
- 7B5E95A20D7F3E95001ECF42 /* RenderTheme.h */,
7B5E95A30D7F3E95001ECF42 /* RenderThemeMac.h */,
7B5E95AA0D7F3E95001ECF42 /* RenderTreeAsText.cpp */,
7B5E95AB0D7F3E95001ECF42 /* RenderTreeAsText.h */,
@@ -5743,10 +5956,6 @@
7B5E95B90D7F3E95001ECF42 /* SVGInlineFlowBox.h */,
7B5E95BA0D7F3E95001ECF42 /* SVGInlineTextBox.cpp */,
7B5E95BB0D7F3E95001ECF42 /* SVGInlineTextBox.h */,
- 7B5E95BC0D7F3E95001ECF42 /* SVGRenderStyle.cpp */,
- 7B5E95BD0D7F3E95001ECF42 /* SVGRenderStyle.h */,
- 7B5E95BE0D7F3E95001ECF42 /* SVGRenderStyleDefs.cpp */,
- 7B5E95BF0D7F3E95001ECF42 /* SVGRenderStyleDefs.h */,
7B5E95C00D7F3E95001ECF42 /* SVGRenderSupport.cpp */,
7B5E95C10D7F3E95001ECF42 /* SVGRenderSupport.h */,
7B5E95C20D7F3E95001ECF42 /* SVGRenderTreeAsText.cpp */,
@@ -6381,6 +6590,8 @@
4DB7EF780E9B9F0200C66CE0 /* V8CSSVariablesDeclaration.h */,
4DB7EF790E9B9F0200C66CE0 /* V8CSSVariablesRule.cpp */,
4DB7EF7A0E9B9F0200C66CE0 /* V8CSSVariablesRule.h */,
+ ABBD24000EB7AE0700BEC658 /* V8Database.cpp */,
+ ABBD24010EB7AE0700BEC658 /* V8Database.h */,
7B0091710DAFEFE300F72082 /* V8Document.cpp */,
7B0091720DAFEFE300F72082 /* V8Document.h */,
7B0091730DAFEFE300F72082 /* V8DocumentFragment.cpp */,
@@ -6515,8 +6726,6 @@
7B0091F40DAFEFE300F72082 /* V8HTMLScriptElement.h */,
7B0091F50DAFEFE300F72082 /* V8HTMLSelectElement.cpp */,
7B0091F60DAFEFE300F72082 /* V8HTMLSelectElement.h */,
- 7B0091F70DAFEFE300F72082 /* V8HTMLSelectionInputElement.cpp */,
- 7B0091F80DAFEFE300F72082 /* V8HTMLSelectionInputElement.h */,
7B0091FB0DAFEFE300F72082 /* V8HTMLStyleElement.cpp */,
7B0091FC0DAFEFE300F72082 /* V8HTMLStyleElement.h */,
7B0091FD0DAFEFE300F72082 /* V8HTMLTableCaptionElement.cpp */,
@@ -6547,8 +6756,12 @@
7B0092160DAFEFE400F72082 /* V8Location.h */,
7B0092190DAFEFE400F72082 /* V8MediaList.cpp */,
7B00921A0DAFEFE400F72082 /* V8MediaList.h */,
+ 4D329F8A0EB908A40041FB7E /* V8MessageChannel.cpp */,
+ 4D329F8B0EB908A40041FB7E /* V8MessageChannel.h */,
7B00921B0DAFEFE400F72082 /* V8MessageEvent.cpp */,
7B00921C0DAFEFE400F72082 /* V8MessageEvent.h */,
+ ABBD24020EB7AE0700BEC658 /* V8MessagePort.cpp */,
+ ABBD24030EB7AE0700BEC658 /* V8MessagePort.h */,
7B00921D0DAFEFE400F72082 /* V8MimeType.cpp */,
7B00921E0DAFEFE400F72082 /* V8MimeType.h */,
7B00921F0DAFEFE400F72082 /* V8MimeTypeArray.cpp */,
@@ -6571,8 +6784,6 @@
7B0092300DAFEFE400F72082 /* V8NodeList.h */,
7B0092310DAFEFE400F72082 /* V8Notation.cpp */,
7B0092320DAFEFE400F72082 /* V8Notation.h */,
- 4DB7EF880E9B9F6300C66CE0 /* V8NSResolver.cpp */,
- 4DB7EF890E9B9F6300C66CE0 /* V8NSResolver.h */,
7B0092330DAFEFE400F72082 /* V8OverflowEvent.cpp */,
7B0092340DAFEFE400F72082 /* V8OverflowEvent.h */,
7B0092350DAFEFE400F72082 /* V8Plugin.cpp */,
@@ -6643,6 +6854,8 @@
7B00927C0DAFEFE400F72082 /* V8SVGClipPathElement.h */,
7B00927D0DAFEFE400F72082 /* V8SVGColor.cpp */,
7B00927E0DAFEFE400F72082 /* V8SVGColor.h */,
+ ABBD24040EB7AE0700BEC658 /* V8SVGComponentTransferFunctionElement.cpp */,
+ ABBD24050EB7AE0700BEC658 /* V8SVGComponentTransferFunctionElement.h */,
7B0092810DAFEFE400F72082 /* V8SVGCursorElement.cpp */,
7B0092820DAFEFE400F72082 /* V8SVGCursorElement.h */,
7B0092830DAFEFE400F72082 /* V8SVGDefinitionSrcElement.cpp */,
@@ -6663,6 +6876,52 @@
7B0092920DAFEFE400F72082 /* V8SVGEllipseElement.h */,
7B0092930DAFEFE400F72082 /* V8SVGException.cpp */,
7B0092940DAFEFE400F72082 /* V8SVGException.h */,
+ ABBD24060EB7AE0700BEC658 /* V8SVGFEBlendElement.cpp */,
+ ABBD24070EB7AE0700BEC658 /* V8SVGFEBlendElement.h */,
+ ABBD24080EB7AE0700BEC658 /* V8SVGFEColorMatrixElement.cpp */,
+ ABBD24090EB7AE0700BEC658 /* V8SVGFEColorMatrixElement.h */,
+ ABBD240A0EB7AE0700BEC658 /* V8SVGFEComponentTransferElement.cpp */,
+ ABBD240B0EB7AE0700BEC658 /* V8SVGFEComponentTransferElement.h */,
+ ABBD240C0EB7AE0700BEC658 /* V8SVGFECompositeElement.cpp */,
+ ABBD240D0EB7AE0700BEC658 /* V8SVGFECompositeElement.h */,
+ ABBD240E0EB7AE0700BEC658 /* V8SVGFEDiffuseLightingElement.cpp */,
+ ABBD240F0EB7AE0700BEC658 /* V8SVGFEDiffuseLightingElement.h */,
+ ABBD24100EB7AE0700BEC658 /* V8SVGFEDisplacementMapElement.cpp */,
+ ABBD24110EB7AE0700BEC658 /* V8SVGFEDisplacementMapElement.h */,
+ ABBD24120EB7AE0700BEC658 /* V8SVGFEDistantLightElement.cpp */,
+ ABBD24130EB7AE0700BEC658 /* V8SVGFEDistantLightElement.h */,
+ ABBD24140EB7AE0700BEC658 /* V8SVGFEFloodElement.cpp */,
+ ABBD24150EB7AE0700BEC658 /* V8SVGFEFloodElement.h */,
+ ABBD24160EB7AE0700BEC658 /* V8SVGFEFuncAElement.cpp */,
+ ABBD24170EB7AE0700BEC658 /* V8SVGFEFuncAElement.h */,
+ ABBD24180EB7AE0700BEC658 /* V8SVGFEFuncBElement.cpp */,
+ ABBD24190EB7AE0700BEC658 /* V8SVGFEFuncBElement.h */,
+ ABBD241A0EB7AE0700BEC658 /* V8SVGFEFuncGElement.cpp */,
+ ABBD241B0EB7AE0700BEC658 /* V8SVGFEFuncGElement.h */,
+ ABBD241C0EB7AE0700BEC658 /* V8SVGFEFuncRElement.cpp */,
+ ABBD241D0EB7AE0700BEC658 /* V8SVGFEFuncRElement.h */,
+ ABBD241E0EB7AE0700BEC658 /* V8SVGFEGaussianBlurElement.cpp */,
+ ABBD241F0EB7AE0700BEC658 /* V8SVGFEGaussianBlurElement.h */,
+ ABBD24200EB7AE0700BEC658 /* V8SVGFEImageElement.cpp */,
+ ABBD24210EB7AE0700BEC658 /* V8SVGFEImageElement.h */,
+ ABBD24220EB7AE0700BEC658 /* V8SVGFEMergeElement.cpp */,
+ ABBD24230EB7AE0700BEC658 /* V8SVGFEMergeElement.h */,
+ ABBD24240EB7AE0700BEC658 /* V8SVGFEMergeNodeElement.cpp */,
+ ABBD24250EB7AE0700BEC658 /* V8SVGFEMergeNodeElement.h */,
+ ABBD24260EB7AE0700BEC658 /* V8SVGFEOffsetElement.cpp */,
+ ABBD24270EB7AE0700BEC658 /* V8SVGFEOffsetElement.h */,
+ ABBD24280EB7AE0700BEC658 /* V8SVGFEPointLightElement.cpp */,
+ ABBD24290EB7AE0700BEC658 /* V8SVGFEPointLightElement.h */,
+ ABBD242A0EB7AE0700BEC658 /* V8SVGFESpecularLightingElement.cpp */,
+ ABBD242B0EB7AE0700BEC658 /* V8SVGFESpecularLightingElement.h */,
+ ABBD242C0EB7AE0700BEC658 /* V8SVGFESpotLightElement.cpp */,
+ ABBD242D0EB7AE0700BEC658 /* V8SVGFESpotLightElement.h */,
+ ABBD242E0EB7AE0700BEC658 /* V8SVGFETileElement.cpp */,
+ ABBD242F0EB7AE0700BEC658 /* V8SVGFETileElement.h */,
+ ABBD24300EB7AE0700BEC658 /* V8SVGFETurbulenceElement.cpp */,
+ ABBD24310EB7AE0700BEC658 /* V8SVGFETurbulenceElement.h */,
+ ABBD24320EB7AE0700BEC658 /* V8SVGFilterElement.cpp */,
+ ABBD24330EB7AE0700BEC658 /* V8SVGFilterElement.h */,
7B0092C30DAFEFE400F72082 /* V8SVGFontElement.cpp */,
7B0092C40DAFEFE400F72082 /* V8SVGFontElement.h */,
7B0092C50DAFEFE400F72082 /* V8SVGFontFaceElement.cpp */,
@@ -6829,6 +7088,8 @@
7B0093660DAFEFE500F72082 /* V8UIEvent.h */,
7B0093670DAFEFE500F72082 /* V8UndetectableHTMLCollection.cpp */,
7B0093680DAFEFE500F72082 /* V8UndetectableHTMLCollection.h */,
+ ABBD24340EB7AE0700BEC658 /* V8VoidCallback.cpp */,
+ ABBD24350EB7AE0700BEC658 /* V8VoidCallback.h */,
4DB299BD0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp */,
4DB299BE0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.h */,
4DB7F9A40E9BEB9B00C66CE0 /* V8WebKitCSSKeyframeRule.cpp */,
@@ -6910,6 +7171,7 @@
AB8FE8A40E9BCD3E0051E7B4 /* GKURL.cpp */,
E40FB28E0EAFF0BC006F380A /* PlatformScreenMac.mm */,
B507F51B0E9BE98B00D16D77 /* PluginStubsMac.cpp */,
+ E473F6610EAE00D5006C2098 /* ScrollView.cpp */,
E473F66D0EAE012D006C2098 /* SSLKeyGeneratorChromium.cpp */,
E473F66F0EAE016A006C2098 /* SystemTimeChromium.cpp */,
E473F6740EAE0199006C2098 /* TemporaryLinkStubs.cpp */,
@@ -7179,9 +7441,6 @@
B53CCC6B0E9BD0A700D51C9A /* cf */ = {
isa = PBXGroup;
children = (
- B53CCC6F0E9BD0B300D51C9A /* LegacyWebArchive.h */,
- B53CCC700E9BD0B300D51C9A /* LegacyWebArchive.cpp */,
- 4DB7FA080E9BEDC900C66CE0 /* LegacyWebArchiveMac.mm */,
);
name = cf;
sourceTree = "<group>";
@@ -7189,17 +7448,85 @@
B5C180A00E958E85006EAF87 /* style */ = {
isa = PBXGroup;
children = (
+ ABBD23AB0EB7AC1300BEC658 /* Animation.cpp */,
+ ABBD23AC0EB7AC1300BEC658 /* Animation.h */,
+ ABBD23AD0EB7AC1300BEC658 /* AnimationList.cpp */,
+ ABBD23AE0EB7AC1300BEC658 /* AnimationList.h */,
+ ABBD23AF0EB7AC1300BEC658 /* BindingURI.cpp */,
+ ABBD23B00EB7AC1300BEC658 /* BindingURI.h */,
+ ABBD23B10EB7AC1300BEC658 /* BorderData.h */,
+ ABBD23B20EB7AC1300BEC658 /* BorderValue.h */,
+ ABBD23B30EB7AC1300BEC658 /* CollapsedBorderValue.h */,
+ ABBD23B40EB7AC1300BEC658 /* ContentData.cpp */,
+ ABBD23B50EB7AC1300BEC658 /* ContentData.h */,
+ ABBD23B60EB7AC1300BEC658 /* CounterContent.h */,
+ ABBD23B70EB7AC1300BEC658 /* CounterDirectives.cpp */,
+ ABBD23B80EB7AC1300BEC658 /* CounterDirectives.h */,
+ ABBD23B90EB7AC1300BEC658 /* CursorData.h */,
+ ABBD23BA0EB7AC1300BEC658 /* CursorList.h */,
+ ABBD23BB0EB7AC1300BEC658 /* DataRef.h */,
+ ABBD23BC0EB7AC1300BEC658 /* FillLayer.cpp */,
+ ABBD23BD0EB7AC1300BEC658 /* FillLayer.h */,
+ ABBD23BE0EB7AC1300BEC658 /* IdentityTransformOperation.h */,
+ ABBD23BF0EB7AC1300BEC658 /* KeyframeList.cpp */,
+ ABBD23C00EB7AC1300BEC658 /* KeyframeList.h */,
+ ABBD23C10EB7AC1300BEC658 /* MatrixTransformOperation.cpp */,
+ ABBD23C20EB7AC1300BEC658 /* MatrixTransformOperation.h */,
B51C76DA0E9BC9F400D9DFC4 /* NinePieceImage.cpp */,
B51C76D90E9BC9F400D9DFC4 /* NinePieceImage.h */,
+ ABBD23D30EB7ACA600BEC658 /* OutlineValue.h */,
B5C180A30E958EAA006EAF87 /* RenderStyle.cpp */,
B5C1809E0E958E3D006EAF87 /* RenderStyle.h */,
+ ABBD23D40EB7ACA600BEC658 /* RenderStyleConstants.h */,
+ ABBD23D50EB7ACA600BEC658 /* RotateTransformOperation.cpp */,
+ ABBD23D60EB7ACA600BEC658 /* RotateTransformOperation.h */,
+ ABBD23D70EB7ACA600BEC658 /* ScaleTransformOperation.cpp */,
+ ABBD23D80EB7ACA600BEC658 /* ScaleTransformOperation.h */,
+ ABBD23D90EB7ACA600BEC658 /* ShadowData.cpp */,
+ ABBD23DA0EB7ACA600BEC658 /* ShadowData.h */,
+ ABBD23DB0EB7ACA600BEC658 /* SkewTransformOperation.cpp */,
+ ABBD23DC0EB7ACA600BEC658 /* SkewTransformOperation.h */,
+ ABBD23DD0EB7ACA600BEC658 /* StyleBackgroundData.cpp */,
+ ABBD23DE0EB7ACA600BEC658 /* StyleBackgroundData.h */,
+ ABBD23DF0EB7ACA600BEC658 /* StyleBoxData.cpp */,
+ ABBD23E00EB7ACA600BEC658 /* StyleBoxData.h */,
4DB7FA410E9BF0CA00C66CE0 /* StyleCachedImage.cpp */,
4DB7FA420E9BF0CA00C66CE0 /* StyleCachedImage.h */,
+ ABBD23E10EB7ACA600BEC658 /* StyleDashboardRegion.h */,
+ ABBD23E20EB7ACA600BEC658 /* StyleFlexibleBoxData.cpp */,
+ ABBD23E30EB7ACA600BEC658 /* StyleFlexibleBoxData.h */,
4DB7FA430E9BF0CA00C66CE0 /* StyleGeneratedImage.cpp */,
4DB7FA440E9BF0CA00C66CE0 /* StyleGeneratedImage.h */,
4DB7FA450E9BF0CA00C66CE0 /* StyleImage.h */,
- );
- name = style;
+ ABBD23810EB7A8D200BEC658 /* StyleInheritedData.cpp */,
+ ABBD23830EB7A8EC00BEC658 /* StyleInheritedData.h */,
+ ABBD23930EB7A95B00BEC658 /* StyleMarqueeData.cpp */,
+ ABBD23940EB7A95B00BEC658 /* StyleMarqueeData.h */,
+ ABBD23950EB7A95B00BEC658 /* StyleMultiColData.cpp */,
+ ABBD23960EB7A95B00BEC658 /* StyleMultiColData.h */,
+ ABBD23970EB7A95B00BEC658 /* StyleRareInheritedData.cpp */,
+ ABBD23980EB7A95B00BEC658 /* StyleRareInheritedData.h */,
+ ABBD23990EB7A95B00BEC658 /* StyleRareNonInheritedData.cpp */,
+ ABBD239A0EB7A95B00BEC658 /* StyleRareNonInheritedData.h */,
+ ABBD239B0EB7A95B00BEC658 /* StyleReflection.h */,
+ ABBD239C0EB7A95B00BEC658 /* StyleSurroundData.cpp */,
+ ABBD239D0EB7A95B00BEC658 /* StyleSurroundData.h */,
+ ABBD239E0EB7A95B00BEC658 /* StyleTransformData.cpp */,
+ ABBD239F0EB7A95B00BEC658 /* StyleTransformData.h */,
+ ABBD23A00EB7A95B00BEC658 /* StyleVisualData.cpp */,
+ ABBD23A10EB7A95B00BEC658 /* StyleVisualData.h */,
+ 7B5E95BC0D7F3E95001ECF42 /* SVGRenderStyle.cpp */,
+ 7B5E95BD0D7F3E95001ECF42 /* SVGRenderStyle.h */,
+ 7B5E95BE0D7F3E95001ECF42 /* SVGRenderStyleDefs.cpp */,
+ 7B5E95BF0D7F3E95001ECF42 /* SVGRenderStyleDefs.h */,
+ ABBD23E40EB7ACA600BEC658 /* TimingFunction.h */,
+ ABBD23E50EB7ACA600BEC658 /* TransformOperation.h */,
+ ABBD23E60EB7ACA600BEC658 /* TransformOperations.cpp */,
+ ABBD23E70EB7ACA600BEC658 /* TransformOperations.h */,
+ ABBD23E80EB7ACA600BEC658 /* TranslateTransformOperation.cpp */,
+ ABBD23E90EB7ACA600BEC658 /* TranslateTransformOperation.h */,
+ );
+ path = style;
sourceTree = "<group>";
};
E450EF7B0E65F4E700107F73 /* rendering */ = {
@@ -7229,8 +7556,8 @@
E473F63A0EADFF8E006C2098 /* DragDataRef.h */,
E473F63B0EADFF8E006C2098 /* DragImageChromium.cpp */,
E473F63E0EADFFB5006C2098 /* FileChooserChromium.cpp */,
- B58533A40EB6543C007104C1 /* FileChooserChromiumMac.mm */,
- B58533B90EB65626007104C1 /* FileChooserChromiumMac.h */,
+ B556C33C0EB9035B00418C57 /* FileSystemChromium.cpp */,
+ B556C24E0EB8FCD800418C57 /* FileSystemChromiumMac.mm */,
E473F6400EADFFC6006C2098 /* FileSystemPosix.cpp */,
E473F6410EADFFC6006C2098 /* FramelessScrollView.cpp */,
E473F6420EADFFC6006C2098 /* FramelessScrollView.h */,
@@ -7239,20 +7566,15 @@
E473F6500EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp */,
E473F6510EAE002F006C2098 /* PasteboardPrivate.h */,
E473F6520EAE002F006C2098 /* PlatformCursor.h */,
- E473F6580EAE005C006C2098 /* PlatformScrollBar.h */,
- E473F6590EAE005C006C2098 /* PlatformScrollBarChromium.cpp */,
E473F65D0EAE009A006C2098 /* PlatformWidget.h */,
E473F65E0EAE00A6006C2098 /* PopupMenuChromium.cpp */,
E473F65F0EAE00A6006C2098 /* PopupMenuPrivate.h */,
- E473F6610EAE00D5006C2098 /* ScrollViewChromium.cpp */,
E473F6630EAE00E4006C2098 /* SearchPopupMenuChromium.cpp */,
E473F6650EAE00F4006C2098 /* SharedTimerChromium.cpp */,
E473F6670EAE0109006C2098 /* SoundPosix.cpp */,
E473F67F0EAE01BE006C2098 /* WidgetChromium.cpp */,
- E473F6800EAE01BE006C2098 /* WidgetClientChromium.h */,
);
- name = chromium;
- path = ..;
+ path = chromium;
sourceTree = "<group>";
};
E4A970880E3614F200E8EF3B /* page */ = {
@@ -7576,7 +7898,6 @@
7B0091350DAFEFBE00F72082 /* CSSGrammar.cpp in Sources */,
7B0091370DAFEFBE00F72082 /* HTMLNames.cpp in Sources */,
7B00962A0DAFF1D000F72082 /* InspectorController.cpp in Sources */,
- 4DB7F5620E9BD69A00C66CE0 /* JSNSResolver.cpp in Sources */,
7B0095F10DAFF0DD00F72082 /* JSXPathNSResolver.cpp in Sources */,
7B0096220DAFF19C00F72082 /* Location.cpp in Sources */,
7B0095F30DAFF0DD00F72082 /* np_v8object.cpp in Sources */,
@@ -7687,7 +8008,6 @@
7B0094330DAFEFE600F72082 /* V8HTMLQuoteElement.cpp in Sources */,
7B0094350DAFEFE600F72082 /* V8HTMLScriptElement.cpp in Sources */,
7B0094370DAFEFE600F72082 /* V8HTMLSelectElement.cpp in Sources */,
- 7B0094390DAFEFE600F72082 /* V8HTMLSelectionInputElement.cpp in Sources */,
7B00943D0DAFEFE600F72082 /* V8HTMLStyleElement.cpp in Sources */,
7B00943F0DAFEFE600F72082 /* V8HTMLTableCaptionElement.cpp in Sources */,
7B0094410DAFEFE600F72082 /* V8HTMLTableCellElement.cpp in Sources */,
@@ -7703,7 +8023,10 @@
7B0094550DAFEFE600F72082 /* V8KeyboardEvent.cpp in Sources */,
7B0094570DAFEFE600F72082 /* V8Location.cpp in Sources */,
7B00945B0DAFEFE600F72082 /* V8MediaList.cpp in Sources */,
+ 4D329F8C0EB908A40041FB7E /* V8MessageChannel.cpp in Sources */,
7B00945D0DAFEFE600F72082 /* V8MessageEvent.cpp in Sources */,
+ ABBD24370EB7AE0700BEC658 /* V8MessagePort.cpp in Sources */,
+ ABBD24790EB7B31B00BEC658 /* V8MessagePortCustom.cpp in Sources */,
7B00945F0DAFEFE600F72082 /* V8MimeType.cpp in Sources */,
7B0094610DAFEFE600F72082 /* V8MimeTypeArray.cpp in Sources */,
7B0094630DAFEFE600F72082 /* V8MouseEvent.cpp in Sources */,
@@ -7715,7 +8038,6 @@
7B00946F0DAFEFE600F72082 /* V8NodeIterator.cpp in Sources */,
7B0094710DAFEFE600F72082 /* V8NodeList.cpp in Sources */,
7B0094730DAFEFE600F72082 /* V8Notation.cpp in Sources */,
- 4DB7EF960E9B9F6300C66CE0 /* V8NSResolver.cpp in Sources */,
7B0094750DAFEFE600F72082 /* V8OverflowEvent.cpp in Sources */,
7B0094770DAFEFE600F72082 /* V8Plugin.cpp in Sources */,
7B0094790DAFEFE600F72082 /* V8PluginArray.cpp in Sources */,
@@ -8026,7 +8348,6 @@
E45624BF0E268E87005E4685 /* FileChooser.cpp in Sources */,
4DB7F05B0E9BA86A00C66CE0 /* FileList.cpp in Sources */,
E45624B50E268E87005E4685 /* FileSystemCF.cpp in Sources */,
- E45625280E268E87005E4685 /* FileSystemPOSIX.cpp in Sources */,
E456254F0E268E87005E4685 /* FixedTableLayout.cpp in Sources */,
E45624C30E268E87005E4685 /* FloatPoint.cpp in Sources */,
E45624C40E268E87005E4685 /* FloatPoint3D.cpp in Sources */,
@@ -8331,7 +8652,7 @@
E45625930E268E87005E4685 /* RootInlineBox.cpp in Sources */,
E45624B00E268E87005E4685 /* Screen.cpp in Sources */,
4DB7F1030E9BAB5600C66CE0 /* ScriptElement.cpp in Sources */,
- E456252A0E268E87005E4685 /* ScrollBar.cpp in Sources */,
+ E456252A0E268E87005E4685 /* Scrollbar.cpp in Sources */,
E456252B0E268E87005E4685 /* SecurityOrigin.cpp in Sources */,
E45624E70E268E87005E4685 /* SegmentedFontData.cpp in Sources */,
E456253A0E268E87005E4685 /* SegmentedString.cpp in Sources */,
@@ -8637,6 +8958,49 @@
E456266F0E268E87005E4685 /* XSLTExtensions.cpp in Sources */,
E45626700E268E87005E4685 /* XSLTProcessor.cpp in Sources */,
E45626710E268E87005E4685 /* XSLTUnicodeSort.cpp in Sources */,
+ ABBD23820EB7A8D200BEC658 /* StyleInheritedData.cpp in Sources */,
+ ABBD23A20EB7A95B00BEC658 /* StyleMarqueeData.cpp in Sources */,
+ ABBD23A30EB7A95B00BEC658 /* StyleMultiColData.cpp in Sources */,
+ ABBD23A40EB7A95B00BEC658 /* StyleRareInheritedData.cpp in Sources */,
+ ABBD23A50EB7A95B00BEC658 /* StyleRareNonInheritedData.cpp in Sources */,
+ ABBD23A60EB7A95B00BEC658 /* StyleSurroundData.cpp in Sources */,
+ ABBD23A70EB7A95B00BEC658 /* StyleTransformData.cpp in Sources */,
+ ABBD23A80EB7A95B00BEC658 /* StyleVisualData.cpp in Sources */,
+ ABBD23C30EB7AC1300BEC658 /* Animation.cpp in Sources */,
+ ABBD23C40EB7AC1300BEC658 /* AnimationList.cpp in Sources */,
+ ABBD23C50EB7AC1300BEC658 /* BindingURI.cpp in Sources */,
+ ABBD23C60EB7AC1300BEC658 /* ContentData.cpp in Sources */,
+ ABBD23C70EB7AC1300BEC658 /* CounterDirectives.cpp in Sources */,
+ ABBD23C80EB7AC1300BEC658 /* FillLayer.cpp in Sources */,
+ ABBD23C90EB7AC1300BEC658 /* KeyframeList.cpp in Sources */,
+ ABBD23CA0EB7AC1300BEC658 /* MatrixTransformOperation.cpp in Sources */,
+ ABBD23EA0EB7ACA600BEC658 /* RotateTransformOperation.cpp in Sources */,
+ ABBD23EB0EB7ACA600BEC658 /* ScaleTransformOperation.cpp in Sources */,
+ ABBD23EC0EB7ACA600BEC658 /* ShadowData.cpp in Sources */,
+ ABBD23ED0EB7ACA600BEC658 /* SkewTransformOperation.cpp in Sources */,
+ ABBD23EE0EB7ACA600BEC658 /* StyleBackgroundData.cpp in Sources */,
+ ABBD23EF0EB7ACA600BEC658 /* StyleBoxData.cpp in Sources */,
+ ABBD23F00EB7ACA600BEC658 /* StyleFlexibleBoxData.cpp in Sources */,
+ ABBD23F10EB7ACA600BEC658 /* TransformOperations.cpp in Sources */,
+ ABBD23F20EB7ACA600BEC658 /* TranslateTransformOperation.cpp in Sources */,
+ ABBD246D0EB7B1DA00BEC658 /* MessageChannel.cpp in Sources */,
+ ABBD246E0EB7B1DA00BEC658 /* MessagePort.cpp in Sources */,
+ ABBD246F0EB7B1DA00BEC658 /* XMLTokenizerLibxml2.cpp in Sources */,
+ ABBD24820EB7BCBB00BEC658 /* CSSNthSelector.cpp in Sources */,
+ ABBD248A0EB7BEA400BEC658 /* CachedResourceHandle.cpp in Sources */,
+ ABBD248B0EB7BEA400BEC658 /* ImageLoader.cpp in Sources */,
+ ABBD248C0EB7BEA400BEC658 /* MediaDocument.cpp in Sources */,
+ ABBD249F0EB7BFC500BEC658 /* Length.cpp in Sources */,
+ ABBD24A00EB7BFC500BEC658 /* RenderScrollbar.cpp in Sources */,
+ ABBD24A10EB7BFC500BEC658 /* RenderScrollbarPart.cpp in Sources */,
+ ABBD24A20EB7BFC500BEC658 /* RenderScrollbarTheme.cpp in Sources */,
+ ABBD24B70EB7C0DC00BEC658 /* WidthIterator.cpp in Sources */,
+ ABBD24C60EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp in Sources */,
+ ABBD24D90EB7C29F00BEC658 /* CoreTextController.cpp in Sources */,
+ ABBD24DA0EB7C29F00BEC658 /* FontMacATSUI.mm in Sources */,
+ ABBD24DB0EB7C29F00BEC658 /* FontMacCoreText.cpp in Sources */,
+ ABBD24E80EB7C35500BEC658 /* ScrollbarThemeMac.mm in Sources */,
+ ABBD24EE0EB7C3C800BEC658 /* AccessibilityList.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -8704,7 +9068,8 @@
E473F6860EAE01F5006C2098 /* EventHandlerChromium.cpp in Sources */,
4D11C4E10E9ABEA900EF7617 /* ExceptionContextV8.cpp in Sources */,
E473F63F0EADFFB5006C2098 /* FileChooserChromium.cpp in Sources */,
- B58533D80EB658D7007104C1 /* FileChooserChromiumMac.mm in Sources */,
+ B556C33D0EB9035B00418C57 /* FileSystemChromium.cpp in Sources */,
+ B556C24F0EB8FCD800418C57 /* FileSystemChromiumMac.mm in Sources */,
E473F6430EADFFC6006C2098 /* FileSystemPosix.cpp in Sources */,
4DB044260EB161E800A5633C /* FontCacheMacPending.cpp in Sources */,
E473F6880EAE021B006C2098 /* FrameChromium.cpp in Sources */,
@@ -8718,7 +9083,6 @@
4DB044430EB1639E00A5633C /* ImageMac.cpp in Sources */,
E4E4C94A0E797648009A687C /* ImageSourceCG.cpp in Sources */,
7B2B0A630E3143EC00D4C6B7 /* JPEGImageDecoder.cpp in Sources */,
- 4DB7F55C0E9BD66300C66CE0 /* JSNSResolver.cpp in Sources */,
E473F64B0EADFFF8006C2098 /* Language.cpp in Sources */,
E473F64E0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp in Sources */,
E48A07280E3F95A000172919 /* NativeImageSkia.cpp in Sources */,
@@ -8726,7 +9090,6 @@
E4E4C8560E7832E2009A687C /* PlatformContextSkia.cpp in Sources */,
E473F6530EAE002F006C2098 /* PlatformKeyboardEventChromium.cpp in Sources */,
E40FB28F0EAFF0BC006F380A /* PlatformScreenMac.mm in Sources */,
- E473F65A0EAE005C006C2098 /* PlatformScrollBarChromium.cpp in Sources */,
B507F51C0E9BE98B00D16D77 /* PluginStubsMac.cpp in Sources */,
7B2B0A650E3143EC00D4C6B7 /* PNGImageDecoder.cpp in Sources */,
E473F6600EAE00A6006C2098 /* PopupMenuChromium.cpp in Sources */,
@@ -8734,7 +9097,7 @@
E45627ED0E2694B8005E4685 /* RGBColor.cpp in Sources */,
E40063610EA907510055B38E /* ScriptCallContextV8.cpp in Sources */,
E40060DB0EA69E0B0055B38E /* ScriptController.cpp in Sources */,
- E473F6620EAE00D5006C2098 /* ScrollViewChromium.cpp in Sources */,
+ E473F6620EAE00D5006C2098 /* ScrollView.cpp in Sources */,
E473F6640EAE00E4006C2098 /* SearchPopupMenuChromium.cpp in Sources */,
E473F6660EAE00F4006C2098 /* SharedTimerChromium.cpp in Sources */,
E4E4C88F0E783E49009A687C /* SkGraphicsContextMac.cpp in Sources */,
@@ -8983,6 +9346,7 @@
"$(DIR_WEBCORE)/editing/mac",
"$(DIR_WEBCORE)/history",
"$(DIR_WEBCORE)/history/mac",
+ "$(DIR_WEBCORE)/inspector",
"$(DIR_WEBCORE)/html",
"$(DIR_WEBCORE)/loader",
"$(DIR_WEBCORE)/loader/appcache",
@@ -9107,6 +9471,7 @@
"$(DIR_WEBCORE)/editing/mac",
"$(DIR_WEBCORE)/history",
"$(DIR_WEBCORE)/history/mac",
+ "$(DIR_WEBCORE)/inspector",
"$(DIR_WEBCORE)/html",
"$(DIR_WEBCORE)/loader",
"$(DIR_WEBCORE)/loader/appcache",