diff options
53 files changed, 1028 insertions, 687 deletions
@@ -12,7 +12,7 @@ deps = { "http://googletest.googlecode.com/svn/trunk@63", "src/third_party/WebKit": - "/trunk/deps/third_party/WebKit@4887", + "/trunk/deps/third_party/WebKit@5109", "src/third_party/icu38": "/trunk/deps/third_party/icu38@5041", diff --git a/webkit/build/JSConfig/create-config.sh b/webkit/build/JSConfig/create-config.sh index 228a14d..e561229 100755 --- a/webkit/build/JSConfig/create-config.sh +++ b/webkit/build/JSConfig/create-config.sh @@ -87,6 +87,12 @@ then $CP $JavaScriptCoreSrcDir/API/JSRetainPtr.h $JSHeadersDir/JavaScriptCore $CP $JavaScriptCoreSrcDir/API/OpaqueJSString.h $JSHeadersDir/JavaScriptCore $CP $JavaScriptCoreSrcDir/API/WebKitAvailability.h $JSHeadersDir/JavaScriptCore + # TODO(dglazkov): we should really look into adopting their ways of doing this + # WebKit uses ForwardingHeaders and copies them to make this work + $CP $JavaScriptCoreSrcDir/kjs/ustring.h $JSHeadersDir/JavaScriptCore + $CP $JavaScriptCoreSrcDir/kjs/identifier.h $JSHeadersDir/JavaScriptCore + $CP $JavaScriptCoreSrcDir/kjs/collector.h $JSHeadersDir/JavaScriptCore + $CP $JavaScriptCoreSrcDir/kjs/TypeInfo.h $JSHeadersDir/JavaScriptCore else $CP $WebCoreSrcDir/bridge/npapi.h $JSHeadersDir $CP $WebCoreSrcDir/bridge/npruntime.h $JSHeadersDir diff --git a/webkit/build/JavaScriptCore/JavaScriptCore.vcproj b/webkit/build/JavaScriptCore/JavaScriptCore.vcproj index 2c7e76d..fbb09b6 100644 --- a/webkit/build/JavaScriptCore/JavaScriptCore.vcproj +++ b/webkit/build/JavaScriptCore/JavaScriptCore.vcproj @@ -125,71 +125,71 @@ Name="KJS" > <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArgList.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArgList.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArgList.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArgList.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\Arguments.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\Arguments.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\Arguments.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\Arguments.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArrayConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArrayConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArrayConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArrayConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArrayPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArrayPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ArrayPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ArrayPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\BooleanPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\BooleanPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\CallData.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\CallData.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\CallData.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\CallData.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ClassInfo.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ClassInfo.h" > </File> <File @@ -201,11 +201,15 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\CommonIdentifiers.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\CollectorHeapIntrospector.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\CommonIdentifiers.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\CommonIdentifiers.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\CommonIdentifiers.h" > </File> <File @@ -217,59 +221,59 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ConstructData.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ConstructData.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ConstructData.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ConstructData.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateInstance.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateInstance.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateInstance.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateInstance.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateMath.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateMath.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DateMath.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DateMath.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DatePrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DatePrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DatePrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\DatePrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\debugger.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\debugger\debugger.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\debugger.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\debugger\debugger.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DebuggerCallFrame.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\debugger\DebuggerCallFrame.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\DebuggerCallFrame.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\debugger\DebuggerCallFrame.h" > </File> <File @@ -281,75 +285,75 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\Error.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\Error.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\Error.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\Error.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorInstance.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorInstance.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorInstance.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorInstance.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ErrorPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ErrorPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ExecState.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ExecState.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ExecState.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ExecState.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\FunctionConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\FunctionConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\FunctionConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\FunctionConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\FunctionPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\FunctionPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\FunctionPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\FunctionPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\GetterSetter.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\GetterSetter.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\GetterSetter.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\GetterSetter.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\GlobalEvalFunction.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\GlobalEvalFunction.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\GlobalEvalFunction.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\GlobalEvalFunction.h" > </File> <File @@ -361,19 +365,19 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\InitializeThreading.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\InitializeThreading.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\InitializeThreading.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\InitializeThreading.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\InternalFunction.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\InternalFunction.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\InternalFunction.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\InternalFunction.h" > </File> <File @@ -385,147 +389,143 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSActivation.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSActivation.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSActivation.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSActivation.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSArray.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSArray.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSArray.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSArray.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSCell.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSCell.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSCell.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSCell.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSFunction.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSFunction.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSFunction.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSFunction.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSGlobalData.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSGlobalData.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSGlobalData.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSGlobalData.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSGlobalObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSGlobalObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSGlobalObjectFunctions.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSGlobalObjectFunctions.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSGlobalObjectFunctions.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSGlobalObjectFunctions.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSImmediate.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSImmediate.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSImmediate.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSImmediate.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSLock.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSLock.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSLock.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSLock.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSNotAnObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSNotAnObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSNotAnObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSNotAnObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSNumberCell.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSNumberCell.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSNumberCell.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSNumberCell.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\jsobject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSStaticScopeObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSStaticScopeObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSStaticScopeObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSStaticScopeObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSString.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSString.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSString.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSString.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSType.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSType.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSValue.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSValue.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSValue.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSValue.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSVariableObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSVariableObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSVariableObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSVariableObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSWrapperObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSWrapperObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\JSWrapperObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSWrapperObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\LabelStack.cpp" - > - </File> - <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\LabelStack.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\LabelScope.h" > </File> <File @@ -545,27 +545,27 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\MathObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\MathObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\MathObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\MathObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NativeErrorConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NativeErrorConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NativeErrorConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NativeErrorConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NativeErrorPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NativeErrorPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NativeErrorPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NativeErrorPrototype.h" > </File> <File @@ -585,43 +585,43 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\NumberPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\NumberPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ObjectConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ObjectConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ObjectConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ObjectConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ObjectPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ObjectPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ObjectPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ObjectPrototype.h" > </File> <File @@ -641,27 +641,23 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertyMap.cpp" - > - </File> - <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertyMap.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PropertyMapHashTable.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertyNameArray.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PropertyNameArray.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertyNameArray.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PropertyNameArray.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertySlot.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PropertySlot.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PropertySlot.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PropertySlot.h" > </File> <File @@ -669,11 +665,11 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PrototypeFunction.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PrototypeFunction.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\PrototypeFunction.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\PrototypeFunction.h" > </File> <File @@ -685,47 +681,47 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpConstructor.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpConstructor.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\RegExpPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\RegExpPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ScopeChain.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ScopeChain.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ScopeChain.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ScopeChain.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\ScopeChainMark.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\ScopeChainMark.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\SmallStrings.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\SmallStrings.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\SmallStrings.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\SmallStrings.h" > </File> <File @@ -733,47 +729,59 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\SourceRange.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\SourceCode.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringConstructor.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringConstructor.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringObject.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringConstructor.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringObject.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringConstructor.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringObjectThatMasqueradesAsUndefined.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringObject.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringPrototype.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringObject.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StringPrototype.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringObjectThatMasqueradesAsUndefined.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StructureID.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringPrototype.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StructureID.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StringPrototype.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StructureIDChain.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StructureID.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StructureIDChain.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\StructureID.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\StructureIDTransitionTable.h" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\kjs\SymbolTable.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\SymbolTable.h" > </File> <File @@ -1037,11 +1045,11 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\VM\JSPropertyNameIterator.cpp" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSPropertyNameIterator.cpp" > </File> <File - RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\VM\JSPropertyNameIterator.h" + RelativePath="..\..\..\third_party\WebKit\JavaScriptCore\runtime\JSPropertyNameIterator.h" > </File> <File diff --git a/webkit/build/JavaScriptCore/SConscript b/webkit/build/JavaScriptCore/SConscript index 8772d17..14a5d68 100644 --- a/webkit/build/JavaScriptCore/SConscript +++ b/webkit/build/JavaScriptCore/SConscript @@ -85,7 +85,6 @@ copies = [ '../WebCore/bridge/runtime_object.h', '../WebCore/bridge/runtime_root.h', 'kjs/collector.h', - 'kjs/JSLock.h', 'kjs/interpreter.h', 'wtf/HashCountedSet.h', ] diff --git a/webkit/build/JavaScriptCore/javascriptcore.vsprops b/webkit/build/JavaScriptCore/javascriptcore.vsprops index 1bc7e16..60c61c7 100644 --- a/webkit/build/JavaScriptCore/javascriptcore.vsprops +++ b/webkit/build/JavaScriptCore/javascriptcore.vsprops @@ -13,7 +13,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(ProjectDir)";"$(IntDir)";"$(IntDir)\DerivedSources";../../../third_party/WebKit/JavaScriptCore;"../../../third_party/WebKit/JavaScriptCore/os-win32";../../../third_party/WebKit/JavaScriptCore/pcre;../../../third_party/WebKit/JavaScriptCore/kjs;../../../third_party/WebKit/JavaScriptCore/wtf;../../../third_party/WebKit/JavaScriptCore/API;../../../third_party/WebKit/JavaScriptCore/VM;../../../third_party/WebKit/JavaScriptCore/profiler;../../../third_party/WebKit/JavaScriptCore/bindings;../../../third_party/WebKit/JavaScriptCore/bindings/c;../../../third_party/WebKit/JavaScriptCore/bindings/jni;../../pending;../../pending/kjs;../../pending/wtf" + AdditionalIncludeDirectories=""$(ProjectDir)";"$(IntDir)";"$(IntDir)\DerivedSources";../../../third_party/WebKit/JavaScriptCore;"../../../third_party/WebKit/JavaScriptCore/os-win32";../../../third_party/WebKit/JavaScriptCore/pcre;../../../third_party/WebKit/JavaScriptCore/kjs;../../../third_party/WebKit/JavaScriptCore/runtime;../../../third_party/WebKit/JavaScriptCore/debugger;../../../third_party/WebKit/JavaScriptCore/wtf;../../../third_party/WebKit/JavaScriptCore/API;../../../third_party/WebKit/JavaScriptCore/VM;../../../third_party/WebKit/JavaScriptCore/profiler;../../../third_party/WebKit/JavaScriptCore/bindings;../../../third_party/WebKit/JavaScriptCore/bindings/c;../../../third_party/WebKit/JavaScriptCore/bindings/jni;../../pending;../../pending/kjs;../../pending/wtf" PreprocessorDefinitions="ENABLE_JSC_MULTIPLE_THREADS=0;__STD_C" /> </VisualStudioPropertySheet> diff --git a/webkit/build/KJSBindings/KJSBindings.vcproj b/webkit/build/KJSBindings/KJSBindings.vcproj index 07662e4..9c47076 100644 --- a/webkit/build/KJSBindings/KJSBindings.vcproj +++ b/webkit/build/KJSBindings/KJSBindings.vcproj @@ -509,6 +509,14 @@ > </File> <File + RelativePath="$(IntDir)\DerivedSources\JSGeolocation.h" + > + </File> + <File + RelativePath="$(IntDir)\DerivedSources\JSGeoposition.h" + > + </File> + <File RelativePath="$(IntDir)\DerivedSources\JSHistory.cpp" > </File> @@ -1213,6 +1221,14 @@ > </File> <File + RelativePath="$(IntDir)\DerivedSources\JSPositionError.h" + > + </File> + <File + RelativePath="$(IntDir)\DerivedSources\JSPositionOptions.h" + > + </File> + <File RelativePath="$(IntDir)\DerivedSources\JSProcessingInstruction.cpp" > </File> @@ -2846,6 +2862,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSCustomPositionCallback.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSCustomPositionErrorCallback.cpp" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSCustomSQLStatementCallback.cpp" > </File> @@ -2918,6 +2942,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSDOMGlobalObject.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSDOMGlobalObject.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSDOMWindowBase.cpp" > </File> @@ -2970,6 +3002,10 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSGeolocationCustom.cpp" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSHistoryCustom.cpp" > </File> @@ -3030,14 +3066,6 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSHTMLOptionElementConstructor.cpp" - > - </File> - <File - RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSHTMLOptionElementConstructor.h" - > - </File> - <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSHTMLOptionsCollectionCustom.cpp" > </File> @@ -3142,6 +3170,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSOptionConstructor.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSOptionConstructor.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\js\JSPluginArrayCustom.cpp" > </File> diff --git a/webkit/build/WebCore/SConscript b/webkit/build/WebCore/SConscript index cf44db8..bff3591 100644 --- a/webkit/build/WebCore/SConscript +++ b/webkit/build/WebCore/SConscript @@ -97,6 +97,7 @@ input_files = [ '$WEBCORE_DIR/css/WebKitCSSKeyframesRule.cpp', '$WEBCORE_DIR/css/WebKitCSSTransformValue.cpp', + '$WEBCORE_DIR/dom/ActiveDOMObject.cpp', '$WEBCORE_DIR/dom/Attr.cpp', '$WEBCORE_DIR/dom/Attribute.cpp', '$WEBCORE_DIR/dom/BeforeTextInsertedEvent.cpp', @@ -151,6 +152,7 @@ input_files = [ '$WEBCORE_DIR/dom/Range.cpp', '$WEBCORE_DIR/dom/RegisteredEventListener.cpp', '$WEBCORE_DIR/dom/ScriptElement.cpp', + '$WEBCORE_DIR/dom/ScriptExecutionContext.cpp', '$WEBCORE_DIR/dom/SelectorNodeList.cpp', '$WEBCORE_DIR/dom/StaticNodeList.cpp', '$WEBCORE_DIR/dom/StyledElement.cpp', @@ -370,6 +372,7 @@ input_files = [ '$WEBCORE_DIR/page/Frame.cpp', '$WEBCORE_DIR/page/FrameTree.cpp', '$WEBCORE_DIR/page/FrameView.cpp', + '$WEBCORE_DIR/page/Geolocation.cpp', '$WEBCORE_DIR/page/History.cpp', '$WEBCORE_DIR/page/MouseEventWithHitTestResults.cpp', '$WEBCORE_DIR/page/Navigator.cpp', @@ -393,7 +396,9 @@ input_files = [ '$WEBCORE_DIR/platform/DragData.cpp', '$WEBCORE_DIR/platform/DragImage.cpp', '$WEBCORE_DIR/platform/FileChooser.cpp', + '$WEBCORE_DIR/platform/GeolocationService.cpp', '$WEBCORE_DIR/platform/KURL.cpp', + '$WEBCORE_DIR/platform/Length.cpp', '$WEBCORE_DIR/platform/Logging.cpp', '$PORT_DIR/platform/MIMETypeRegistry.cpp', '$WEBCORE_DIR/platform/Scrollbar.cpp', @@ -491,7 +496,6 @@ input_files = [ '$WEBCORE_DIR/rendering/InlineFlowBox.cpp', '$WEBCORE_DIR/rendering/InlineTextBox.cpp', '$WEBCORE_DIR/rendering/LayoutState.cpp', - '$WEBCORE_DIR/rendering/Length.cpp', '$WEBCORE_DIR/rendering/ListMarkerBox.cpp', '$WEBCORE_DIR/rendering/MediaControlElements.cpp', '$WEBCORE_DIR/rendering/PointerEventsHitRules.cpp', diff --git a/webkit/build/WebCore/WebCore.vcproj b/webkit/build/WebCore/WebCore.vcproj index 88ffac5..8586a05 100644 --- a/webkit/build/WebCore/WebCore.vcproj +++ b/webkit/build/WebCore/WebCore.vcproj @@ -354,6 +354,22 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\Geolocation.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\Geolocation.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\Geoposition.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\Geoposition.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\page\History.cpp" > </File> @@ -398,6 +414,22 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\PositionCallback.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\PositionError.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\PositionErrorCallback.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\page\PositionOptions.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\page\Screen.cpp" > </File> @@ -934,6 +966,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\GeolocationService.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\GeolocationService.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\platform\HostWindow.h" > </File> @@ -950,6 +990,22 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Length.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Length.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\LengthBox.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\LengthSize.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\platform\LocalizedStrings.h" > </File> @@ -1090,6 +1146,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Theme.h" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\ThemeTypes.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\platform\Timer.cpp" > </File> @@ -1437,6 +1501,10 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\platform\text\AtomicStringHash.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\platform\text\AtomicStringImpl.h" > </File> @@ -2310,14 +2378,6 @@ > </File> <File - RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\Length.cpp" - > - </File> - <File - RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\Length.h" - > - </File> - <File RelativePath="..\..\..\third_party\WebKit\WebCore\rendering\ListMarkerBox.cpp" > </File> @@ -3442,6 +3502,14 @@ Name="dom" > <File + RelativePath="..\..\..\third_party\WebKit\WebCore\dom\ActiveDOMObject.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\dom\ActiveDOMObject.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\dom\AtomicStringList.h" > </File> @@ -3914,6 +3982,14 @@ > </File> <File + RelativePath="..\..\..\third_party\WebKit\WebCore\dom\ScriptExecutionContext.cpp" + > + </File> + <File + RelativePath="..\..\..\third_party\WebKit\WebCore\dom\ScriptExecutionContext.h" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\dom\SelectorNodeList.cpp" > </File> diff --git a/webkit/build/js_engine_kjs.vsprops b/webkit/build/js_engine_kjs.vsprops index 103227c..f5e02e2 100644 --- a/webkit/build/js_engine_kjs.vsprops +++ b/webkit/build/js_engine_kjs.vsprops @@ -7,6 +7,6 @@ > <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""..\..\pending\kjs";"$(IntDir)\..\KJSBindings\DerivedSources";"..\..\..\third_party\WebKit\WebCore\bindings\js";"..\..\build\JavaScriptCore";"..\..\..\third_party\WebKit\JavaScriptCore\VM"" + AdditionalIncludeDirectories=""..\..\pending\kjs";"$(IntDir)\..\KJSBindings\DerivedSources";"..\..\..\third_party\WebKit\WebCore\bindings\js";"..\..\build\JavaScriptCore";"..\..\..\third_party\WebKit\JavaScriptCore\VM";..\..\..\third_party\WebKit\JavaScriptCore\runtime;..\..\..\third_party\WebKit\JavaScriptCore\debugger" /> </VisualStudioPropertySheet> diff --git a/webkit/build/port/port.vcproj b/webkit/build/port/port.vcproj index e3f4f4c..2259920 100644 --- a/webkit/build/port/port.vcproj +++ b/webkit/build/port/port.vcproj @@ -183,6 +183,10 @@ > </File> <File + RelativePath="..\..\port\page\chromium\ChromeClientChromium.h" + > + </File> + <File RelativePath="..\..\port\page\chromium\DragControllerChromium.cpp" > </File> diff --git a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/README b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/README index f8b3810..788b1c3 100644 --- a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/README +++ b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/README @@ -3,7 +3,6 @@ This file documents why the various tests have been rebaselined. cross-frame-access-custom-expected.txt cross-frame-access-get-expected.txt cross-frame-access-get-override-expected.txt -cross-frame-access-history-put-expected.txt cross-frame-access-history-get-override-expected.txt cross-frame-access-location-get-override-expected.txt cross-frame-access-location-put-expected.txt @@ -17,3 +16,11 @@ cross-frame-access-history-get-expected.txt Chrome does not allow cross-domain access History.toString, same as Firefox. +cross-frame-access-history-put-expected.txt +=============================================================== +Differs in function printing. + +cross-frame-access-call-expected.txt +=============================================================== +Error message differs because we don't have window.openDatabase. +The error message from showModalDialog is more sane than the layout tests expect. diff --git a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-call-expected.txt b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-call-expected.txt index a8267b7..abc671f 100644 --- a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-call-expected.txt +++ b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-call-expected.txt @@ -50,6 +50,8 @@ CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-get-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-call.html. Domains, protocols and ports must match. +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-get-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-call.html. Domains, protocols and ports must match. + ----- tests for calling methods of another frame using Function.call ----- @@ -66,4 +68,19 @@ PASS: window.getMatchedCSSRules.call(targetWindow, document.body, '', false) sho PASS: window.atob.call(targetWindow, 'string') should be 'undefined' and is. PASS: window.btoa.call(targetWindow, 'string') should be 'undefined' and is. PASS: window.open.call(targetWindow, '') should be 'undefined' and is. +PASS: window.addEventListener.call(targetWindow, 'load', null, false); should be 'undefined' and is. +PASS: window.removeEventListener.call(targetWindow, 'load', null, false); should be 'undefined' and is. +PASS: window.clearTimeout.call(targetWindow, 0); should be 'undefined' and is. +PASS: window.clearInterval.call(targetWindow, 0); should be 'undefined' and is. +PASS: window.print.call(targetWindow); should be 'undefined' and is. +PASS: window.stop.call(targetWindow); should be 'undefined' and is. +PASS: window.alert.call(targetWindow, 'message'); should be 'undefined' and is. +PASS: window.scrollBy.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.scrollTo.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.scroll.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.moveBy.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.moveTo.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.resizeBy.call(targetWindow, 0, 0); should be 'undefined' and is. +PASS: window.resizeTo.call(targetWindow, 0, 0); should be 'undefined' and is. +*** FAIL: window.showModalDialog.call(targetWindow); should be 'TypeError: Result of expression 'window.showModalDialog' [undefined] is not an object.' but instead is undefined. *** PASS: window.location.toString.call(targetWindow.location) should be 'undefined' and is. diff --git a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-history-put-expected.txt b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-history-put-expected.txt index 89a07bc..d920c58 100644 --- a/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-history-put-expected.txt +++ b/webkit/data/layout_test_results/v8/LayoutTests/http/tests/security/cross-frame-access-history-put-expected.txt @@ -1,12 +1,27 @@ +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. + +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. + +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. + +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. + +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. + +CONSOLE MESSAGE: line 1: Unsafe JavaScript attempt to access frame with URL http://localhost:8000/security/resources/cross-frame-iframe-for-history-put-test.html from frame with URL http://127.0.0.1:8000/security/cross-frame-access-history-put.html. Domains, protocols and ports must match. -YOUR BROWSER DOES NOT SUPPORT window.postMessage -To run this test manually, first click the button titled 'Step 1 - Set Test' in this frame. -Then click the button in the sub frame titled 'Step 2 - Set Check' to finish the test. -Step 1 - Set Test -------- Frame: '<!--framePath //<!--frame0-->-->' -------- -Step 2 - Set Check + +----- tests for putting window.history's properties ----- + +PASS: window.history.back should be 'function () { [native code] }' and is. +PASS: window.history.forward should be 'function () { [native code] }' and is. +PASS: window.history.go should be 'function () { [native code] }' and is. +PASS: window.history.toString should be 'function toString() { var c = ClassOf(this); if (c === 'Arguments') c = 'Object'; return "[object " + c + "]";}' and is. +PASS: window.history.length matched the expected value. +PASS: window.history.customAttribute should be 'customAttribute' and is. diff --git a/webkit/data/layout_tests/pending/security/block-test.html b/webkit/data/layout_tests/pending/security/block-test.html index edc1483..e9c9f85 100644 --- a/webkit/data/layout_tests/pending/security/block-test.html +++ b/webkit/data/layout_tests/pending/security/block-test.html @@ -29,6 +29,7 @@ testIMG.setAttribute("onError", "ftp21Test();"); var newURL = "ftp://" + baseURL + "/test.jpg"; testIMG.src = newURL; + finishTesting(); } function ftp21Test() { diff --git a/webkit/glue/autocomplete_input_listener.cc b/webkit/glue/autocomplete_input_listener.cc index 02ac67f..25af5e9 100644 --- a/webkit/glue/autocomplete_input_listener.cc +++ b/webkit/glue/autocomplete_input_listener.cc @@ -172,9 +172,9 @@ void AutocompleteInputListener::handleEvent(WebCore::Event* event, bool /*is_window_event*/) { const WebCore::AtomicString& webcore_type = event->type(); const std::wstring& user_input = edit_delegate_->GetValue(); - if (webcore_type == WebCore::EventNames::DOMFocusOutEvent) { + if (webcore_type == WebCore::eventNames().DOMFocusOutEvent) { OnBlur(user_input); - } else if (webcore_type == WebCore::EventNames::inputEvent) { + } else if (webcore_type == WebCore::eventNames().inputEvent) { // Perform inline autocomplete if it is safe to do so. if (ShouldInlineAutocomplete(user_input)) OnInlineAutocompleteNeeded(user_input); @@ -186,10 +186,10 @@ void AutocompleteInputListener::handleEvent(WebCore::Event* event, void AttachForInlineAutocomplete( WebCore::HTMLInputElement* target, AutocompleteInputListener* listener) { - target->addEventListener(WebCore::EventNames::DOMFocusOutEvent, + target->addEventListener(WebCore::eventNames().DOMFocusOutEvent, listener, false); - target->addEventListener(WebCore::EventNames::inputEvent, + target->addEventListener(WebCore::eventNames().inputEvent, listener, false); } diff --git a/webkit/glue/autocomplete_input_listener_unittest.cc b/webkit/glue/autocomplete_input_listener_unittest.cc index 47b9ac5..b23fac8 100644 --- a/webkit/glue/autocomplete_input_listener_unittest.cc +++ b/webkit/glue/autocomplete_input_listener_unittest.cc @@ -23,6 +23,7 @@ MSVC_PUSH_WARNING_LEVEL(0); #include "EventNames.h" #include "Event.h" #include "EventListener.h" +#include "wtf/Threading.h" MSVC_POP_WARNING(); #undef LOG @@ -107,11 +108,12 @@ namespace { class DomAutocompleteTests : public testing::Test { public: void SetUp() { + WTF::initializeThreading(); WebCore::EventNames::init(); } void FireAndHandleInputEvent(AutocompleteInputListener* listener) { - RefPtr<Event> event(Event::create(WebCore::EventNames::inputEvent, + RefPtr<Event> event(Event::create(WebCore::eventNames().inputEvent, false, false)); listener->handleEvent(event.get(), false); } @@ -130,7 +132,7 @@ TEST_F(DomAutocompleteTests, OnBlur) { // Simulate a blur event and ensure it is properly dispatched. // Listener takes ownership of its delegate. TestAutocompleteInputListener listener(new TestAutocompleteEditDelegate()); - RefPtr<Event> event(Event::create(WebCore::EventNames::DOMFocusOutEvent, + RefPtr<Event> event(Event::create(WebCore::eventNames().DOMFocusOutEvent, false, false)); listener.handleEvent(event.get(), false); EXPECT_TRUE(listener.blurred()); diff --git a/webkit/glue/chrome_client_impl.cc b/webkit/glue/chrome_client_impl.cc index 081d4c7..4142548 100644 --- a/webkit/glue/chrome_client_impl.cc +++ b/webkit/glue/chrome_client_impl.cc @@ -438,13 +438,15 @@ void ChromeClientImpl::exceededDatabaseQuota(WebCore::Frame* frame, // 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) { +void ChromeClientImpl::runOpenPanel(WebCore::Frame* frame, + PassRefPtr<WebCore::FileChooser> fileChooser) { WebViewDelegate* delegate = webview_->delegate(); if (!delegate) return; - std::wstring suggestion = webkit_glue::StringToStdWString(default_path); + std::wstring suggestion = webkit_glue::StringToStdWString( + fileChooser->filenames()[0]); + WebFileChooserCallbackImpl* chooser = new WebFileChooserCallbackImpl(fileChooser); delegate->RunFileChooser(suggestion, chooser); } diff --git a/webkit/glue/chrome_client_impl.h b/webkit/glue/chrome_client_impl.h index 7bb132b..c8951ee 100644 --- a/webkit/glue/chrome_client_impl.h +++ b/webkit/glue/chrome_client_impl.h @@ -110,10 +110,10 @@ public: virtual void print(WebCore::Frame*); virtual void exceededDatabaseQuota(WebCore::Frame*, - const WebCore::String& databaseName); + const WebCore::String& databaseName); - virtual void runFileChooser(const WebCore::String&, - PassRefPtr<WebCore::FileChooser>); + virtual void runOpenPanel(WebCore::Frame*, + PassRefPtr<WebCore::FileChooser>); virtual void popupOpened(WebCore::FramelessScrollView* popup_view, const WebCore::IntRect& bounds, bool focus_on_show); diff --git a/webkit/glue/cpp_bound_class.cc b/webkit/glue/cpp_bound_class.cc index 95d67c0..3abb406 100644 --- a/webkit/glue/cpp_bound_class.cc +++ b/webkit/glue/cpp_bound_class.cc @@ -27,7 +27,7 @@ MSVC_POP_WARNING() #if USE(JSC) #pragma warning(push, 0) -#include <kjs/JSLock.h> +#include <runtime/JSLock.h> #pragma warning(pop) #endif diff --git a/webkit/glue/inspector_client_impl.cc b/webkit/glue/inspector_client_impl.cc index dfc89fb..03e6f3c 100644 --- a/webkit/glue/inspector_client_impl.cc +++ b/webkit/glue/inspector_client_impl.cc @@ -134,6 +134,7 @@ void WebInspectorClient::detachWindow() { void WebInspectorClient::setAttachedWindowHeight(unsigned int height) { // TODO(dglazkov): Implement this + NOTIMPLEMENTED(); } static void invalidateNodeBoundingRect(WebViewImpl* web_view) { @@ -166,10 +167,24 @@ void WebInspectorClient::hideHighlight() { void WebInspectorClient::inspectedURLChanged(const String& newURL) { // TODO(jackson): Implement this + NOTIMPLEMENTED(); } String WebInspectorClient::localizedStringsURL() { - notImplemented(); + NOTIMPLEMENTED(); return String(); } +void WebInspectorClient::populateSetting( + const String& key, InspectorController::Setting&) { + NOTIMPLEMENTED(); +} + +void WebInspectorClient::storeSetting( + const String& key, const InspectorController::Setting&) { + NOTIMPLEMENTED(); +} + +void WebInspectorClient::removeSetting(const String& key) { + NOTIMPLEMENTED(); +} diff --git a/webkit/glue/inspector_client_impl.h b/webkit/glue/inspector_client_impl.h index d34d0c7..5d3a817 100644 --- a/webkit/glue/inspector_client_impl.h +++ b/webkit/glue/inspector_client_impl.h @@ -34,6 +34,12 @@ public: virtual void inspectedURLChanged(const WebCore::String& newURL); + virtual void populateSetting( + const WebCore::String& key, WebCore::InspectorController::Setting&); + virtual void storeSetting( + const WebCore::String& key, const WebCore::InspectorController::Setting&); + virtual void removeSetting(const WebCore::String& key); + private: ~WebInspectorClient(); diff --git a/webkit/glue/npruntime_util.cc b/webkit/glue/npruntime_util.cc index 364401f..ced8f04 100644 --- a/webkit/glue/npruntime_util.cc +++ b/webkit/glue/npruntime_util.cc @@ -11,6 +11,7 @@ #include "webkit/port/bindings/v8/np_v8object.h" #elif USE(JAVASCRIPTCORE_BINDINGS) #include "bridge/c/c_utility.h" +#undef LOG using JSC::Bindings::PrivateIdentifier; #endif diff --git a/webkit/glue/webframe_impl.cc b/webkit/glue/webframe_impl.cc index dd85c47..b749df7 100644 --- a/webkit/glue/webframe_impl.cc +++ b/webkit/glue/webframe_impl.cc @@ -32,22 +32,18 @@ // WebView (for the toplevel frame only) // O // | -// O -// WebFrame <-------------------------- FrameLoader -// O (via WebFrameLoaderClient) || -// | || -// +------------------------------+ || -// | || -// FrameView O-------------------------O Frame +// Page O------- Frame (m_mainFrame) O-------O FrameView +// || +// || +// FrameLoader O-------- WebFrame (via FrameLoaderClient) // // FrameLoader and Frame are formerly one object that was split apart because // it got too big. They basically have the same lifetime, hence the double line. // -// WebFrame is refcounted and has one ref on behalf of the FrameLoader/Frame -// and, in the case of the toplevel frame, one more for the WebView. This is -// not a normal reference counted pointer because that would require changing -// WebKit code that we don't control. Instead, it is created with this ref -// initially and it is removed when the FrameLoader is getting destroyed. +// WebFrame is refcounted and has one ref on behalf of the FrameLoader/Frame. +// This is not a normal reference counted pointer because that would require +// changing WebKit code that we don't control. Instead, it is created with this +// ref initially and it is removed when the FrameLoader is getting destroyed. // // WebFrames are created in two places, first in WebViewImpl when the root // frame is created, and second in WebFrame::CreateChildFrame when sub-frames @@ -57,23 +53,16 @@ // How frames are destroyed // ------------------------ // -// The main frame is never destroyed and is re-used. The FrameLoader is -// re-used and a reference is also kept by the WebView, so the root frame will -// generally have a refcount of 2. +// The main frame is never destroyed and is re-used. The FrameLoader is re-used +// and a reference to the main frame is kept by the Page. // // When frame content is replaced, all subframes are destroyed. This happens -// in FrameLoader::detachFromParent for each suframe. Here, we first clear -// the view in the Frame, breaking the circular cycle between Frame and -// FrameView. Then it calls detachedFromParent4 on the FrameLoaderClient. -// -// The FrameLoaderClient is implemented by WebFrameLoaderClient, which is -// an object owned by WebFrame. It calls WebFrame::Closing which causes -// WebFrame to release its references to Frame, generally releasing it. +// in FrameLoader::detachFromParent for each subframe. // // Frame going away causes the FrameLoader to get deleted. In FrameLoader's -// destructor it notifies its client with frameLoaderDestroyed. This derefs -// WebView and will cause it to be deleted (unless an external someone is also -// holding a reference). +// destructor, it notifies its client with frameLoaderDestroyed. This calls +// WebFrame::Closing and then derefs the WebFrame and will cause it to be +// deleted (unless an external someone is also holding a reference). #include "config.h" @@ -286,9 +275,6 @@ MSVC_PUSH_DISABLE_WARNING(4355) MSVC_POP_WARNING() currently_loading_request_(NULL), plugin_delegate_(NULL), - allows_scrolling_(true), - margin_width_(-1), - margin_height_(-1), inspected_node_(NULL), active_tickmark_frame_(NULL), active_tickmark_(kNoTickmark), @@ -314,9 +300,11 @@ WebFrameImpl::~WebFrameImpl() { // WebFrame ------------------------------------------------------------------- void WebFrameImpl::InitMainFrame(WebViewImpl* webview_impl) { - webview_impl_ = webview_impl; // owning ref + webview_impl_ = webview_impl; - frame_ = Frame::create(webview_impl_->page(), 0, &frame_loader_client_); + RefPtr<Frame> frame = + Frame::create(webview_impl_->page(), 0, &frame_loader_client_); + frame_ = frame.get(); // Add reference on behalf of FrameLoader. See comments in // WebFrameLoaderClient::frameLoaderDestroyed for more info. @@ -713,7 +701,7 @@ void WebFrameImpl::BindToWindowObject(const std::wstring& name, String key = webkit_glue::StdWStringToString(name); #if USE(V8) - frame_->script()->BindToWindowObject(frame_.get(), key, object); + frame_->script()->BindToWindowObject(frame_, key, object); #endif #if USE(JSC) @@ -748,7 +736,7 @@ void WebFrameImpl::GetContentAsPlainText(int max_chars, if (!frame_) return; - FrameContentAsPlainText(max_chars, frame_.get(), text); + FrameContentAsPlainText(max_chars, frame_, text); } void WebFrameImpl::InvalidateArea(AreaToInvalidate area) { @@ -1436,9 +1424,9 @@ void WebFrameImpl::CreateFrameView() { if (is_main_frame) { IntSize initial_size( webview_impl_->size().width(), webview_impl_->size().height()); - view = new FrameView(frame_.get(), initial_size); + view = new FrameView(frame_, initial_size); } else { - view = new FrameView(frame_.get()); + view = new FrameView(frame_); } frame_->setView(view); @@ -1537,16 +1525,9 @@ bool WebFrameImpl::IsLoading() { } void WebFrameImpl::Closing() { - // let go of our references, this breaks reference cycles and will - // usually eventually lead to us being destroyed. - if (frameview()) - frameview()->clear(); - if (frame_) { - StopLoading(); - frame_ = NULL; - } alt_error_page_fetcher_.reset(); webview_impl_ = NULL; + frame_ = NULL; } void WebFrameImpl::DidReceiveData(DocumentLoader* loader, @@ -1639,12 +1620,8 @@ bool WebFrameImpl::Visible() { frame()->view()->visibleHeight() > 0; } -void WebFrameImpl::CreateChildFrame(const FrameLoadRequest& r, - HTMLFrameOwnerElement* owner_element, - bool allows_scrolling, - int margin_height, - int margin_width, - Frame*& result) { +PassRefPtr<Frame> WebFrameImpl::CreateChildFrame( + const FrameLoadRequest& request, HTMLFrameOwnerElement* owner_element) { // TODO(darin): share code with initWithName() scoped_refptr<WebFrameImpl> webframe = new WebFrameImpl(); @@ -1654,23 +1631,14 @@ void WebFrameImpl::CreateChildFrame(const FrameLoadRequest& r, // of this file for more info. webframe->AddRef(); - webframe->allows_scrolling_ = allows_scrolling; - webframe->margin_width_ = margin_width; - webframe->margin_height_ = margin_height; - - webframe->frame_ = - Frame::create(frame_->page(), owner_element, &webframe->frame_loader_client_); - webframe->frame_->tree()->setName(r.frameName()); - - webframe->webview_impl_ = webview_impl_; // owning ref + RefPtr<Frame> child_frame = Frame::create( + frame_->page(), owner_element, &webframe->frame_loader_client_); + webframe->frame_ = child_frame.get(); + webframe->webview_impl_ = webview_impl_; - // We wait until loader()->load() returns before deref-ing the Frame. - // Otherwise the danger is that the onload handler can cause - // the Frame to be dealloc-ed, and subsequently trash memory. - // (b:1055700) - WTF::RefPtr<Frame> protector(webframe->frame_.get()); + child_frame->tree()->setName(request.frameName()); - frame_->tree()->appendChild(webframe->frame_); + frame_->tree()->appendChild(child_frame); // Frame::init() can trigger onload event in the parent frame, // which may detach this frame and trigger a null-pointer access @@ -1681,56 +1649,58 @@ void WebFrameImpl::CreateChildFrame(const FrameLoadRequest& r, // it is necessary to check the value after calling init() and // return without loading URL. // (b:791612) - webframe->frame_->init(); // create an empty document - if (!webframe->frame_.get()) - return; + child_frame->init(); // create an empty document + if (!child_frame->tree()->parent()) + return NULL; // The following code was pulled from WebFrame.mm:_loadURL, with minor // modifications. The purpose is to ensure we load the right HistoryItem for // this child frame. - HistoryItem* parentItem = frame_->loader()->currentHistoryItem(); - FrameLoadType loadType = frame_->loader()->loadType(); - FrameLoadType childLoadType = WebCore::FrameLoadTypeRedirectWithLockedHistory; - KURL new_url = r.resourceRequest().url(); + HistoryItem* parent_item = frame_->loader()->currentHistoryItem(); + FrameLoadType load_type = frame_->loader()->loadType(); + FrameLoadType child_load_type = WebCore::FrameLoadTypeRedirectWithLockedHistory; + KURL new_url = request.resourceRequest().url(); // If we're moving in the backforward list, we might want to replace the // content of this child frame with whatever was there at that point. // Reload will maintain the frame contents, LoadSame will not. - if (parentItem && parentItem->children().size() != 0 && - (isBackForwardLoadType(loadType) || - loadType == WebCore::FrameLoadTypeReloadAllowingStaleData)) { - HistoryItem* childItem = parentItem->childItemWithName(r.frameName()); - if (childItem) { + if (parent_item && parent_item->children().size() != 0 && + (isBackForwardLoadType(load_type) || + load_type == WebCore::FrameLoadTypeReloadAllowingStaleData)) { + HistoryItem* child_item = parent_item->childItemWithName(request.frameName()); + if (child_item) { // Use the original URL to ensure we get all the side-effects, such as // onLoad handlers, of any redirects that happened. An example of where // this is needed is Radar 3213556. - new_url = KURL(KURL(""), - childItem->originalURLString()); + new_url = child_item->originalURL(); // These behaviors implied by these loadTypes should apply to the child // frames - childLoadType = loadType; + child_load_type = load_type; - if (isBackForwardLoadType(loadType)) { + if (isBackForwardLoadType(load_type)) { // For back/forward, remember this item so we can traverse any child // items as child frames load. - webframe->frame_->loader()->setProvisionalHistoryItem(childItem); + child_frame->loader()->setProvisionalHistoryItem(child_item); } else { // For reload, just reinstall the current item, since a new child frame // was created but we won't be creating a new BF item - webframe->frame_->loader()->setCurrentHistoryItem(childItem); + child_frame->loader()->setCurrentHistoryItem(child_item); } } } - - webframe->frame_->loader()->loadURLIntoChildFrame(new_url, - r.resourceRequest().httpReferrer(), - webframe->frame_.get()); + + child_frame->loader()->loadURL( + new_url, request.resourceRequest().httpReferrer(), request.frameName(), + child_load_type, 0, 0); // A synchronous navigation (about:blank) would have already processed // onload, so it is possible for the frame to have already been destroyed by // script in the page. - result = webframe->frame_.get(); + if (!child_frame->tree()->parent()) + return NULL; + + return child_frame.release(); } bool WebFrameImpl::ExecuteCoreCommandByName(const std::string& name, @@ -1785,7 +1755,6 @@ gfx::Size WebFrameImpl::ScrollOffset() const { } void WebFrameImpl::SetAllowsScrolling(bool flag) { - allows_scrolling_ = flag; frame_->view()->setCanHaveScrollbars(flag); } diff --git a/webkit/glue/webframe_impl.h b/webkit/glue/webframe_impl.h index 57b6d39..14756f9 100644 --- a/webkit/glue/webframe_impl.h +++ b/webkit/glue/webframe_impl.h @@ -177,10 +177,9 @@ class WebFrameImpl : public WebFrame { // child frame failed to load. void SetPrinting(bool printing, float page_width_min, float page_width_max); - void CreateChildFrame(const WebCore::FrameLoadRequest&, - WebCore::HTMLFrameOwnerElement* owner_element, - bool allows_scrolling, int margin_width, - int margin_height, WebCore::Frame*& new_frame); + PassRefPtr<WebCore::Frame> CreateChildFrame( + const WebCore::FrameLoadRequest&, + WebCore::HTMLFrameOwnerElement* owner_element); // WebFrameImpl void Layout(); @@ -201,7 +200,7 @@ class WebFrameImpl : public WebFrame { } WebCore::Frame* frame() const { - return frame_.get(); + return frame_; } static WebFrameImpl* FromFrame(WebCore::Frame* frame); @@ -304,16 +303,12 @@ class WebFrameImpl : public WebFrame { // asynchronously in order to scope string matches during a find operation. ScopedRunnableMethodFactory<WebFrameImpl> scope_matches_factory_; - // Holding a reference back to the WebViewImpl is necessary to ensure that - // its HWND is not destroyed before all of the WebCore::Widgets, which refer - // to the WebViewImpl's HWND as their containingWindow. However, this ref - // creates a cycle between the WebViewImpl and the top-most WebFrameImpl. We - // break this cycle in our Closing method. - scoped_refptr<WebViewImpl> webview_impl_; + // This is a weak pointer to our containing WebViewImpl. + WebViewImpl* webview_impl_; - // The WebCore frame associated with this frame. MAY BE NULL if the frame - // has been detached from the DOM. - WTF::RefPtr<WebCore::Frame> frame_; + // This is a weak pointer to our corresponding WebCore frame. A reference to + // ourselves is held while frame_ is valid. See our Closing method. + WebCore::Frame* frame_; // This holds the request passed to LoadRequest, for access by the // WebFrameLoaderClient. Unfortunately we have no other way to pass this @@ -328,11 +323,6 @@ class WebFrameImpl : public WebFrame { // a pointer back to the appropriate plugin. WebPluginDelegate* plugin_delegate_; - // Frame construction parameters - bool allows_scrolling_; - int margin_width_; - int margin_height_; - // Handling requests from TextInputController on this frame. scoped_ptr<WebTextInputImpl> webtextinput_impl_; diff --git a/webkit/glue/webframeloaderclient_impl.cc b/webkit/glue/webframeloaderclient_impl.cc index 6c50037..f7ab5cc 100644 --- a/webkit/glue/webframeloaderclient_impl.cc +++ b/webkit/glue/webframeloaderclient_impl.cc @@ -85,13 +85,12 @@ WebFrameLoaderClient::~WebFrameLoaderClient() { } void WebFrameLoaderClient::frameLoaderDestroyed() { - // When the WebFrame was created, it had an extra ref() given to it on behalf - // of the FrameWin, which accesses it via the FrameWinClient interface. - // Since the WebFrame owns us, this extra ref also serves to keep us alive - // until the FrameLoader is done with us. The FrameLoader calls this method - // when it's going away. Therefore, we balance out that extra ref. - // - // May delete 'this' + // When the WebFrame was created, it had an extra reference given to it on + // behalf of the Frame. Since the WebFrame owns us, this extra ref also + // serves to keep us alive until the FrameLoader is done with us. The + // FrameLoader calls this method when it's going away. Therefore, we balance + // out that extra reference, which may cause 'this' to be deleted. + webframe_->Closing(); webframe_->Release(); } @@ -146,16 +145,11 @@ void WebFrameLoaderClient::setCopiesOnScroll() { } void WebFrameLoaderClient::detachedFromParent2() { - // FIXME -} -void WebFrameLoaderClient::detachedFromParent3() { - // FIXME + // Nothing to do here. } -void WebFrameLoaderClient::detachedFromParent4() { - // Called during the last part of frame detaching, to indicate that we should - // destroy various objects (including the FrameWin). - webframe_->Closing(); +void WebFrameLoaderClient::detachedFromParent3() { + // Nothing to do here. } // This function is responsible for associating the |identifier| with a given @@ -1328,12 +1322,7 @@ PassRefPtr<Frame> WebFrameLoaderClient::createFrame( int margin_width, int margin_height) { FrameLoadRequest frame_request(ResourceRequest(url, referrer), name); - - Frame* new_frame = NULL; - if (webframe_) - webframe_->CreateChildFrame(frame_request, owner_element, allows_scrolling, - margin_width, margin_height, new_frame); - return new_frame; + return webframe_->CreateChildFrame(frame_request, owner_element); } // Utility function to convert a vector to an array of char*'s. diff --git a/webkit/glue/webframeloaderclient_impl.h b/webkit/glue/webframeloaderclient_impl.h index 6010ba8..b14450d 100644 --- a/webkit/glue/webframeloaderclient_impl.h +++ b/webkit/glue/webframeloaderclient_impl.h @@ -55,7 +55,6 @@ class WebFrameLoaderClient : public WebCore::FrameLoaderClient { virtual void detachedFromParent2(); virtual void detachedFromParent3(); - virtual void detachedFromParent4(); virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&); diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc index 6d3fef8..80936f9 100644 --- a/webkit/glue/webplugin_impl.cc +++ b/webkit/glue/webplugin_impl.cc @@ -808,9 +808,9 @@ void WebPluginImpl::handleMouseEvent(WebCore::MouseEvent* event) { if (event->shiftKey()) np_event.wParam |= MK_SHIFT; - if ((event->type() == WebCore::EventNames::mousemoveEvent) || - (event->type() == WebCore::EventNames::mouseoutEvent) || - (event->type() == WebCore::EventNames::mouseoverEvent)) { + if ((event->type() == WebCore::eventNames().mousemoveEvent) || + (event->type() == WebCore::eventNames().mouseoutEvent) || + (event->type() == WebCore::eventNames().mouseoverEvent)) { np_event.event = WM_MOUSEMOVE; if (event->buttonDown()) { switch (event->button()) { @@ -825,7 +825,7 @@ void WebPluginImpl::handleMouseEvent(WebCore::MouseEvent* event) { break; } } - } else if (event->type() == WebCore::EventNames::mousedownEvent) { + } else if (event->type() == WebCore::eventNames().mousedownEvent) { // Ensure that the frame containing the plugin has focus. WebCore::Frame* containing_frame = webframe_->frame(); if (WebCore::Page* current_page = containing_frame->page()) { @@ -851,7 +851,7 @@ void WebPluginImpl::handleMouseEvent(WebCore::MouseEvent* event) { np_event.wParam |= MK_RBUTTON; break; } - } else if (event->type() == WebCore::EventNames::mouseupEvent) { + } else if (event->type() == WebCore::eventNames().mouseupEvent) { switch (event->button()) { case WebCore::LeftButton: np_event.event = WM_LBUTTONUP; @@ -889,10 +889,10 @@ void WebPluginImpl::handleKeyboardEvent(WebCore::KeyboardEvent* event) { NPEvent np_event; np_event.wParam = event->keyCode(); - if (event->type() == WebCore::EventNames::keydownEvent) { + if (event->type() == WebCore::eventNames().keydownEvent) { np_event.event = WM_KEYDOWN; np_event.lParam = 0; - } else if (event->type() == WebCore::EventNames::keyupEvent) { + } else if (event->type() == WebCore::eventNames().keyupEvent) { np_event.event = WM_KEYUP; np_event.lParam = 0x8000; } else { diff --git a/webkit/glue/webview_impl.cc b/webkit/glue/webview_impl.cc index bf46c9d..9ee599e 100644 --- a/webkit/glue/webview_impl.cc +++ b/webkit/glue/webview_impl.cc @@ -251,7 +251,13 @@ WebView* WebView::Create(WebViewDelegate* delegate, WebViewImpl* instance = new WebViewImpl(); instance->AddRef(); instance->SetPreferences(prefs); - instance->main_frame_->InitMainFrame(instance); + + // Here, we construct a new WebFrameImpl with a reference count of 0. That + // is bumped up to 1 by InitMainFrame. The reference count is decremented + // when the corresponding WebCore::Frame object is destroyed. + WebFrameImpl* main_frame = new WebFrameImpl(); + main_frame->InitMainFrame(instance); + // Set the delegate after initializing the main frame, to avoid trying to // respond to notifications before we're fully initialized. instance->delegate_ = delegate; @@ -263,9 +269,7 @@ WebView* WebView::Create(WebViewDelegate* delegate, } WebViewImpl::WebViewImpl() - : delegate_(NULL), - pending_history_item_(NULL), - observed_new_navigation_(false), + : observed_new_navigation_(false), #ifndef NDEBUG new_navigation_loader_(NULL), #endif @@ -295,17 +299,9 @@ WebViewImpl::WebViewImpl() // The group name identifies a namespace of pages. I'm not sure how it's // intended to be used, but keeping all pages in the same group works for us. page_->setGroupName("default"); - - // This is created with a refcount of 1, and we assign it to a RefPtr, - // giving a refcount of 2. The ref is done on behalf of - // FrameWin/FrameLoaderWin which references the WebFrame via the - // FrameWinClient/FrameLoaderClient interfaces. See the comment at the - // top of webframe_impl.cc - main_frame_ = new WebFrameImpl(); } WebViewImpl::~WebViewImpl() { - DCHECK(main_frame_ == NULL); DCHECK(page_ == NULL); ReleaseFocusReferences(); for (std::set<ImageResourceFetcher*>::iterator i = image_fetchers_.begin(); @@ -329,7 +325,7 @@ void WebViewImpl::SetTabKeyCyclesThroughElements(bool value) { } void WebViewImpl::MouseMove(const WebMouseEvent& event) { - if (!main_frame_->frameview()) + if (!main_frame() || !main_frame()->frameview()) return; last_mouse_position_.SetPoint(event.x, event.y); @@ -337,47 +333,50 @@ void WebViewImpl::MouseMove(const WebMouseEvent& event) { // We call mouseMoved here instead of handleMouseMovedEvent because we need // our ChromeClientImpl to receive changes to the mouse position and // tooltip text, and mouseMoved handles all of that. - main_frame_->frameview()->frame()->eventHandler()->mouseMoved( - MakePlatformMouseEvent(main_frame_->frameview(), event)); + main_frame()->frame()->eventHandler()->mouseMoved( + MakePlatformMouseEvent(main_frame()->frameview(), event)); } void WebViewImpl::MouseLeave(const WebMouseEvent& event) { // This event gets sent as the main frame is closing. In that case, just // ignore it. - if (!main_frame_ || !main_frame_->frameview()) + if (!main_frame() || !main_frame()->frameview()) return; delegate_->UpdateTargetURL(this, GURL()); - main_frame_->frameview()->frame()->eventHandler()->handleMouseMoveEvent( - MakePlatformMouseEvent(main_frame_->frameview(), event)); + main_frame()->frame()->eventHandler()->handleMouseMoveEvent( + MakePlatformMouseEvent(main_frame()->frameview(), event)); } void WebViewImpl::MouseDown(const WebMouseEvent& event) { - if (!main_frame_->frameview()) + if (!main_frame() || !main_frame()->frameview()) return; last_mouse_down_point_ = gfx::Point(event.x, event.y); - main_frame_->frame()->eventHandler()->handleMousePressEvent( - MakePlatformMouseEvent(main_frame_->frameview(), event)); + main_frame()->frame()->eventHandler()->handleMousePressEvent( + MakePlatformMouseEvent(main_frame()->frameview(), event)); } void WebViewImpl::MouseContextMenu(const WebMouseEvent& event) { + if (!main_frame() || !main_frame()->frameview()) + return; + page_->contextMenuController()->clearContextMenu(); - MakePlatformMouseEvent pme(main_frame_->frameview(), event); + MakePlatformMouseEvent pme(main_frame()->frameview(), event); // Find the right target frame. See issue 1186900. IntPoint doc_point( - main_frame_->frame()->view()->windowToContents(pme.pos())); + page_->mainFrame()->view()->windowToContents(pme.pos())); HitTestResult result = - main_frame_->frame()->eventHandler()->hitTestResultAtPoint(doc_point, - false); + page_->mainFrame()->eventHandler()->hitTestResultAtPoint( + doc_point, false); Frame* target_frame; if (result.innerNonSharedNode()) - target_frame = result.innerNonSharedNode()->document()->frame(); + target_frame = result.innerNonSharedNode()->document()->frame(); else - target_frame = page_->focusController()->focusedOrMainFrame(); + target_frame = page_->focusController()->focusedOrMainFrame(); #if defined(OS_WIN) target_frame->view()->setCursor(pointerCursor()); @@ -391,12 +390,12 @@ void WebViewImpl::MouseContextMenu(const WebMouseEvent& event) { } void WebViewImpl::MouseUp(const WebMouseEvent& event) { - if (!main_frame_->frameview()) + if (!main_frame() || !main_frame()->frameview()) return; MouseCaptureLost(); - main_frame_->frameview()->frame()->eventHandler()->handleMouseReleaseEvent( - MakePlatformMouseEvent(main_frame_->frameview(), event)); + main_frame()->frame()->eventHandler()->handleMouseReleaseEvent( + MakePlatformMouseEvent(main_frame()->frameview(), event)); // Dispatch the contextmenu event regardless of if the click was swallowed. if (event.button == WebMouseEvent::BUTTON_RIGHT) @@ -404,8 +403,8 @@ void WebViewImpl::MouseUp(const WebMouseEvent& event) { } void WebViewImpl::MouseWheel(const WebMouseWheelEvent& event) { - MakePlatformWheelEvent platform_event(main_frame_->frameview(), event); - main_frame_->frame()->eventHandler()->handleWheelEvent(platform_event); + MakePlatformWheelEvent platform_event(main_frame()->frameview(), event); + main_frame()->frame()->eventHandler()->handleWheelEvent(platform_event); } bool WebViewImpl::KeyEvent(const WebKeyboardEvent& event) { @@ -718,11 +717,7 @@ bool WebViewImpl::ScrollViewWithKeyboard(int key_code) { } Frame* WebViewImpl::GetFocusedWebCoreFrame() { - if (!main_frame_ || !main_frame_->frame()) - return NULL; - - return - main_frame_->frame()->page()->focusController()->focusedOrMainFrame(); + return page_.get() ? page_->focusController()->focusedOrMainFrame() : NULL; } // static @@ -748,14 +743,13 @@ void WebViewImpl::Close() { // initiator of the close. delegate_ = NULL; - // Initiate shutdown for the entire frameset. - if (main_frame_) { - // This will cause a lot of notifications to be sent. - main_frame_->frame()->loader()->frameDetached(); - main_frame_ = NULL; + if (page_.get()) { + // Initiate shutdown for the entire frameset. This will cause a lot of + // notifications to be sent. + if (page_->mainFrame()) + page_->mainFrame()->loader()->frameDetached(); + page_.reset(); } - - page_.reset(); } WebViewDelegate* WebViewImpl::GetDelegate() { @@ -763,7 +757,7 @@ WebViewDelegate* WebViewImpl::GetDelegate() { } WebFrame* WebViewImpl::GetMainFrame() { - return main_frame_.get(); + return main_frame(); } WebFrame* WebViewImpl::GetFocusedFrame() { @@ -786,7 +780,7 @@ void WebViewImpl::SetFocusedFrame(WebFrame* frame) { WebFrame* WebViewImpl::GetFrameWithName(const std::wstring& name) { String name_str = webkit_glue::StdWStringToString(name); - Frame* frame = main_frame_->frame()->tree()->find(name_str); + Frame* frame = page_->mainFrame()->tree()->find(name_str); return frame ? WebFrameImpl::FromFrame(frame) : NULL; } @@ -809,9 +803,9 @@ void WebViewImpl::Resize(const gfx::Size& new_size) { return; size_ = new_size; - if (main_frame_->frameview()) { - main_frame_->frameview()->resize(size_.width(), size_.height()); - main_frame_->frame()->sendResizeEvent(); + if (main_frame()->frameview()) { + main_frame()->frameview()->resize(size_.width(), size_.height()); + main_frame()->frame()->sendResizeEvent(); } if (delegate_) { @@ -821,27 +815,29 @@ void WebViewImpl::Resize(const gfx::Size& new_size) { } void WebViewImpl::Layout() { - if (main_frame_) { + WebFrameImpl* webframe = main_frame(); + if (webframe) { // In order for our child HWNDs (NativeWindowWidgets) to update properly, // 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 // 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->setFrameRect(frameview->frameRect()); + FrameView* view = webframe->frameview(); + if (view) + view->setFrameRect(view->frameRect()); // setFrameRect may have the side-effect of causing existing page // layout to be invalidated, so layout needs to be called last. - main_frame_->Layout(); + webframe->Layout(); } } void WebViewImpl::Paint(gfx::PlatformCanvas* canvas, const gfx::Rect& rect) { - if (main_frame_) - main_frame_->Paint(canvas, rect); + WebFrameImpl* webframe = main_frame(); + if (webframe) + webframe->Paint(canvas, rect); } // TODO(eseidel): g_current_input_event should be removed once @@ -912,7 +908,7 @@ void WebViewImpl::MouseCaptureLost() { // TODO(darin): these navigation methods should be killed void WebViewImpl::StopLoading() { - main_frame_->StopLoading(); + main_frame()->StopLoading(); } void WebViewImpl::SetBackForwardListSize(int size) { @@ -933,15 +929,14 @@ void WebViewImpl::SetFocus(bool enable) { // frame as the focused frame if it is not already focused. Otherwise, if // there is already a focused frame, then this does nothing. GetFocusedFrame(); - if (main_frame_ && main_frame_->frame()) { - Frame* frame = main_frame_->frame(); + if (page_.get() && page_->mainFrame()) { + Frame* frame = page_->mainFrame(); if (!frame->selection()->isFocusedAndActive()) { // No one has focus yet, try to restore focus. RestoreFocus(); - frame->page()->focusController()->setActive(true); + page_->focusController()->setActive(true); } - Frame* focused_frame = - frame->page()->focusController()->focusedOrMainFrame(); + Frame* focused_frame = page_->focusController()->focusedOrMainFrame(); frame->selection()->setFocused(frame == focused_frame); } ime_accept_events_ = true; @@ -950,14 +945,15 @@ void WebViewImpl::SetFocus(bool enable) { // updated below. ReleaseFocusReferences(); - if (!main_frame_) + // Clear focus on the currently focused frame if any. + if (!page_.get()) return; - Frame* frame = main_frame_->frame(); + Frame* frame = page_->mainFrame(); if (!frame) return; - RefPtr<Frame> focused = frame->page()->focusController()->focusedFrame(); + RefPtr<Frame> focused = page_->focusController()->focusedFrame(); if (focused.get()) { // Update the focus refs, this way we can give focus back appropriately. // It's entirely possible to have a focused document, but not a focused @@ -974,7 +970,8 @@ void WebViewImpl::SetFocus(bool enable) { // document->setFocusedNode(NULL); } } - frame->page()->focusController()->setFocusedFrame(0); + page_->focusController()->setFocusedFrame(0); + // Finish an ongoing composition to delete the composition node. Editor* editor = focused->editor(); if (editor && editor->hasComposition()) @@ -1205,7 +1202,7 @@ void WebViewImpl::ReleaseFocusReferences() { } bool WebViewImpl::DownloadImage(int id, const GURL& image_url, int image_size) { - if (!main_frame_ || !main_frame_->frame()) + if (!page_.get()) return false; image_fetchers_.insert( new ImageResourceFetcher(this, id, image_url, image_size)); @@ -1287,23 +1284,23 @@ const WebPreferences& WebViewImpl::GetPreferences() { // Set the encoding of the current main frame to the one selected by // a user in the encoding menu. void WebViewImpl::SetPageEncoding(const std::wstring& encoding_name) { - if (!main_frame_) + if (!page_.get()) return; if (!encoding_name.empty()) { // only change override encoding, don't change default encoding // TODO(brettw) use std::string for encoding names. String new_encoding_name(webkit_glue::StdWStringToString(encoding_name)); - main_frame_->frame()->loader()->reloadAllowingStaleData(new_encoding_name); + page_->mainFrame()->loader()->reloadAllowingStaleData(new_encoding_name); } } // Return the canonical encoding name of current main webframe in webview. std::wstring WebViewImpl::GetMainFrameEncodingName() { - if (!main_frame_) - return std::wstring(L""); + if (!page_.get()) + return std::wstring(); - String encoding_name = main_frame_->frame()->loader()->encoding(); + String encoding_name = page_->mainFrame()->loader()->encoding(); return webkit_glue::StringToStdWString(encoding_name); } @@ -1341,11 +1338,12 @@ void WebViewImpl::ResetZoom() { } void WebViewImpl::CopyImageAt(int x, int y) { + if (!page_.get()) + return; + IntPoint point = IntPoint(x, y); - Frame* frame = main_frame_->frame(); - if (!frame) - return; + Frame* frame = page_->mainFrame(); HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(point, false); @@ -1365,14 +1363,16 @@ void WebViewImpl::CopyImageAt(int x, int y) { } void WebViewImpl::InspectElement(int x, int y) { + if (!page_.get()) + return; + if (x == -1 || y == -1) { page_->inspectorController()->inspect(NULL); } else { IntPoint point = IntPoint(x, y); HitTestResult result(point); - if (Frame* frame = main_frame_->frame()) - result = frame->eventHandler()->hitTestResultAtPoint(point, false); + result = page_->mainFrame()->eventHandler()->hitTestResultAtPoint(point, false); if (!result.innerNonSharedNode()) return; @@ -1391,8 +1391,7 @@ void WebViewImpl::DragSourceEndedAt( IntPoint(screen_x, screen_y), NoButton, MouseEventMoved, 0, false, false, false, false, 0); - main_frame_->frame()->eventHandler()->dragSourceEndedAt(pme, - DragOperationCopy); + page_->mainFrame()->eventHandler()->dragSourceEndedAt(pme, DragOperationCopy); } void WebViewImpl::DragSourceMovedTo( @@ -1401,7 +1400,7 @@ void WebViewImpl::DragSourceMovedTo( IntPoint(screen_x, screen_y), LeftButton, MouseEventMoved, 0, false, false, false, false, 0); - main_frame_->frame()->eventHandler()->dragSourceMovedTo(pme); + page_->mainFrame()->eventHandler()->dragSourceMovedTo(pme); } void WebViewImpl::DragSourceSystemDragEnded() { @@ -1449,15 +1448,10 @@ void WebViewImpl::DragTargetDrop( } SearchableFormData* WebViewImpl::CreateSearchableFormDataForFocusedNode() { - if (!main_frame_) - return NULL; - - Frame* frame = main_frame_->frame(); - if (!frame) + if (!page_.get()) return NULL; - if (RefPtr<Frame> focused = - frame->page()->focusController()->focusedFrame()) { + if (RefPtr<Frame> focused = page_->focusController()->focusedFrame()) { RefPtr<Document> document = focused->document(); if (document.get()) { RefPtr<Node> focused_node = document->focusedNode(); @@ -1475,17 +1469,12 @@ void WebViewImpl::AutofillSuggestionsForNode( int64 node_id, const std::vector<std::wstring>& suggestions, int default_suggestion_index) { - if (!main_frame_ || suggestions.empty()) + if (!page_.get() || suggestions.empty()) return; DCHECK(default_suggestion_index < static_cast<int>(suggestions.size())); - Frame* frame = main_frame_->frame(); - if (!frame) - return; - - if (RefPtr<Frame> focused = - frame->page()->focusController()->focusedFrame()) { + if (RefPtr<Frame> focused = page_->focusController()->focusedFrame()) { RefPtr<Document> document = focused->document(); if (!document.get()) return; @@ -1519,7 +1508,8 @@ void WebViewImpl::AutofillSuggestionsForNode( autocomplete_popup_ = WebCore::PopupContainer::create(autocomplete_popup_client_.get(), false); - autocomplete_popup_->show(focused_node->getRect(), frame->view(), 0); + autocomplete_popup_->show(focused_node->getRect(), + page_->mainFrame()->view(), 0); } } } @@ -1530,7 +1520,7 @@ void WebViewImpl::DidCommitLoad(bool* is_new_navigation) { #ifndef NDEBUG DCHECK(!observed_new_navigation_ || - main_frame_->frame()->loader()->documentLoader() == new_navigation_loader_); + page_->mainFrame()->loader()->documentLoader() == new_navigation_loader_); new_navigation_loader_ = NULL; #endif observed_new_navigation_ = false; @@ -1620,7 +1610,7 @@ void WebViewImpl::didAddHistoryItem(WebCore::HistoryItem* item) { // (ie, not a reload or back/forward). observed_new_navigation_ = true; #ifndef NDEBUG - new_navigation_loader_ = main_frame_->frame()->loader()->documentLoader(); + new_navigation_loader_ = page_->mainFrame()->loader()->documentLoader(); #endif delegate_->DidAddHistoryItem(); } @@ -1630,7 +1620,7 @@ void WebViewImpl::willGoToHistoryItem(WebCore::HistoryItem* item) { if (item == pending_history_item_->GetHistoryItem()) { // Let the main frame know this HistoryItem is loading, so it can cache // any ExtraData when the DataSource is created. - main_frame_->set_currently_loading_history_item(pending_history_item_); + main_frame()->set_currently_loading_history_item(pending_history_item_); pending_history_item_ = 0; } } diff --git a/webkit/glue/webview_impl.h b/webkit/glue/webview_impl.h index e5b5e8e..f53f211 100644 --- a/webkit/glue/webview_impl.h +++ b/webkit/glue/webview_impl.h @@ -19,6 +19,7 @@ MSVC_PUSH_WARNING_LEVEL(0); #include "BackForwardList.h" +#include "Page.h" MSVC_POP_WARNING(); namespace WebCore { @@ -118,20 +119,22 @@ class WebViewImpl : public WebView, public WebCore::BackForwardListClient { static WebViewImpl* FromPage(WebCore::Page* page); - WebFrameImpl* main_frame() { - return main_frame_; - } - WebViewDelegate* delegate() { return delegate_.get(); } - // Returns the page object associated with this view. This may be NULL when - // the page is shutting down, but will be valid all other times. + // Returns the page object associated with this view. This may be NULL when + // the page is shutting down, but will be valid at all other times. WebCore::Page* page() const { return page_.get(); } + // Returns the main frame associated with this view. This may be NULL when + // the page is shutting down, but will be valid at all other times. + WebFrameImpl* main_frame() { + return page_.get() ? WebFrameImpl::FromFrame(page_->mainFrame()) : NULL; + } + WebHistoryItemImpl* pending_history_item() const { return pending_history_item_; } @@ -224,7 +227,6 @@ class WebViewImpl : public WebView, public WebCore::BackForwardListClient { scoped_refptr<WebViewDelegate> delegate_; gfx::Size size_; - scoped_refptr<WebFrameImpl> main_frame_; gfx::Point last_mouse_position_; // Reference to the Frame that last had focus. This is set once when // we lose focus, and used when focus is gained to reinstall focus to diff --git a/webkit/port/bindings/v8/ScriptController.cpp b/webkit/port/bindings/v8/ScriptController.cpp index b0e356a..60af17f 100644 --- a/webkit/port/bindings/v8/ScriptController.cpp +++ b/webkit/port/bindings/v8/ScriptController.cpp @@ -205,20 +205,20 @@ bool ScriptController::processingUserGesture() const const AtomicString& type = event->type(); bool event_ok = // mouse events - type == EventNames::clickEvent || - type == EventNames::mousedownEvent || - type == EventNames::mouseupEvent || - type == EventNames::dblclickEvent || + type == eventNames().clickEvent || + type == eventNames().mousedownEvent || + type == eventNames().mouseupEvent || + type == eventNames().dblclickEvent || // keyboard events - type == EventNames::keydownEvent || - type == EventNames::keypressEvent || - type == EventNames::keyupEvent || + type == eventNames().keydownEvent || + type == eventNames().keypressEvent || + type == eventNames().keyupEvent || // other accepted events - type == EventNames::selectEvent || - type == EventNames::changeEvent || - type == EventNames::focusEvent || - type == EventNames::blurEvent || - type == EventNames::submitEvent; + type == eventNames().selectEvent || + type == eventNames().changeEvent || + type == eventNames().focusEvent || + type == eventNames().blurEvent || + type == eventNames().submitEvent; if (event_ok) return true; @@ -299,10 +299,10 @@ void ScriptController::disposeJSResult(v8::Persistent<v8::Value> result) result.Clear(); } -PassRefPtr<EventListener> ScriptController::createHTMLEventHandler( +PassRefPtr<EventListener> ScriptController::createInlineEventListener( const String& functionName, const String& code, Node* node) { - return m_proxy->createHTMLEventHandler(functionName, code, node); + return m_proxy->createInlineEventListener(functionName, code, node); } #if ENABLE(SVG) diff --git a/webkit/port/bindings/v8/ScriptController.h b/webkit/port/bindings/v8/ScriptController.h index 1224cee..76ba5a1 100644 --- a/webkit/port/bindings/v8/ScriptController.h +++ b/webkit/port/bindings/v8/ScriptController.h @@ -157,7 +157,7 @@ public: void disposeJSResult(JSResult result); void collectGarbage(); - PassRefPtr<EventListener> createHTMLEventHandler(const String& functionName, const String& code, Node*); + PassRefPtr<EventListener> createInlineEventListener(const String& functionName, const String& code, Node*); #if ENABLE(SVG) PassRefPtr<EventListener> createSVGEventHandler(const String& functionName, const String& code, Node*); #endif diff --git a/webkit/port/bindings/v8/V8MessagePortCustom.cpp b/webkit/port/bindings/v8/V8MessagePortCustom.cpp index 8e4c3a9..4699f08 100644 --- a/webkit/port/bindings/v8/V8MessagePortCustom.cpp +++ b/webkit/port/bindings/v8/V8MessagePortCustom.cpp @@ -109,7 +109,7 @@ ACCESSOR_SETTER(MessagePortOnmessage) { imp->setOnmessage(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -150,7 +150,7 @@ ACCESSOR_SETTER(MessagePortOnclose) { // Clear the listener imp->setOnclose(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -173,12 +173,13 @@ CALLBACK_FUNC_DECL(MessagePortStartConversation) { MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>( V8ClassIndex::MESSAGEPORT, args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return v8::Undefined(); - RefPtr<MessagePort> port = imp->startConversation(imp->document(), - ToWebCoreString(args[0])); + RefPtr<MessagePort> port = + imp->startConversation(imp->scriptExecutionContext(), + ToWebCoreString(args[0])); v8::Handle<v8::Value> wrapper = V8Proxy::ToV8Object(V8ClassIndex::MESSAGEPORT, port.get()); return wrapper; @@ -189,7 +190,7 @@ CALLBACK_FUNC_DECL(MessagePortAddEventListener) { MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>( V8ClassIndex::MESSAGEPORT, args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return v8::Undefined(); @@ -210,7 +211,7 @@ CALLBACK_FUNC_DECL(MessagePortRemoveEventListener) { MessagePort* imp = V8Proxy::ToNativeObject<MessagePort>( V8ClassIndex::MESSAGEPORT, args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return v8::Undefined(); // probably leaked diff --git a/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp b/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp index d61a8c32..e7a3702 100644 --- a/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp +++ b/webkit/port/bindings/v8/V8XMLHttpRequestCustom.cpp @@ -131,7 +131,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnabort) { // Clear the listener imp->setOnabort(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -172,7 +172,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnerror) { // Clear the listener imp->setOnerror(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -213,7 +213,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnload) imp->setOnload(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -254,7 +254,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnloadstart) { // Clear the listener imp->setOnloadstart(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -295,7 +295,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnprogress) { // Clear the listener imp->setOnprogress(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -337,7 +337,7 @@ ACCESSOR_SETTER(XMLHttpRequestOnreadystatechange) // Clear the listener imp->setOnreadystatechange(0); } else { - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return; @@ -356,7 +356,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestAddEventListener) XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>( V8ClassIndex::XMLHTTPREQUEST, args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return v8::Undefined(); @@ -377,7 +377,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestRemoveEventListener) { XMLHttpRequest* imp = V8Proxy::ToNativeObject<XMLHttpRequest>( V8ClassIndex::XMLHTTPREQUEST, args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(imp->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(imp->scriptExecutionContext()); if (!proxy) return v8::Undefined(); // probably leaked @@ -569,7 +569,8 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnabort) { imp->setOnabort(0); } else { XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = + V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return; @@ -611,7 +612,7 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnerror) { imp->setOnerror(0); } else { XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return; @@ -653,7 +654,7 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnload) { imp->setOnload(0); } else { XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return; @@ -695,7 +696,7 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnloadstart) { imp->setOnloadstart(0); } else { XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return; @@ -737,7 +738,7 @@ ACCESSOR_SETTER(XMLHttpRequestUploadOnprogress) { imp->setOnprogress(0); } else { XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return; @@ -756,7 +757,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestUploadAddEventListener) { V8ClassIndex::XMLHTTPREQUESTUPLOAD, args.Holder()); XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return v8::Undefined(); @@ -778,7 +779,7 @@ CALLBACK_FUNC_DECL(XMLHttpRequestUploadRemoveEventListener) { V8ClassIndex::XMLHTTPREQUESTUPLOAD, args.Holder()); XMLHttpRequest* xmlhttprequest = imp->associatedXMLHttpRequest(); - V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->document()->frame()); + V8Proxy* proxy = V8Proxy::retrieve(xmlhttprequest->scriptExecutionContext()); if (!proxy) return v8::Undefined(); // probably leaked diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp index c8b4743..5e7241d 100644 --- a/webkit/port/bindings/v8/v8_custom.cpp +++ b/webkit/port/bindings/v8/v8_custom.cpp @@ -1053,7 +1053,7 @@ CALLBACK_FUNC_DECL(DOMWindowShowModalDialog) { V8ClassIndex::DOMWINDOW, args.Holder()); Frame* frame = window->frame(); - if (!frame) + if (!frame || !V8Proxy::CanAccessFrame(frame, true)) return v8::Undefined(); if (!canShowModalDialogNow(frame) || !allowPopUp()) @@ -3232,7 +3232,7 @@ ACCESSOR_SETTER(DOMWindowEventHandler) { if (value->IsNull()) { // Clear the event listener - doc->removeWindowEventListenerForType(event_type); + doc->removeWindowInlineEventListenerForType(event_type); } else { V8Proxy* proxy = V8Proxy::retrieve(imp->frame()); if (!proxy) @@ -3241,7 +3241,7 @@ ACCESSOR_SETTER(DOMWindowEventHandler) { RefPtr<EventListener> listener = proxy->FindOrCreateV8EventListener(value, true); if (listener) { - doc->setWindowEventListenerForType(event_type, listener); + doc->setWindowInlineEventListenerForType(event_type, listener); } } } @@ -3265,7 +3265,7 @@ ACCESSOR_GETTER(DOMWindowEventHandler) { String key = ToWebCoreString(name); String event_type = EventNameFromAttributeName(key); - EventListener* listener = doc->windowEventListenerForType(event_type); + EventListener* listener = doc->windowInlineEventListenerForType(event_type); return V8Proxy::EventListenerToV8Object(listener); } @@ -3293,10 +3293,10 @@ ACCESSOR_SETTER(ElementEventHandler) { RefPtr<EventListener> listener = proxy->FindOrCreateV8EventListener(value, true); if (listener) { - node->setEventListenerForType(event_type, listener); + node->setInlineEventListenerForType(event_type, listener); } } else { - node->removeEventListenerForType(event_type); + node->removeInlineEventListenerForType(event_type); } } @@ -3310,7 +3310,7 @@ ACCESSOR_GETTER(ElementEventHandler) { ASSERT(key.startsWith("on")); String event_type = key.substring(2); - EventListener* listener = node->eventListenerForType(event_type); + EventListener* listener = node->inlineEventListenerForType(event_type); return V8Proxy::EventListenerToV8Object(listener); } @@ -3426,7 +3426,7 @@ CALLBACK_FUNC_DECL(SVGElementInstanceAddEventListener) { SVGElementInstance* instance = V8Proxy::DOMWrapperToNative<SVGElementInstance>(args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(instance->associatedFrame()); + V8Proxy* proxy = V8Proxy::retrieve(instance->scriptExecutionContext()); if (!proxy) return v8::Undefined(); @@ -3445,7 +3445,7 @@ CALLBACK_FUNC_DECL(SVGElementInstanceRemoveEventListener) { SVGElementInstance* instance = V8Proxy::DOMWrapperToNative<SVGElementInstance>(args.Holder()); - V8Proxy* proxy = V8Proxy::retrieve(instance->associatedFrame()); + V8Proxy* proxy = V8Proxy::retrieve(instance->scriptExecutionContext()); // It is possbile that the owner document of the node is detached // from the frame, return immediately in this case. // See issue 878909 diff --git a/webkit/port/bindings/v8/v8_events.cpp b/webkit/port/bindings/v8/v8_events.cpp index 0d41a67..ff0ef27 100644 --- a/webkit/port/bindings/v8/v8_events.cpp +++ b/webkit/port/bindings/v8/v8_events.cpp @@ -213,6 +213,7 @@ v8::Local<v8::Object> V8EventListener::GetThisObject(Event* event, return v8::Context::GetCurrent()->Global(); } + // make sure to sync type conversions with V8Proxy::EventTargetToV8Object EventTarget* target = event->currentTarget(); if (target->toNode()) { v8::Handle<v8::Value> value = @@ -234,6 +235,13 @@ v8::Local<v8::Object> V8EventListener::GetThisObject(Event* event, V8ClassIndex::MESSAGEPORT, target->toMessagePort()); return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value)); +#if ENABLE(SVG) + } else if (target->toSVGElementInstance()) { + v8::Handle<v8::Value> value = V8Proxy::ToV8Object( + V8ClassIndex::SVGELEMENTINSTANCE, target->toSVGElementInstance()); + return v8::Local<v8::Object>::New(v8::Handle<v8::Object>::Cast(value)); +#endif + } else { ASSERT(false); return v8::Local<v8::Object>(); diff --git a/webkit/port/bindings/v8/v8_events.h b/webkit/port/bindings/v8/v8_events.h index 73edb5a..72ed31c 100644 --- a/webkit/port/bindings/v8/v8_events.h +++ b/webkit/port/bindings/v8/v8_events.h @@ -88,7 +88,7 @@ class V8EventListener : public V8AbstractEventListener { V8EventListener(Frame* frame, v8::Local<v8::Object> listener, bool isInline); virtual ~V8EventListener(); - virtual bool isAttachedToEventTargetNode() const { return m_isInline; } + virtual bool isInline() const { return m_isInline; } // Detach the listener from its owner frame. void disconnectFrame() { m_frame = 0; } @@ -128,7 +128,7 @@ class V8LazyEventListener : public V8AbstractEventListener { V8LazyEventListener(Frame *frame, const String& code, const String& func_name); virtual ~V8LazyEventListener(); - virtual bool isAttachedToEventTargetNode() const { return true; } + virtual bool isInline() const { return true; } // For lazy event listener, the listener object is the same as its listener // function without additional scope chains. diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp index 0833a3b..a3c8166 100644 --- a/webkit/port/bindings/v8/v8_proxy.cpp +++ b/webkit/port/bindings/v8/v8_proxy.cpp @@ -80,18 +80,21 @@ #include "CSSVariablesDeclaration.h" #include "FrameLoader.h" #include "FrameTree.h" +#include "MessagePort.h" #include "MimeTypeArray.h" #include "NodeFilter.h" #include "Plugin.h" #include "PluginArray.h" #include "RangeException.h" #include "ScriptController.h" +#include "ScriptExecutionContext.h" #include "SecurityOrigin.h" #include "Settings.h" #include "StyleSheet.h" #include "StyleSheetList.h" #include "WebKitCSSTransformValue.h" #include "XMLHttpRequest.h" +#include "XMLHttpRequestUpload.h" #include "XMLHttpRequestException.h" #include "XPathException.h" @@ -780,10 +783,6 @@ static void ReportUnsafeJavaScriptAccess(v8::Local<v8::Object> host, v8::AccessType type, v8::Local<v8::Value> data) { - // Do not report error if the access type is HAS. - if (type == v8::ACCESS_HAS) - return; - Frame* target = V8Custom::GetTargetFrame(host, data); if (target) ReportUnsafeAccessTo(target, REPORT_LATER); @@ -832,7 +831,7 @@ void V8Proxy::SetJSWrapperForDOMNode(Node* node, v8::Persistent<v8::Object> wrap dom_node_map().set(node, wrapper); } -PassRefPtr<EventListener> V8Proxy::createHTMLEventHandler( +PassRefPtr<EventListener> V8Proxy::createInlineEventListener( const String& functionName, const String& code, Node* node) { @@ -869,7 +868,7 @@ static V8EventListener* FindEventListenerInList(V8EventListenerList& list, // check using the == operator on the handles. This is much, // much faster than calling StrictEquals through the API in // the negative case. - if (el->isAttachedToEventTargetNode() == isInline && listener == wrapper) + if (el->isInline() == isInline && listener == wrapper) return el; ++p; } @@ -1457,7 +1456,13 @@ DOMWindow* V8Proxy::retrieveWindow() // TODO: This seems very fragile. How do we know that the global object // from the current context is something sensible? Do we need to use the // last entered here? Who calls this? - v8::Handle<v8::Object> global = v8::Context::GetCurrent()->Global(); + return retrieveWindow(v8::Context::GetCurrent()); +} + + +DOMWindow* V8Proxy::retrieveWindow(v8::Handle<v8::Context> context) +{ + v8::Handle<v8::Object> global = context->Global(); ASSERT(!global.IsEmpty()); global = LookupDOMWrapper(V8ClassIndex::DOMWINDOW, global); ASSERT(!global.IsEmpty()); @@ -1467,11 +1472,7 @@ DOMWindow* V8Proxy::retrieveWindow() Frame* V8Proxy::retrieveFrame(v8::Handle<v8::Context> context) { - v8::Handle<v8::Object> global = context->Global(); - global = LookupDOMWrapper(V8ClassIndex::DOMWINDOW, global); - ASSERT(!global.IsEmpty()); - DOMWindow* window = ToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, global); - return window->frame(); + return retrieveWindow(context)->frame(); } @@ -1505,6 +1506,15 @@ V8Proxy* V8Proxy::retrieve(Frame* frame) return frame->script()->isEnabled() ? frame->script()->proxy() : 0; } + +V8Proxy* V8Proxy::retrieve(ScriptExecutionContext* context) +{ + if (!context->isDocument()) + return 0; + return retrieve(static_cast<Document*>(context)->frame()); +} + + void V8Proxy::disconnectFrame() { // disconnect all event listeners @@ -1615,6 +1625,9 @@ void V8Proxy::clearForNavigation() ToNativeObject<DOMWindow>(V8ClassIndex::DOMWINDOW, wrapper); domWindow->clearAllTimeouts(); + // disconnect all event listeners + DisconnectEventListeners(); + // Separate the context from its global object. m_context->DetachGlobal(); } @@ -2664,8 +2677,11 @@ void V8Proxy::UpdateDocumentHandle(v8::Local<v8::Object> handle) } -// A JS object of type EventTarget can only be two possible types: -// 1) EventTargetNode; 2) XMLHttpRequest; +// A JS object of type EventTarget can only be five possible types: +// 1) EventTargetNode; 2) XMLHttpRequest; 3) MessagePort; 4) SVGElementInstance; +// 5) XMLHttpRequestUpload +// check EventTarget.h for new type conversion methods +// also make sure to sync with V8EventListener::GetThisObject (v8_events.cpp) v8::Handle<v8::Value> V8Proxy::EventTargetToV8Object(EventTarget* target) { if (!target) @@ -2689,6 +2705,21 @@ v8::Handle<v8::Value> V8Proxy::EventTargetToV8Object(EventTarget* target) return peer; } + // MessagePort is created within its JS counterpart + MessagePort* port = target->toMessagePort(); + if (port) { + v8::Handle<v8::Object> peer = dom_object_map().get(port); + ASSERT(!peer.IsEmpty()); + return peer; + } + + XMLHttpRequestUpload* upload = target->toXMLHttpRequestUpload(); + if (upload) { + v8::Handle<v8::Object> peer = dom_object_map().get(upload); + ASSERT(!peer.IsEmpty()); + return peer; + } + ASSERT(0); return v8::Handle<v8::Value>(); } diff --git a/webkit/port/bindings/v8/v8_proxy.h b/webkit/port/bindings/v8/v8_proxy.h index 5c2c246..3f69153 100644 --- a/webkit/port/bindings/v8/v8_proxy.h +++ b/webkit/port/bindings/v8/v8_proxy.h @@ -64,6 +64,7 @@ class CSSRule; class CSSRuleList; class CSSValueList; class NodeFilter; +class ScriptExecutionContext; #if ENABLE(SVG) class SVGElementInstance; @@ -210,11 +211,11 @@ class V8Proxy { static void GCUnprotect(Peerable* dom_object); // Create a lazy event listener. - PassRefPtr<EventListener> createHTMLEventHandler(const String& functionName, - const String& code, Node* node); + PassRefPtr<EventListener> createInlineEventListener( + const String& functionName, const String& code, Node* node); #if ENABLE(SVG) - PassRefPtr<EventListener> createSVGEventHandler(const String& functionName, - const String& code, Node* node); + PassRefPtr<EventListener> createSVGEventHandler( + const String& functionName, const String& code, Node* node); static void SetSVGContext(void* object, SVGElement* context); static SVGElement* GetSVGContext(void* object); @@ -241,15 +242,20 @@ class V8Proxy { // Returns the window object of the currently executing context. static DOMWindow* retrieveWindow(); + // Returns the window object associated with a context. + static DOMWindow* retrieveWindow(v8::Handle<v8::Context> context); // Returns V8Proxy object of the currently executing context. static V8Proxy* retrieve(); // Returns V8Proxy object associated with a frame. static V8Proxy* retrieve(Frame* frame); + // Returns V8Proxy object associated with a script execution context. + static V8Proxy* retrieve(ScriptExecutionContext* context); + // Returns the frame object of the window object associated // with the currently executing context. static Frame* retrieveFrame(); // Returns the frame object of the window object associated with - // an context. + // a context. static Frame* retrieveFrame(v8::Handle<v8::Context> context); // Returns the frame that started JS execution. // NOTE: cannot declare retrieveActiveFrame as inline function, diff --git a/webkit/port/page/Console.idl b/webkit/port/page/Console.idl new file mode 100644 index 0000000..79a33f6 --- /dev/null +++ b/webkit/port/page/Console.idl @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2007, 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. + * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +module window { + + interface Console { + [Custom] void debug(); + [Custom] void error(); + [Custom] void info(); + [Custom] void log(); + [Custom] void warn(); + [Custom] void dir(); + [Custom] void dirxml(); + [Custom] void trace(); + [Custom, ImplementationFunction=assertCondition] void assert(in boolean condition); + [Custom] void count(); + + [Custom] void profile(in DOMString title); + [Custom] void profileEnd(); + void time(in [ConvertUndefinedOrNullToNullString] DOMString title); + [Custom] void timeEnd(); + [Custom] void group(); + void groupEnd(); + }; + +} diff --git a/webkit/port/page/chromium/ChromeClientChromium.h b/webkit/port/page/chromium/ChromeClientChromium.h index 783b5b5..b59529a 100644 --- a/webkit/port/page/chromium/ChromeClientChromium.h +++ b/webkit/port/page/chromium/ChromeClientChromium.h @@ -20,10 +20,6 @@ namespace WebCore { class ChromeClientChromium : public ChromeClient { public: - // Opens the file selection dialog. - virtual void runFileChooser(const String& defaultFileName, - PassRefPtr<FileChooser> file_chooser) = 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, bool focus_on_show) = 0; diff --git a/webkit/port/platform/chromium/CursorChromium.cpp b/webkit/port/platform/chromium/CursorChromium.cpp index 90485fe..fe9a893 100644 --- a/webkit/port/platform/chromium/CursorChromium.cpp +++ b/webkit/port/platform/chromium/CursorChromium.cpp @@ -300,4 +300,14 @@ const Cursor& zoomOutCursor() return c; } +const Cursor& grabCursor() +{ + return pointerCursor(); +} + +const Cursor& grabbingCursor() +{ + return pointerCursor(); +} + } diff --git a/webkit/port/platform/chromium/FileChooserChromium.cpp b/webkit/port/platform/chromium/FileChooserChromium.cpp index c70ff69..37a075e 100644 --- a/webkit/port/platform/chromium/FileChooserChromium.cpp +++ b/webkit/port/platform/chromium/FileChooserChromium.cpp @@ -39,29 +39,16 @@ namespace WebCore { -void FileChooser::openFileChooser(Document* document) -{ - Frame* frame = document->frame(); - if (!frame) - return; - - ChromeClientChromium* client = - static_cast<ChromeClientChromium*>(frame->page()->chrome()->client()); - - String result; - client->runFileChooser(m_filename, &*this); -} - String FileChooser::basenameForWidth(const Font& font, int width) const { if (width <= 0) return String(); String string; - if (m_filename.isEmpty()) + if (!m_filenames.size()) string = fileButtonNoFileSelectedLabel(); else - string = pathGetFileName(m_filename); + string = pathGetFileName(m_filenames[0]); return StringTruncator::centerTruncate(string, static_cast<float>(width), font, false); } diff --git a/webkit/port/platform/chromium/IconLinux.cpp b/webkit/port/platform/chromium/IconLinux.cpp index 963373b..9c38d84 100644 --- a/webkit/port/platform/chromium/IconLinux.cpp +++ b/webkit/port/platform/chromium/IconLinux.cpp @@ -38,7 +38,13 @@ Icon::~Icon() { } -PassRefPtr<Icon> Icon::newIconForFile(const String& filename) +PassRefPtr<Icon> Icon::createIconForFile(const String& filename) +{ + notImplemented(); + return NULL; +} + +PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames) { notImplemented(); return NULL; diff --git a/webkit/port/platform/chromium/RenderThemeGtk.cpp b/webkit/port/platform/chromium/RenderThemeGtk.cpp index 59d5361..54b3254 100644 --- a/webkit/port/platform/chromium/RenderThemeGtk.cpp +++ b/webkit/port/platform/chromium/RenderThemeGtk.cpp @@ -54,17 +54,17 @@ RenderThemeGtk::RenderThemeGtk() { } -static bool supportsFocus(EAppearance appearance) +static bool supportsFocus(ControlPart appearance) { switch (appearance) { - case PushButtonAppearance: - case ButtonAppearance: - case TextFieldAppearance: - case TextAreaAppearance: - case SearchFieldAppearance: - case MenulistAppearance: - case RadioAppearance: - case CheckboxAppearance: + case PushButtonPart: + case ButtonPart: + case TextFieldPart: + case TextAreaPart: + case SearchFieldPart: + case MenulistPart: + case RadioPart: + case CheckboxPart: return true; default: return false; @@ -84,8 +84,8 @@ bool RenderThemeGtk::controlSupportsTints(const RenderObject* o) const int RenderThemeGtk::baselinePosition(const RenderObject* o) const { // FIXME: This strategy is possibly incorrect for the GTK+ port. - if (o->style()->appearance() == CheckboxAppearance || - o->style()->appearance() == RadioAppearance) + if (o->style()->appearance() == CheckboxPart|| + o->style()->appearance() == RadioPart) return o->marginTop() + o->height() - 2; return RenderTheme::baselinePosition(o); } @@ -203,7 +203,7 @@ static void setButtonPadding(RenderStyle* style) style->setPaddingBottom(Length(padding / 2, Fixed)); } -static void setToggleSize(RenderStyle* style, EAppearance appearance) +static void setToggleSize(RenderStyle* style, ControlPart appearance) { // The width and height are both specified, so we shouldn't change them. if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) @@ -213,11 +213,11 @@ static void setToggleSize(RenderStyle* style, EAppearance appearance) gint indicator_size, indicator_spacing; switch (appearance) { - case CheckboxAppearance: + case CheckboxPart: if (moz_gtk_checkbox_get_metrics(&indicator_size, &indicator_spacing) != MOZ_GTK_SUCCESS) return; break; - case RadioAppearance: + case RadioPart: if (moz_gtk_radio_get_metrics(&indicator_size, &indicator_spacing) != MOZ_GTK_SUCCESS) return; break; @@ -237,7 +237,7 @@ static void setToggleSize(RenderStyle* style, EAppearance appearance) void RenderThemeGtk::setCheckboxSize(RenderStyle* style) const { - setToggleSize(style, RadioAppearance); + setToggleSize(style, RadioPart); } bool RenderThemeGtk::paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect) @@ -247,7 +247,7 @@ bool RenderThemeGtk::paintCheckbox(RenderObject* o, const RenderObject::PaintInf void RenderThemeGtk::setRadioSize(RenderStyle* style) const { - setToggleSize(style, RadioAppearance); + setToggleSize(style, RadioPart); } bool RenderThemeGtk::paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect) @@ -258,7 +258,7 @@ bool RenderThemeGtk::paintRadio(RenderObject* o, const RenderObject::PaintInfo& void RenderThemeGtk::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const { // FIXME: Is this condition necessary? - if (style->appearance() == PushButtonAppearance) { + if (style->appearance() == PushButtonPart) { style->resetBorder(); style->setHeight(Length(Auto)); style->setWhiteSpace(PRE); diff --git a/webkit/port/platform/graphics/BitmapImageSingleFrameSkia.h b/webkit/port/platform/graphics/BitmapImageSingleFrameSkia.h index 1739a59..2ec3fbd 100644 --- a/webkit/port/platform/graphics/BitmapImageSingleFrameSkia.h +++ b/webkit/port/platform/graphics/BitmapImageSingleFrameSkia.h @@ -33,7 +33,7 @@ public: } // Do nothing, as we only have the one representation of data (decoded). - virtual void destroyDecodedData(bool) { } + virtual void destroyDecodedData(bool, bool preserveNearbyFrames = false) { } virtual unsigned decodedSize() const { diff --git a/webkit/port/platform/graphics/IconWin.cpp b/webkit/port/platform/graphics/IconWin.cpp index b1a8d70..cd16ef2 100644 --- a/webkit/port/platform/graphics/IconWin.cpp +++ b/webkit/port/platform/graphics/IconWin.cpp @@ -42,7 +42,7 @@ Icon::~Icon() DestroyIcon(m_icon); } -PassRefPtr<Icon> Icon::newIconForFile(const String& filename) +PassRefPtr<Icon> Icon::createIconForFile(const String& filename) { SHFILEINFO sfi; memset(&sfi, 0, sizeof(sfi)); @@ -54,6 +54,16 @@ PassRefPtr<Icon> Icon::newIconForFile(const String& filename) return adoptRef(new Icon(sfi.hIcon)); } +PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames) +{ + // TODO: support multiple files. + // http://code.google.com/p/chromium/issues/detail?id=4092 + if (!filenames.size()) + return 0; + + return createIconForFile(filenames[0]); +} + void Icon::paint(GraphicsContext* context, const IntRect& rect) { if (context->paintingDisabled()) diff --git a/webkit/port/platform/graphics/mac/IconMac.cpp b/webkit/port/platform/graphics/mac/IconMac.cpp index 67f7ca4..6514d71 100644 --- a/webkit/port/platform/graphics/mac/IconMac.cpp +++ b/webkit/port/platform/graphics/mac/IconMac.cpp @@ -38,7 +38,12 @@ namespace WebCore { -PassRefPtr<Icon> Icon::newIconForFile(const String& filename) +PassRefPtr<Icon> Icon::createIconForFile(const String& filename) +{ + return NULL; +} + +PassRefPtr<Icon> Icon::createIconForFiles(const Vector<String>& filenames) { return NULL; } diff --git a/webkit/port/platform/graphics/svg/SVGPaintServerGradientSkia.cpp b/webkit/port/platform/graphics/svg/SVGPaintServerGradientSkia.cpp index 122e337..3771d99 100644 --- a/webkit/port/platform/graphics/svg/SVGPaintServerGradientSkia.cpp +++ b/webkit/port/platform/graphics/svg/SVGPaintServerGradientSkia.cpp @@ -144,11 +144,11 @@ bool SVGPaintServerGradient::setup(GraphicsContext*& context, switch(spreadMethod()) { default: - case SPREADMETHOD_PAD: + case SpreadMethodPad: tile_mode = SkShader::kClamp_TileMode; break; - case SPREADMETHOD_REFLECT: + case SpreadMethodReflect: tile_mode = SkShader::kMirror_TileMode; break; - case SPREADMETHOD_REPEAT: + case SpreadMethodRepeat: tile_mode = SkShader::kRepeat_TileMode; break; } diff --git a/webkit/port/rendering/RenderThemeMac.mm b/webkit/port/rendering/RenderThemeMac.mm index 357f4eb..22d5146 100644 --- a/webkit/port/rendering/RenderThemeMac.mm +++ b/webkit/port/rendering/RenderThemeMac.mm @@ -58,7 +58,6 @@ using std::min; // FIXME: The platform-independent code in this class should be factored out and merged with RenderThemeSafari. - @interface WebCoreRenderThemeNotificationObserver : NSObject { WebCore::RenderTheme *_theme; @@ -106,8 +105,8 @@ enum { }; // In our Mac port, we don't define PLATFORM(MAC) and thus don't pick up the -// |operator NSRect()| on WebCore::IntRect and FloatRect. This substitues for that missing -// conversion operator. +// |operator NSRect()| on WebCore::IntRect and FloatRect. This substitues for +// that missing conversion operator. NSRect IntRectToNSRect(const IntRect & rect) { return NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height()); @@ -123,6 +122,7 @@ IntRect NSRectToIntRect(const NSRect & rect) return IntRect(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); } + RenderTheme* theme() { static RenderThemeMac* macTheme = new RenderThemeMac; @@ -438,17 +438,18 @@ Color RenderThemeMac::systemColor(int cssValueId) const bool RenderThemeMac::isControlStyled(const RenderStyle* style, const BorderData& border, const FillLayer& background, const Color& backgroundColor) const { - if (style->appearance() == TextFieldAppearance || style->appearance() == TextAreaAppearance || style->appearance() == ListboxAppearance) + if (style->appearance() == TextFieldPart || style->appearance() == TextAreaPart || style->appearance() == ListboxPart) return style->border() != border; return RenderTheme::isControlStyled(style, border, background, backgroundColor); } +// TODO(port): Use the code from the old upstream version, before it was converted to the new theme API in r37731. void RenderThemeMac::adjustRepaintRect(const RenderObject* o, IntRect& r) { float zoomLevel = o->style()->effectiveZoom(); switch (o->style()->appearance()) { - case CheckboxAppearance: { + case CheckboxPart: { // Since we query the prototype cell, we need to update its state to match. setCheckboxCellState(o, r); @@ -460,7 +461,7 @@ void RenderThemeMac::adjustRepaintRect(const RenderObject* o, IntRect& r) r = inflateRect(r, size, checkboxMargins(), zoomLevel); break; } - case RadioAppearance: { + case RadioPart: { // Since we query the prototype cell, we need to update its state to match. setRadioCellState(o, r); @@ -472,9 +473,9 @@ void RenderThemeMac::adjustRepaintRect(const RenderObject* o, IntRect& r) r = inflateRect(r, size, radioMargins(), zoomLevel); break; } - case PushButtonAppearance: - case DefaultButtonAppearance: - case ButtonAppearance: { + case PushButtonPart: + case DefaultButtonPart: + case ButtonPart: { // Since we query the prototype cell, we need to update its state to match. setButtonCellState(o, r); @@ -488,7 +489,7 @@ void RenderThemeMac::adjustRepaintRect(const RenderObject* o, IntRect& r) } break; } - case MenulistAppearance: { + case MenulistPart: { setPopupButtonCellState(o, r); IntSize size = popupButtonSizes()[[popupButton() controlSize]]; size.setHeight(size.height() * zoomLevel); @@ -559,9 +560,10 @@ void RenderThemeMac::updatePressedState(NSCell* cell, const RenderObject* o) [cell setHighlighted:pressed]; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. int RenderThemeMac::baselinePosition(const RenderObject* o) const { - if (o->style()->appearance() == CheckboxAppearance || o->style()->appearance() == RadioAppearance) + if (o->style()->appearance() == CheckboxPart || o->style()->appearance() == RadioPart) return o->marginTop() + o->height() - 2 * o->style()->effectiveZoom(); // The baseline is 2px up from the bottom of the checkbox/radio in AppKit. return RenderTheme::baselinePosition(o); } @@ -577,7 +579,7 @@ bool RenderThemeMac::controlSupportsTints(const RenderObject* o) const return false; // Checkboxes only have tint when checked. - if (o->style()->appearance() == CheckboxAppearance) + if (o->style()->appearance() == CheckboxPart) return isChecked(o); // For now assume other controls have tint if enabled. @@ -665,6 +667,7 @@ NSControlSize RenderThemeMac::controlSizeForSystemFont(RenderStyle* style) const return NSMiniControlSize; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. bool RenderThemeMac::paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) { // Determine the width and height needed for the control and prepare the cell for painting. @@ -690,9 +693,7 @@ bool RenderThemeMac::paintCheckbox(RenderObject* o, const RenderObject::PaintInf paintInfo.context->translate(-inflatedRect.x(), -inflatedRect.y()); } -#if 0 - [checkbox drawWithFrame:NSRect(IntRectToNSRect(inflatedRect)) inView:o->view()->frameView()->documentView()]; -#endif + [checkbox drawWithFrame:NSRect(IntRectToNSRect(inflatedRect)) inView:nil]; [checkbox setControlView:nil]; paintInfo.context->restore(); @@ -700,12 +701,14 @@ bool RenderThemeMac::paintCheckbox(RenderObject* o, const RenderObject::PaintInf return false; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const IntSize* RenderThemeMac::checkboxSizes() const { static const IntSize sizes[3] = { IntSize(14, 14), IntSize(12, 12), IntSize(10, 10) }; return sizes; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const int* RenderThemeMac::checkboxMargins() const { static const int margins[3][4] = @@ -717,6 +720,7 @@ const int* RenderThemeMac::checkboxMargins() const return margins[[checkbox() controlSize]]; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setCheckboxCellState(const RenderObject* o, const IntRect& r) { NSButtonCell* checkbox = this->checkbox(); @@ -731,6 +735,7 @@ void RenderThemeMac::setCheckboxCellState(const RenderObject* o, const IntRect& updateFocusedState(checkbox, o); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setCheckboxSize(RenderStyle* style) const { // If the width and height are both specified, then we have nothing to do. @@ -741,6 +746,7 @@ void RenderThemeMac::setCheckboxSize(RenderStyle* style) const setSizeFromFont(style, checkboxSizes()); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. bool RenderThemeMac::paintRadio(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) { // Determine the width and height needed for the control and prepare the cell for painting. @@ -766,11 +772,7 @@ bool RenderThemeMac::paintRadio(RenderObject* o, const RenderObject::PaintInfo& paintInfo.context->translate(-inflatedRect.x(), -inflatedRect.y()); } -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [radio drawWithFrame:NSRect(IntRectToNSRect(inflatedRect)) inView:view]; + [radio drawWithFrame:NSRect(IntRectToNSRect(inflatedRect)) inView:nil]; [radio setControlView:nil]; paintInfo.context->restore(); @@ -778,12 +780,14 @@ bool RenderThemeMac::paintRadio(RenderObject* o, const RenderObject::PaintInfo& return false; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const IntSize* RenderThemeMac::radioSizes() const { static const IntSize sizes[3] = { IntSize(14, 15), IntSize(12, 13), IntSize(10, 10) }; return sizes; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const int* RenderThemeMac::radioMargins() const { static const int margins[3][4] = @@ -795,6 +799,7 @@ const int* RenderThemeMac::radioMargins() const return margins[[radio() controlSize]]; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setRadioCellState(const RenderObject* o, const IntRect& r) { NSButtonCell* radio = this->radio(); @@ -809,7 +814,7 @@ void RenderThemeMac::setRadioCellState(const RenderObject* o, const IntRect& r) updateFocusedState(radio, o); } - +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setRadioSize(RenderStyle* style) const { // If the width and height are both specified, then we have nothing to do. @@ -820,6 +825,7 @@ void RenderThemeMac::setRadioSize(RenderStyle* style) const setSizeFromFont(style, radioSizes()); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setButtonPaddingFromControlSize(RenderStyle* style, NSControlSize size) const { // Just use 8px. AppKit wants to use 11px for mini buttons, but that padding is just too large @@ -834,6 +840,7 @@ void RenderThemeMac::setButtonPaddingFromControlSize(RenderStyle* style, NSContr style->setPaddingBottom(Length(0, Fixed)); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const { // There are three appearance constants for buttons. @@ -848,7 +855,7 @@ void RenderThemeMac::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* // Determine our control size based off our font. NSControlSize controlSize = controlSizeForFont(style); - if (style->appearance() == PushButtonAppearance) { + if (style->appearance() == PushButtonPart) { // Ditch the border. style->resetBorder(); @@ -880,12 +887,14 @@ void RenderThemeMac::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style->setBoxShadow(0); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const IntSize* RenderThemeMac::buttonSizes() const { static const IntSize sizes[3] = { IntSize(0, 21), IntSize(0, 18), IntSize(0, 15) }; return sizes; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. const int* RenderThemeMac::buttonMargins() const { static const int margins[3][4] = @@ -897,6 +906,7 @@ const int* RenderThemeMac::buttonMargins() const return margins[[button() controlSize]]; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setButtonSize(RenderStyle* style) const { // If the width and height are both specified, then we have nothing to do. @@ -907,12 +917,13 @@ void RenderThemeMac::setButtonSize(RenderStyle* style) const setSizeFromFont(style, buttonSizes()); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. void RenderThemeMac::setButtonCellState(const RenderObject* o, const IntRect& r) { NSButtonCell* button = this->button(); // Set the control size based off the rectangle we're painting into. - if (o->style()->appearance() == SquareButtonAppearance || + if (o->style()->appearance() == SquareButtonPart || r.height() > buttonSizes()[NSRegularControlSize].height() * o->style()->effectiveZoom()) { // Use the square button if ([button bezelStyle] != NSShadowlessSquareBezelStyle) @@ -922,11 +933,9 @@ void RenderThemeMac::setButtonCellState(const RenderObject* o, const IntRect& r) setControlSize(button, buttonSizes(), r.size(), o->style()->effectiveZoom()); -#if 0 - NSWindow *window = [o->view()->frameView()->documentView() window]; + NSWindow *window = [nil window]; BOOL isDefaultButton = (isDefault(o) && [window isKeyWindow]); [button setKeyEquivalent:(isDefaultButton ? @"\r" : @"")]; -#endif // Update the various states we respond to. updateCheckedState(button, o); @@ -935,6 +944,7 @@ void RenderThemeMac::setButtonCellState(const RenderObject* o, const IntRect& r) updateFocusedState(button, o); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. bool RenderThemeMac::paintButton(RenderObject* o, const RenderObject::PaintInfo& paintInfo, const IntRect& r) { NSButtonCell* button = this->button(); @@ -971,9 +981,6 @@ bool RenderThemeMac::paintButton(RenderObject* o, const RenderObject::PaintInfo& } } -#if 0 - NSView *view = o->view()->frameView()->documentView(); -#endif NSView *view = nil; NSWindow *window = [view window]; NSButtonCell *previousDefaultButtonCell = [window defaultButtonCell]; @@ -1087,11 +1094,7 @@ bool RenderThemeMac::paintMenuList(RenderObject* o, const RenderObject::PaintInf paintInfo.context->translate(-inflatedRect.x(), -inflatedRect.y()); } -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [popupButton drawWithFrame:IntRectToNSRect(inflatedRect) inView:view]; + [popupButton drawWithFrame:IntRectToNSRect(inflatedRect) inView:nil]; [popupButton setControlView:nil]; paintInfo.context->restore(); @@ -1277,6 +1280,12 @@ bool RenderThemeMac::paintMenuListButton(RenderObject* o, const RenderObject::Pa return false; } +static const IntSize* menuListButtonSizes() +{ + static const IntSize sizes[3] = { IntSize(0, 21), IntSize(0, 18), IntSize(0, 15) }; + return sizes; +} + void RenderThemeMac::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const { NSControlSize controlSize = controlSizeForFont(style); @@ -1295,7 +1304,7 @@ void RenderThemeMac::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle style->setColor(e->isEnabled() ? static_cast<RGBA32>(Color::black) : Color::darkGray); // Set the button's vertical size. - setButtonSize(style); + setSizeFromFont(style, menuListButtonSizes()); // Our font is locked to the appropriate system font size for the control. To clarify, we first use the CSS-specified font to figure out // a reasonable control size, but once that control size is determined, we throw that font away and use the appropriate @@ -1307,18 +1316,18 @@ void RenderThemeMac::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle int RenderThemeMac::popupInternalPaddingLeft(RenderStyle* style) const { - if (style->appearance() == MenulistAppearance) + if (style->appearance() == MenulistPart) return popupButtonPadding(controlSizeForFont(style))[leftPadding] * style->effectiveZoom(); - if (style->appearance() == MenulistButtonAppearance) + if (style->appearance() == MenulistButtonPart) return styledPopupPaddingLeft * style->effectiveZoom(); return 0; } int RenderThemeMac::popupInternalPaddingRight(RenderStyle* style) const { - if (style->appearance() == MenulistAppearance) + if (style->appearance() == MenulistPart) return popupButtonPadding(controlSizeForFont(style))[rightPadding] * style->effectiveZoom(); - if (style->appearance() == MenulistButtonAppearance) { + if (style->appearance() == MenulistButtonPart) { float fontScale = style->fontSize() / baseFontSize; float arrowWidth = baseArrowWidth * fontScale; return static_cast<int>(ceilf(arrowWidth + (arrowPaddingLeft + arrowPaddingRight + paddingBeforeSeparator) * style->effectiveZoom())); @@ -1328,18 +1337,18 @@ int RenderThemeMac::popupInternalPaddingRight(RenderStyle* style) const int RenderThemeMac::popupInternalPaddingTop(RenderStyle* style) const { - if (style->appearance() == MenulistAppearance) + if (style->appearance() == MenulistPart) return popupButtonPadding(controlSizeForFont(style))[topPadding] * style->effectiveZoom(); - if (style->appearance() == MenulistButtonAppearance) + if (style->appearance() == MenulistButtonPart) return styledPopupPaddingTop * style->effectiveZoom(); return 0; } int RenderThemeMac::popupInternalPaddingBottom(RenderStyle* style) const { - if (style->appearance() == MenulistAppearance) + if (style->appearance() == MenulistPart) return popupButtonPadding(controlSizeForFont(style))[bottomPadding] * style->effectiveZoom(); - if (style->appearance() == MenulistButtonAppearance) + if (style->appearance() == MenulistButtonPart) return styledPopupPaddingBottom * style->effectiveZoom(); return 0; } @@ -1396,10 +1405,10 @@ bool RenderThemeMac::paintSliderTrack(RenderObject* o, const RenderObject::Paint float zoomLevel = o->style()->effectiveZoom(); float zoomedTrackWidth = trackWidth * zoomLevel; - if (o->style()->appearance() == SliderHorizontalAppearance || o->style()->appearance() == MediaSliderAppearance) { + if (o->style()->appearance() == SliderHorizontalPart || o->style()->appearance() == MediaSliderPart) { bounds.setHeight(zoomedTrackWidth); bounds.setY(r.y() + r.height() / 2 - zoomedTrackWidth / 2); - } else if (o->style()->appearance() == SliderVerticalAppearance) { + } else if (o->style()->appearance() == SliderVerticalPart) { bounds.setWidth(zoomedTrackWidth); bounds.setX(r.x() + r.width() / 2 - zoomedTrackWidth / 2); } @@ -1414,7 +1423,7 @@ bool RenderThemeMac::paintSliderTrack(RenderObject* o, const RenderObject::Paint struct CGFunctionCallbacks mainCallbacks = { 0, TrackGradientInterpolate, NULL }; RetainPtr<CGFunctionRef> mainFunction(AdoptCF, CGFunctionCreate(NULL, 1, NULL, 4, NULL, &mainCallbacks)); RetainPtr<CGShadingRef> mainShading; - if (o->style()->appearance() == SliderVerticalAppearance) + if (o->style()->appearance() == SliderVerticalPart) mainShading.adoptCF(CGShadingCreateAxial(cspace.get(), CGPointMake(bounds.x(), bounds.bottom()), CGPointMake(bounds.right(), bounds.bottom()), mainFunction.get(), false, false)); else mainShading.adoptCF(CGShadingCreateAxial(cspace.get(), CGPointMake(bounds.x(), bounds.y()), CGPointMake(bounds.x(), bounds.bottom()), mainFunction.get(), false, false)); @@ -1440,7 +1449,7 @@ bool RenderThemeMac::paintSliderThumb(RenderObject* o, const RenderObject::Paint { ASSERT(o->parent()->isSlider()); - NSSliderCell* sliderThumbCell = o->style()->appearance() == SliderThumbVerticalAppearance + NSSliderCell* sliderThumbCell = o->style()->appearance() == SliderThumbVerticalPart ? sliderThumbVertical() : sliderThumbHorizontal(); @@ -1452,14 +1461,14 @@ bool RenderThemeMac::paintSliderThumb(RenderObject* o, const RenderObject::Paint // Update the pressed state using the NSCell tracking methods, since that's how NSSliderCell keeps track of it. bool oldPressed; - if (o->style()->appearance() == SliderThumbVerticalAppearance) + if (o->style()->appearance() == SliderThumbVerticalPart) oldPressed = m_isSliderThumbVerticalPressed; else oldPressed = m_isSliderThumbHorizontalPressed; bool pressed = static_cast<RenderSlider*>(o->parent())->inDragMode(); - if (o->style()->appearance() == SliderThumbVerticalAppearance) + if (o->style()->appearance() == SliderThumbVerticalPart) m_isSliderThumbVerticalPressed = pressed; else m_isSliderThumbHorizontalPressed = pressed; @@ -1473,7 +1482,7 @@ bool RenderThemeMac::paintSliderThumb(RenderObject* o, const RenderObject::Paint FloatRect bounds = r; // Make the height of the vertical slider slightly larger so NSSliderCell will draw a vertical slider. - if (o->style()->appearance() == SliderThumbVerticalAppearance) + if (o->style()->appearance() == SliderThumbVerticalPart) bounds.setHeight(bounds.height() + verticalSliderHeightPadding * o->style()->effectiveZoom()); paintInfo.context->save(); @@ -1488,11 +1497,7 @@ bool RenderThemeMac::paintSliderThumb(RenderObject* o, const RenderObject::Paint paintInfo.context->translate(-unzoomedRect.x(), -unzoomedRect.y()); } -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [sliderThumbCell drawWithFrame:FloatRectToNSRect(unzoomedRect) inView:view]; + [sliderThumbCell drawWithFrame:FloatRectToNSRect(unzoomedRect) inView:nil]; [sliderThumbCell setControlView:nil]; paintInfo.context->restore(); @@ -1508,10 +1513,10 @@ const int mediaSliderThumbHeight = 14; void RenderThemeMac::adjustSliderThumbSize(RenderObject* o) const { float zoomLevel = o->style()->effectiveZoom(); - if (o->style()->appearance() == SliderThumbHorizontalAppearance || o->style()->appearance() == SliderThumbVerticalAppearance) { + if (o->style()->appearance() == SliderThumbHorizontalPart || o->style()->appearance() == SliderThumbVerticalPart) { o->style()->setWidth(Length(static_cast<int>(sliderThumbWidth * zoomLevel), Fixed)); o->style()->setHeight(Length(static_cast<int>(sliderThumbHeight * zoomLevel), Fixed)); - } else if (o->style()->appearance() == MediaSliderThumbAppearance) { + } else if (o->style()->appearance() == MediaSliderThumbPart) { o->style()->setWidth(Length(mediaSliderThumbWidth, Fixed)); o->style()->setHeight(Length(mediaSliderThumbHeight, Fixed)); } @@ -1541,11 +1546,7 @@ bool RenderThemeMac::paintSearchField(RenderObject* o, const RenderObject::Paint // Set the search button to nil before drawing. Then reset it so we can draw it later. [search setSearchButtonCell:nil]; -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [search drawWithFrame:NSRect(IntRectToNSRect(unzoomedRect)) inView:view]; + [search drawWithFrame:NSRect(IntRectToNSRect(unzoomedRect)) inView:nil]; #ifdef BUILDING_ON_TIGER if ([search showsFirstResponder]) wkDrawTextFieldCellFocusRing(search, NSRect(unzoomedRect)); @@ -1641,11 +1642,7 @@ bool RenderThemeMac::paintSearchFieldCancelButton(RenderObject* o, const RenderO paintInfo.context->translate(-unzoomedRect.x(), -unzoomedRect.y()); } -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [[search cancelButtonCell] drawWithFrame:IntRectToNSRect(unzoomedRect) inView:view]; + [[search cancelButtonCell] drawWithFrame:IntRectToNSRect(unzoomedRect) inView:nil]; [[search cancelButtonCell] setControlView:nil]; paintInfo.context->restore(); @@ -1705,11 +1702,7 @@ bool RenderThemeMac::paintSearchFieldResultsDecoration(RenderObject* o, const Re [search setSearchMenuTemplate:nil]; NSRect bounds = [search searchButtonRectForBounds:NSRect(IntRectToNSRect(input->renderer()->absoluteBoundingBoxRect()))]; -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [[search searchButtonCell] drawWithFrame:bounds inView:view]; + [[search searchButtonCell] drawWithFrame:bounds inView:nil]; [[search searchButtonCell] setControlView:nil]; return false; } @@ -1748,11 +1741,7 @@ bool RenderThemeMac::paintSearchFieldResultsButton(RenderObject* o, const Render paintInfo.context->translate(-unzoomedRect.x(), -unzoomedRect.y()); } -#if 0 - NSView* view = o->view()->frameView()->documentView(); -#endif - NSView* view = nil; - [[search searchButtonCell] drawWithFrame:IntRectToNSRect(unzoomedRect) inView:view]; + [[search searchButtonCell] drawWithFrame:IntRectToNSRect(unzoomedRect) inView:nil]; [[search searchButtonCell] setControlView:nil]; paintInfo.context->restore(); @@ -1808,7 +1797,7 @@ bool RenderThemeMac::paintMediaPlayButton(RenderObject* o, const RenderObject::P if (mediaElement->canPlay()) wkDrawMediaPlayButton(paintInfo.context->platformContext(), r, node->active()); else - wkDrawMediaPauseButton(paintInfo.context->platformContext(), r, node->active()); + wkDrawMediaPauseButton(paintInfo.context->platformContext(), r, node->active()); #endif return false; } @@ -1868,6 +1857,7 @@ bool RenderThemeMac::paintMediaSliderThumb(RenderObject* o, const RenderObject:: return false; } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. NSButtonCell* RenderThemeMac::checkbox() const { if (!m_checkbox) { @@ -1881,6 +1871,7 @@ NSButtonCell* RenderThemeMac::checkbox() const return m_checkbox.get(); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. NSButtonCell* RenderThemeMac::radio() const { if (!m_radio) { @@ -1893,6 +1884,7 @@ NSButtonCell* RenderThemeMac::radio() const return m_radio.get(); } +// TODO(port): This used to be in the upstream version until it was converted to the new theme API in r37731. NSButtonCell* RenderThemeMac::button() const { if (!m_button) { diff --git a/webkit/port/rendering/RenderThemeWin.cpp b/webkit/port/rendering/RenderThemeWin.cpp index 917e5ee..51e146a 100644 --- a/webkit/port/rendering/RenderThemeWin.cpp +++ b/webkit/port/rendering/RenderThemeWin.cpp @@ -101,9 +101,9 @@ namespace { // form control fonts. float DefaultFontSize = 16.0; - WebCore::FontDescription SmallSystemFont; - WebCore::FontDescription MenuFont; - WebCore::FontDescription LabelFont; + WebCore::FontDescription smallSystemFont; + WebCore::FontDescription menuFont; + WebCore::FontDescription labelFont; } namespace WebCore { @@ -296,8 +296,8 @@ void RenderThemeWin::systemFont(int propId, Document* document, FontDescription& float fontSize = 0; switch (propId) { case CSSValueSmallCaption: - cachedDesc = &SmallSystemFont; - if (!SmallSystemFont.isAbsoluteSize()) { + cachedDesc = &smallSystemFont; + if (!smallSystemFont.isAbsoluteSize()) { if (webkit_glue::IsLayoutTestMode()) { fontSize = systemFontSizeForControlSize(SmallControlSize); } else { @@ -309,8 +309,8 @@ void RenderThemeWin::systemFont(int propId, Document* document, FontDescription& } break; case CSSValueMenu: - cachedDesc = &MenuFont; - if (!MenuFont.isAbsoluteSize()) { + cachedDesc = &menuFont; + if (!menuFont.isAbsoluteSize()) { if (webkit_glue::IsLayoutTestMode()) { fontSize = systemFontSizeForControlSize(RegularControlSize); } else { @@ -322,8 +322,8 @@ void RenderThemeWin::systemFont(int propId, Document* document, FontDescription& } break; case CSSValueStatusBar: - cachedDesc = &LabelFont; - if (!LabelFont.isAbsoluteSize()) { + cachedDesc = &labelFont; + if (!labelFont.isAbsoluteSize()) { if (webkit_glue::IsLayoutTestMode()) { fontSize = kLayoutTestStatusBarFontSize; } else { @@ -389,13 +389,14 @@ void RenderThemeWin::systemFont(int propId, Document* document, FontDescription& fontDescription = *cachedDesc; } -bool RenderThemeWin::supportsFocus(EAppearance appearance) +bool RenderThemeWin::supportsFocus(ControlPart appearance) { switch (appearance) { - case PushButtonAppearance: - case ButtonAppearance: - case TextFieldAppearance: - case TextAreaAppearance: + case PushButtonPart: + case ButtonPart: + case DefaultButtonPart: + case TextFieldPart: + case TextAreaPart: return true; default: return false; @@ -409,17 +410,17 @@ bool RenderThemeWin::supportsFocusRing(const RenderStyle* style) const // Let webkit draw one of its halo rings around any focused element, // except push buttons. For buttons we use the windows PBS_DEFAULTED // styling to give it a blue border. - return style->appearance() == ButtonAppearance || - style->appearance() == PushButtonAppearance; + return style->appearance() == ButtonPart || + style->appearance() == PushButtonPart; } unsigned RenderThemeWin::determineState(RenderObject* o) { unsigned result = TS_NORMAL; - EAppearance appearance = o->style()->appearance(); + ControlPart appearance = o->style()->appearance(); if (!isEnabled(o)) result = TS_DISABLED; - else if (isReadOnlyControl(o) && (TextFieldAppearance == appearance || TextAreaAppearance == appearance)) + else if (isReadOnlyControl(o) && (TextFieldPart == appearance || TextAreaPart == appearance)) result = ETS_READONLY; // Readonly is supported on textfields. else if (isPressed(o)) // Active overrides hover and focused. result = TS_PRESSED; @@ -450,23 +451,23 @@ ThemeData RenderThemeWin::getThemeData(RenderObject* o) { ThemeData result; switch (o->style()->appearance()) { - case PushButtonAppearance: - case ButtonAppearance: + case PushButtonPart: + case ButtonPart: result.m_part = BP_PUSHBUTTON; result.m_classicState = DFCS_BUTTONPUSH; break; - case CheckboxAppearance: + case CheckboxPart: result.m_part = BP_CHECKBOX; result.m_classicState = DFCS_BUTTONCHECK; break; - case RadioAppearance: + case RadioPart: result.m_part = BP_RADIOBUTTON; result.m_classicState = DFCS_BUTTONRADIO; break; - case ListboxAppearance: - case MenulistAppearance: - case TextFieldAppearance: - case TextAreaAppearance: + case ListboxPart: + case MenulistPart: + case TextFieldPart: + case TextAreaPart: result.m_part = ETS_NORMAL; break; } @@ -710,10 +711,10 @@ int RenderThemeWin::popupInternalPaddingBottom(RenderStyle* style) const // Hacks for using Mac menu list metrics when in layout test mode. static int layoutTestMenuListInternalPadding(RenderStyle* style, int paddingType) { - if (style->appearance() == MenulistAppearance) { + if (style->appearance() == MenulistPart) { return kLayoutTestMenuListInternalPadding[controlSizeForFont(style)][paddingType]; } - if (style->appearance() == MenulistButtonAppearance) { + if (style->appearance() == MenulistButtonPart) { if (paddingType == RightPadding) { const float baseArrowWidth = 5.0f; float fontScale = style->fontSize() / kLayoutTestBaseFontSize; @@ -748,7 +749,7 @@ int RenderThemeWin::menuListInternalPadding(RenderStyle* style, int paddingType) // If the MenuList actually has appearance "NoAppearance", then that means // 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) + if (paddingType == bar_type && style->appearance() != NoPart) padding += ScrollbarTheme::nativeTheme()->scrollbarThickness(); return padding; @@ -798,8 +799,8 @@ void RenderThemeWin::setButtonPadding(RenderStyle* style) const void RenderThemeWin::adjustSliderThumbSize(RenderObject* o) const { if (webkit_glue::IsLayoutTestMode()) { - if (o->style()->appearance() == SliderThumbHorizontalAppearance || - o->style()->appearance() == SliderThumbVerticalAppearance) { + if (o->style()->appearance() == SliderThumbHorizontalPart || + o->style()->appearance() == SliderThumbVerticalPart) { o->style()->setWidth(Length(kLayoutTestSliderThumbWidth, Fixed)); o->style()->setHeight(Length(kLayoutTestSliderThumbHeight, Fixed)); } @@ -902,7 +903,7 @@ void RenderThemeWin::setDefaultFontSize(int fontSize) { DefaultFontSize = static_cast<float>(fontSize); // Reset cached fonts. - SmallSystemFont = MenuFont = LabelFont = FontDescription(); + smallSystemFont = menuFont = labelFont = FontDescription(); } } diff --git a/webkit/port/rendering/RenderThemeWin.h b/webkit/port/rendering/RenderThemeWin.h index bd4db98..a862eab 100644 --- a/webkit/port/rendering/RenderThemeWin.h +++ b/webkit/port/rendering/RenderThemeWin.h @@ -114,7 +114,7 @@ private: unsigned determineState(RenderObject*); unsigned determineClassicState(RenderObject*); - bool supportsFocus(EAppearance); + bool supportsFocus(ControlPart); ThemeData getThemeData(RenderObject*); 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 7879230e2..b3ed2d1 100644 --- a/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt +++ b/webkit/tools/layout_tests/test_lists/win/tests_fixable.txt @@ -166,7 +166,7 @@ V8 # LayoutTests/fast/history/history_reload.html = PASS | FAIL V8 # LayoutTests/fast/repaint/bugzilla-6473.html = PASS | FAIL // Bug 982608: test had a wrong result for one condition -V8 # LayoutTests/plugins/destroy-stream-twice.html = FAIL | TIMEOUT +V8 # LayoutTests/plugins/destroy-stream-twice.html = FAIL | TIMEOUT | CRASH // This test has been modified and placed in pending, so we ignore the original // until we get our modification into WebKit. @@ -600,7 +600,7 @@ V8 # LayoutTests/fast/canvas/gradient-empty-path.html = FAIL // Bug: 1166644 // Fails on webkit windows as well. -V8 # LayoutTests/fast/events/attempt-scroll-with-no-scrollbars.html = FAIL +V8 # LayoutTests/fast/events/attempt-scroll-with-no-scrollbars.html = FAIL | TIMEOUT // Bug 1226853: Fails on v8-latest after const changes (r123300). Test // has been rebaselined (don't declare const x twice). @@ -768,7 +768,7 @@ V8 # LayoutTests/editing/selection/move-left-right.html = FAIL // This test needs to be rebaselined but said rebaselining didn't work and after // over an hour wasted, I'm giving up. -brettw -V8 | KJS # LayoutTests/svg/custom/foreign-object-skew.svg = FAIL +V8 # LayoutTests/svg/custom/foreign-object-skew.svg = FAIL // ---------------------------------------------------------------------------- // NEW FOR THE MERGE @@ -805,7 +805,6 @@ V8 # LayoutTests/fast/transforms/shadows.html = FAIL V8 # LayoutTests/http/tests/misc/acid3.html = FAIL V8 # DEFER : LayoutTests/http/tests/misc/frame-default-enc-same-domain.html = FAIL V8 # LayoutTests/http/tests/security/canvas-remote-read-svg-image.html = FAIL -V8 # LayoutTests/http/tests/security/cross-frame-access-object-prototype.html = FAIL | TIMEOUT V8 # LayoutTests/http/tests/security/xss-DENIED-synchronous-form.html = FAIL | TIMEOUT V8 # LayoutTests/http/tests/security/xss-eval.html = FAIL | TIMEOUT V8 # LayoutTests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html = FAIL @@ -943,9 +942,6 @@ V8 # LayoutTests/fast/css/font-face-multiple-faces.html = FAIL // TODO(eroman): passed for me locally, need to see why failed on buildbot... V8 # LayoutTests/fast/backgrounds/svg-as-background-6.html = PASS | FAIL -// Post-merge Timeouts: Definitely need to be fixed one day -V8 # LayoutTests/http/tests/security/cross-frame-access-call.html = TIMEOUT - // Post-merge Debug only Crashes V8 # LayoutTests/http/tests/misc/onload-remove-iframe-crash-2.html = CRASH | PASS // One of these svg tests sometimes crash in debug mode. It seems to only @@ -975,12 +971,7 @@ V8 # LayoutTests/svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop.html = CRA V8 # LayoutTests/http/tests/navigation/redirect302-goback.html = FAIL | PASS // Got flakey (both debug and release) around r3581 (ananta). -V8 # LayoutTests/http/tests/plugins/geturlnotify-from-npp-destroystream.html = FAIL | PASS - -// Some of the keyframe animation tests are flaky. This one is -// failing now on the buildbot, but it passes when run alone. Some of -// the other keyframe animation tests also occasionally timeout. -V8 # LayoutTests/animations/multiple-keyframes.html = PASS | TIMEOUT +V8 # LayoutTests/http/tests/plugins/geturlnotify-from-npp-destroystream.html = FAIL | PASS | CRASH // Crash in DEBUG only V8 # LayoutTests/svg/W3C-SVG-1.1/interact-dom-01-b.svg = CRASH | PASS @@ -1078,7 +1069,6 @@ V8 # LayoutTests/scrollbars/scrollbar-orientation.html = FAIL V8 # LayoutTests/transforms/2d/compound-transforms-vs-containers.html = FAIL V8 # LayoutTests/transforms/2d/transform-borderbox.html = FAIL V8 # LayoutTests/transforms/2d/transform-origin-borderbox.html = FAIL -V8 # LayoutTests/fast/events/message-port-inactive-document.html = TIMEOUT V8 # LayoutTests/http/tests/security/MessagePort/event-listener-context.html = FAIL // missing expected results V8 # SKIP LayoutTests/fast/forms/search-placeholder-value-changed.html = FAIL @@ -1168,13 +1158,11 @@ V8 # LayoutTests/svg/batik/text/textPCDATA.svg = FAIL V8 # LayoutTests/svg/batik/text/textPosition2.svg = FAIL V8 # LayoutTests/svg/batik/text/xmlSpace.svg = FAIL V8 # LayoutTests/svg/carto.net/button.svg = FAIL -V8 # LayoutTests/svg/custom/class-baseValue.svg = FAIL V8 # LayoutTests/svg/custom/container-opacity-clip-viewBox.svg = FAIL V8 # LayoutTests/svg/custom/getscreenctm-in-mixed-content2.xhtml = FAIL V8 # LayoutTests/svg/custom/svg-fonts-in-html.html = FAIL V8 # LayoutTests/svg/custom/text-linking.svg = FAIL V8 # LayoutTests/svg/custom/text-xy-updates.svg = FAIL -V8 # LayoutTests/svg/custom/use-clipped-transform.svg = FAIL V8 # LayoutTests/svg/custom/use-css-no-effect-on-shadow-tree.svg = FAIL V8 # LayoutTests/svg/custom/use-instanceRoot-as-event-target.xhtml = FAIL V8 # LayoutTests/svg/custom/use-instanceRoot-event-listeners.xhtml = FAIL @@ -1201,7 +1189,6 @@ V8 # LayoutTests/fast/backgrounds/svg-as-background-4.html = FAIL V8 # LayoutTests/fast/borders/svg-as-border-image-2.html = FAIL V8 # LayoutTests/fast/borders/svg-as-border-image.html = FAIL V8 # LayoutTests/fast/css/line-height-overflow.html = FAIL -V8 # LayoutTests/fast/dom/Window/new-window-opener.html = FAIL V8 # LayoutTests/fast/dom/Window/window-open-pending-url.html = FAIL V8 # LayoutTests/fast/events/mouse-click-events.html = FAIL V8 # LayoutTests/fast/flexbox/009.html = FAIL @@ -1238,7 +1225,6 @@ V8 # LayoutTests/http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-ur V8 # chrome/fast/dom/xmlhttprequest-gc.html = FAIL V8 # chrome/fast/dom/xss-DENIED-javascript-variations.html = FAIL V8 # chrome/fast/forms/basic-textareas.html = FAIL -V8 # pending/security/block-test.html = FAIL | TIMEOUT V8 # LayoutTests/editing/execCommand/19089.html = FAIL | PASS V8 # LayoutTests/fast/forms/button-cannot-be-nested.html = FAIL | PASS V8 # LayoutTests/http/tests/navigation/postredirect-frames.html = FAIL | PASS @@ -1266,3 +1252,39 @@ V8 # LayoutTests/fast/css-generated-content/013.html = FAIL | PASS V8 # LayoutTests/fast/css-generated-content/014.html = FAIL | PASS V8 # LayoutTests/fast/css-generated-content/015.html = FAIL | PASS V8 # LayoutTests/fast/css-generated-content/016.html = FAIL | PASS + +// NEW FOR MERGE 37604:38097 +V8 # LayoutTests/animations/keyframes-rule.html = FAIL +V8 # LayoutTests/editing/deleting/smart-editing-disabled.html = FAIL +V8 # LayoutTests/fast/css/border-height.html = FAIL +V8 # LayoutTests/fast/events/destroyed-atomic-string.html = FAIL +V8 # LayoutTests/fast/forms/image-border.html = FAIL +V8 # LayoutTests/fast/forms/input-field-text-truncated.html = FAIL +V8 # LayoutTests/fast/forms/input-type-text-min-width.html = FAIL +V8 # LayoutTests/fast/forms/textarea-scrollbar-height.html = FAIL +V8 # LayoutTests/fast/forms/textarea-width.html = FAIL +V8 # LayoutTests/fast/js/exception-thrown-from-new.html = FAIL +V8 # LayoutTests/fast/js/global-constructors.html = FAIL +V8 # LayoutTests/fast/layers/opacity-transforms.html = FAIL +V8 # LayoutTests/fast/overflow/overflow_hidden.html = FAIL +V8 # LayoutTests/fast/profiler = FAIL | TIMEOUT +V8 # LayoutTests/fast/replaced/percent-height-in-anonymous-block-widget.html = FAIL +V8 # LayoutTests/fast/text/bidi-embedding-pop-and-push-same.html = FAIL +V8 # LayoutTests/fast/text/international/hindi-spacing.html = FAIL +V8 # LayoutTests/plugins/netscape-construct.html = FAIL +V8 # LayoutTests/transforms/transform-value-types.html = FAIL + +// MERGE 37604:38097 REGRESSIONS +V8 # LayoutTests/svg/carto.net/combobox.svg = FAIL +V8 # LayoutTests/fast/events/tabindex-focus-blur-all.html = CRASH +V8 # LayoutTests/fast/events/message-channel-gc-2.html = TIMEOUT +V8 # LayoutTests/http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html = CRASH +V8 # LayoutTests/plugins/open-and-close-window-with-plugin.html = CRASH +V8 # LayoutTests/plugins/plugin-remove-subframe.html = CRASH +V8 # LayoutTests/plugins/return-error-from-new-stream-doesnt-invoke-destroy-stream.html = CRASH +V8 # pending/fast/events/tabindex-focus-blur-all.html = CRASH +V8 # LayoutTests/fast/loader/onunload-form-submit-crash-2.html = FAIL +V8 # LayoutTests/fast/dom/Window/get-set-properties.html = PASS | FAIL +V8 # LayoutTests/fast/dom/Window/new-window-opener.html = PASS | FAIL +V8 # LayoutTests/fast/forms/access-key.html = PASS | FAIL +V8 # LayoutTests/http/tests/loading/gmail-assert-on-load.html = PASS | FAIL diff --git a/webkit/webkit.xcodeproj/project.pbxproj b/webkit/webkit.xcodeproj/project.pbxproj index 18243184..df775d8 100644 --- a/webkit/webkit.xcodeproj/project.pbxproj +++ b/webkit/webkit.xcodeproj/project.pbxproj @@ -62,6 +62,12 @@ 4D1638200EBFA4FC008F024E /* StorageEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D1638080EBFA4FB008F024E /* StorageEvent.cpp */; }; 4D1638210EBFA4FC008F024E /* StorageMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D16380A0EBFA4FB008F024E /* StorageMap.cpp */; }; 4D163E990EC23D9D008F024E /* form_autocomplete_listener.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D163E970EC23D9D008F024E /* form_autocomplete_listener.cc */; }; + 4D1640E50EC29BB4008F024E /* Geolocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D1640D80EC29BB4008F024E /* Geolocation.cpp */; }; + 4D1640E60EC29BB4008F024E /* Geoposition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D1640DA0EC29BB4008F024E /* Geoposition.cpp */; }; + 4D1641090EC29C84008F024E /* Location.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0096150DAFF19C00F72082 /* Location.cpp */; }; + 4D16411F0EC29D01008F024E /* GeolocationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D1641140EC29D01008F024E /* GeolocationService.cpp */; }; + 4D1641310EC29E80008F024E /* ActiveDOMObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D1641280EC29E80008F024E /* ActiveDOMObject.cpp */; }; + 4D1641330EC29E80008F024E /* ScriptExecutionContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D16412F0EC29E80008F024E /* ScriptExecutionContext.cpp */; }; 4D2A63EB0EBBBEDF00B55603 /* MediaPlayerPrivateChromium.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D2A63E90EBBBEDF00B55603 /* MediaPlayerPrivateChromium.cpp */; }; 4D2A64400EBBC0A700B55603 /* V8HTMLVideoElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D2A643A0EBBC0A700B55603 /* V8HTMLVideoElement.cpp */; }; 4D2A64410EBBC0A700B55603 /* V8MediaError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D2A643C0EBBC0A700B55603 /* V8MediaError.cpp */; }; @@ -431,7 +437,6 @@ 7B0096040DAFF0DD00F72082 /* v8_np_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0095E60DAFF0DC00F72082 /* v8_np_utils.cpp */; }; 7B0096060DAFF0DD00F72082 /* v8_npobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0095E80DAFF0DD00F72082 /* v8_npobject.cpp */; }; 7B00960B0DAFF0DD00F72082 /* v8_vectornodelist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0095ED0DAFF0DD00F72082 /* v8_vectornodelist.cpp */; }; - 7B0096220DAFF19C00F72082 /* Location.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0096150DAFF19C00F72082 /* Location.cpp */; }; 7B00962A0DAFF1D000F72082 /* InspectorController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B0096290DAFF1D000F72082 /* InspectorController.cpp */; }; 7B1438070E7874FC00901940 /* webframeloaderclient_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8254053F0D92E3DA0006B936 /* webframeloaderclient_impl.cc */; }; 7B14AAA90DE3340400F4E646 /* CharsetData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B14AAA80DE3340400F4E646 /* CharsetData.cpp */; }; @@ -896,7 +901,6 @@ E456251A0E268E87005E4685 /* Credential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91240D7F3CC2001ECF42 /* Credential.cpp */; }; E456251B0E268E87005E4685 /* FormData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E912C0D7F3CC2001ECF42 /* FormData.cpp */; }; E456251C0E268E87005E4685 /* HTTPParsers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E912F0D7F3CC2001ECF42 /* HTTPParsers.cpp */; }; - E456251E0E268E87005E4685 /* FormDataStreamMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E91350D7F3CC2001ECF42 /* FormDataStreamMac.mm */; }; 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 */; }; @@ -1217,7 +1221,6 @@ E456268B0E268E87005E4685 /* IntSizeCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E8FC00D7F3CC1001ECF42 /* IntSizeCG.cpp */; }; E456268C0E268E87005E4685 /* PathCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E8FC10D7F3CC1001ECF42 /* PathCG.cpp */; }; E456268D0E268E87005E4685 /* PDFDocumentImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E8FC20D7F3CC1001ECF42 /* PDFDocumentImage.cpp */; }; - E456268E0E268E87005E4685 /* WebCoreURLResponse.mm in Sources */ = {isa = PBXBuildFile; fileRef = 820A61940DE7592C00871E2D /* WebCoreURLResponse.mm */; }; E45626F30E268F03005E4685 /* webwidget_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8254055E0D92E3DB0006B936 /* webwidget_impl.cc */; }; E45626F40E268F03005E4685 /* webview_impl.cc in Sources */ = {isa = PBXBuildFile; fileRef = 8254055A0D92E3DB0006B936 /* webview_impl.cc */; }; E45626F50E268F03005E4685 /* glue_util.cc in Sources */ = {isa = PBXBuildFile; fileRef = 825405160D92E3DA0006B936 /* glue_util.cc */; }; @@ -1490,6 +1493,43 @@ 4D163E970EC23D9D008F024E /* form_autocomplete_listener.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = form_autocomplete_listener.cc; sourceTree = "<group>"; }; 4D163E980EC23D9D008F024E /* form_autocomplete_listener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = form_autocomplete_listener.h; sourceTree = "<group>"; }; 4D163E9D0EC23DC6008F024E /* PopupMenuChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuChromium.h; sourceTree = "<group>"; }; + 4D1640D80EC29BB4008F024E /* Geolocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Geolocation.cpp; sourceTree = "<group>"; }; + 4D1640D90EC29BB4008F024E /* Geolocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Geolocation.h; sourceTree = "<group>"; }; + 4D1640DA0EC29BB4008F024E /* Geoposition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Geoposition.cpp; sourceTree = "<group>"; }; + 4D1640DB0EC29BB4008F024E /* Geoposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Geoposition.h; sourceTree = "<group>"; }; + 4D1640DC0EC29BB4008F024E /* Location.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Location.cpp; sourceTree = "<group>"; }; + 4D1640DD0EC29BB4008F024E /* Location.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Location.h; sourceTree = "<group>"; }; + 4D1640DE0EC29BB4008F024E /* PositionCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositionCallback.h; sourceTree = "<group>"; }; + 4D1640DF0EC29BB4008F024E /* PositionError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositionError.h; sourceTree = "<group>"; }; + 4D1640E00EC29BB4008F024E /* PositionErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositionErrorCallback.h; sourceTree = "<group>"; }; + 4D1640E10EC29BB4008F024E /* PositionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PositionOptions.h; sourceTree = "<group>"; }; + 4D1640E20EC29BB4008F024E /* PrintContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PrintContext.cpp; sourceTree = "<group>"; }; + 4D1640E30EC29BB4008F024E /* PrintContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrintContext.h; sourceTree = "<group>"; }; + 4D1640E40EC29BB4008F024E /* ScriptCallContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptCallContext.h; sourceTree = "<group>"; }; + 4D1641140EC29D01008F024E /* GeolocationService.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GeolocationService.cpp; sourceTree = "<group>"; }; + 4D1641150EC29D01008F024E /* GeolocationService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GeolocationService.h; sourceTree = "<group>"; }; + 4D1641160EC29D01008F024E /* HostWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HostWindow.h; sourceTree = "<group>"; }; + 4D1641170EC29D01008F024E /* LengthBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LengthBox.h; sourceTree = "<group>"; }; + 4D1641180EC29D01008F024E /* LengthSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LengthSize.h; sourceTree = "<group>"; }; + 4D1641190EC29D01008F024E /* PlatformKeyboardEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformKeyboardEvent.h; sourceTree = "<group>"; }; + 4D16411A0EC29D01008F024E /* PlatformScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformScreen.h; sourceTree = "<group>"; }; + 4D16411B0EC29D01008F024E /* PopupMenuStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PopupMenuStyle.h; sourceTree = "<group>"; }; + 4D16411C0EC29D01008F024E /* Theme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Theme.h; sourceTree = "<group>"; }; + 4D16411D0EC29D01008F024E /* ThemeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThemeTypes.h; sourceTree = "<group>"; }; + 4D16411E0EC29D01008F024E /* TreeShared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TreeShared.h; sourceTree = "<group>"; }; + 4D1641280EC29E80008F024E /* ActiveDOMObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ActiveDOMObject.cpp; sourceTree = "<group>"; }; + 4D1641290EC29E80008F024E /* ActiveDOMObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ActiveDOMObject.h; sourceTree = "<group>"; }; + 4D16412A0EC29E80008F024E /* ContainerNodeAlgorithms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContainerNodeAlgorithms.h; sourceTree = "<group>"; }; + 4D16412B0EC29E80008F024E /* DedicatedWorker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DedicatedWorker.cpp; sourceTree = "<group>"; }; + 4D16412C0EC29E80008F024E /* DedicatedWorker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DedicatedWorker.h; sourceTree = "<group>"; }; + 4D16412D0EC29E80008F024E /* ElementRareData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementRareData.h; sourceTree = "<group>"; }; + 4D16412E0EC29E80008F024E /* NodeWithIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeWithIndex.h; sourceTree = "<group>"; }; + 4D16412F0EC29E80008F024E /* ScriptExecutionContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptExecutionContext.cpp; sourceTree = "<group>"; }; + 4D1641300EC29E80008F024E /* ScriptExecutionContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptExecutionContext.h; sourceTree = "<group>"; }; + 4D1641680EC29FED008F024E /* AtomicStringHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AtomicStringHash.h; sourceTree = "<group>"; }; + 4D1641690EC29FED008F024E /* ParserUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParserUtilities.h; sourceTree = "<group>"; }; + 4D1641790EC2A055008F024E /* AccessibilityObjectWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityObjectWrapper.h; sourceTree = "<group>"; }; + 4D16417A0EC2A055008F024E /* FrameChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameChromium.h; sourceTree = "<group>"; }; 4D2A63E90EBBBEDF00B55603 /* MediaPlayerPrivateChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaPlayerPrivateChromium.cpp; sourceTree = "<group>"; }; 4D2A63EA0EBBBEDF00B55603 /* MediaPlayerPrivateChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaPlayerPrivateChromium.h; sourceTree = "<group>"; }; 4D2A643A0EBBC0A700B55603 /* V8HTMLVideoElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8HTMLVideoElement.cpp; sourceTree = "<group>"; }; @@ -2957,7 +2997,7 @@ 7B5E8F870D7F3CC1001ECF42 /* ContextMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextMenu.h; sourceTree = "<group>"; }; 7B5E8F880D7F3CC1001ECF42 /* ContextMenuItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextMenuItem.h; sourceTree = "<group>"; }; 7B5E8F890D7F3CC1001ECF42 /* CookieJar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CookieJar.h; sourceTree = "<group>"; }; - 7B5E8F8A0D7F3CC1001ECF42 /* Cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Cursor.h; path = ../../../../webkit/port/platform/Cursor.h; sourceTree = "<group>"; }; + 7B5E8F8A0D7F3CC1001ECF42 /* Cursor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Cursor.h; sourceTree = "<group>"; }; 7B5E8F8F0D7F3CC1001ECF42 /* DeprecatedPtrList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeprecatedPtrList.h; sourceTree = "<group>"; }; 7B5E8F900D7F3CC1001ECF42 /* DeprecatedPtrListImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedPtrListImpl.cpp; sourceTree = "<group>"; }; 7B5E8F910D7F3CC1001ECF42 /* DeprecatedPtrListImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeprecatedPtrListImpl.h; sourceTree = "<group>"; }; @@ -3233,10 +3273,8 @@ 7B5E91F90D7F3CC3001ECF42 /* ThreadCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadCheck.h; sourceTree = "<group>"; }; 7B5E91FC0D7F3CC3001ECF42 /* Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Timer.cpp; sourceTree = "<group>"; }; 7B5E91FD0D7F3CC3001ECF42 /* Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = "<group>"; }; - 7B5E91FE0D7F3CC3001ECF42 /* TreeShared.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TreeShared.h; path = ../../../../webkit/pending/TreeShared.h; sourceTree = "<group>"; }; 7B5E92000D7F3CC3001ECF42 /* Widget.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Widget.cpp; sourceTree = "<group>"; }; 7B5E92010D7F3CC3001ECF42 /* Widget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Widget.h; sourceTree = "<group>"; }; - 7B5E92020D7F3CC3001ECF42 /* WidgetClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WidgetClient.h; sourceTree = "<group>"; }; 7B5E94FD0D7F3E5B001ECF42 /* PluginInfoStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginInfoStore.h; sourceTree = "<group>"; }; 7B5E95160D7F3E94001ECF42 /* AutoTableLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AutoTableLayout.cpp; sourceTree = "<group>"; }; 7B5E95170D7F3E94001ECF42 /* AutoTableLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTableLayout.h; sourceTree = "<group>"; }; @@ -3980,7 +4018,7 @@ 93BF8E640EA6AED30030F05C /* ResourceError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceError.h; path = chromium/ResourceError.h; sourceTree = "<group>"; }; 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>"; }; + 93BF8F510EA6BD870030F05C /* AccessibilityObjectChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilityObjectChromium.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>"; }; @@ -4202,7 +4240,7 @@ E40060DA0EA69E0B0055B38E /* ScriptController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptController.cpp; sourceTree = "<group>"; }; E40063600EA907510055B38E /* ScriptCallContextV8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptCallContextV8.cpp; sourceTree = "<group>"; }; E40063760EA908220055B38E /* ScriptCallContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScriptCallContext.cpp; path = ../third_party/WebKit/WebCore/bindings/js/ScriptCallContext.cpp; sourceTree = SOURCE_ROOT; }; - E4006AB90EC235870055B38E /* AXObjectCacheChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AXObjectCacheChromium.cpp; path = chromium/AXObjectCacheChromium.cpp; sourceTree = "<group>"; }; + E4006AB90EC235870055B38E /* AXObjectCacheChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AXObjectCacheChromium.cpp; sourceTree = "<group>"; }; E40FB28E0EAFF0BC006F380A /* PlatformScreenMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PlatformScreenMac.mm; path = mac/PlatformScreenMac.mm; sourceTree = "<group>"; }; E43CE1390E68621500D8C5B9 /* PausedTimeouts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PausedTimeouts.h; path = WebCore/bindings/js/PausedTimeouts.h; sourceTree = "<group>"; }; E43CE13A0E68621500D8C5B9 /* PausedTimeouts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PausedTimeouts.cpp; path = WebCore/bindings/js/PausedTimeouts.cpp; sourceTree = "<group>"; }; @@ -4240,9 +4278,9 @@ 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; 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>"; }; + E473F6850EAE01F5006C2098 /* EventHandlerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventHandlerChromium.cpp; sourceTree = "<group>"; }; + E473F6870EAE021B006C2098 /* FrameChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FrameChromium.cpp; sourceTree = "<group>"; }; + E473F6890EAE0230006C2098 /* DragControllerChromium.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DragControllerChromium.cpp; sourceTree = "<group>"; }; E48A06D80E3F840F00172919 /* image_resource_fetcher.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = image_resource_fetcher.cc; sourceTree = "<group>"; }; E48A06D90E3F840F00172919 /* image_resource_fetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = image_resource_fetcher.h; sourceTree = "<group>"; }; E48A07220E3F95A000172919 /* NativeImageSkia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NativeImageSkia.cpp; sourceTree = "<group>"; }; @@ -4251,7 +4289,7 @@ E49E50DE0E65E33200AD47F7 /* RenderThemeMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RenderThemeMac.mm; sourceTree = "<group>"; }; E4A238C50E3FA19C002BDE14 /* image_decoder.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = image_decoder.cc; sourceTree = "<group>"; }; E4A238C60E3FA19C002BDE14 /* image_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = image_decoder.h; sourceTree = "<group>"; }; - E4A9708A0E36150500E8EF3B /* ChromeClientChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChromeClientChromium.h; path = chromium/ChromeClientChromium.h; sourceTree = "<group>"; }; + E4A9708A0E36150500E8EF3B /* ChromeClientChromium.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChromeClientChromium.h; sourceTree = "<group>"; }; E4E4C7F80E781B5B009A687C /* webplugin_impl_mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = webplugin_impl_mac.mm; sourceTree = "<group>"; }; E4E4C8530E7832DC009A687C /* PlatformContextSkia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformContextSkia.cpp; sourceTree = "<group>"; }; E4E4CA190E80208A009A687C /* FontCacheMacPending.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FontCacheMacPending.cpp; sourceTree = "<group>"; }; @@ -4852,6 +4890,8 @@ 7B5E89BB0D7F3A7C001ECF42 /* dom */ = { isa = PBXGroup; children = ( + 4D1641280EC29E80008F024E /* ActiveDOMObject.cpp */, + 4D1641290EC29E80008F024E /* ActiveDOMObject.h */, 7B5E89BC0D7F3A7C001ECF42 /* Attr.cpp */, 7B5E89BD0D7F3A7C001ECF42 /* Attr.h */, 7B5E89BF0D7F3A7C001ECF42 /* Attribute.cpp */, @@ -4879,8 +4919,11 @@ 7B5E89D70D7F3A7C001ECF42 /* Comment.h */, 7B5E89D90D7F3A7C001ECF42 /* ContainerNode.cpp */, 7B5E89DA0D7F3A7C001ECF42 /* ContainerNode.h */, + 4D16412A0EC29E80008F024E /* ContainerNodeAlgorithms.h */, 7B5E89DB0D7F3A7C001ECF42 /* CSSMappedAttributeDeclaration.cpp */, 7B5E89DC0D7F3A7C001ECF42 /* CSSMappedAttributeDeclaration.h */, + 4D16412B0EC29E80008F024E /* DedicatedWorker.cpp */, + 4D16412C0EC29E80008F024E /* DedicatedWorker.h */, 7B5E89DD0D7F3A7C001ECF42 /* DocPtr.h */, 7B5E89DE0D7F3A7C001ECF42 /* Document.cpp */, 7B5E89DF0D7F3A7C001ECF42 /* Document.h */, @@ -4898,6 +4941,7 @@ 7B5E89F00D7F3A7C001ECF42 /* EditingText.h */, 7B5E89F10D7F3A7C001ECF42 /* Element.cpp */, 7B5E89F20D7F3A7C001ECF42 /* Element.h */, + 4D16412D0EC29E80008F024E /* ElementRareData.h */, 7B5E89F40D7F3A7C001ECF42 /* Entity.cpp */, 7B5E89F50D7F3A7C001ECF42 /* Entity.h */, 7B5E89F70D7F3A7C001ECF42 /* EntityReference.cpp */, @@ -4951,6 +4995,7 @@ 7B5E8A330D7F3A7C001ECF42 /* NodeList.h */, ABBD246A0EB7B1DA00BEC658 /* NodeRareData.h */, ABBD246B0EB7B1DA00BEC658 /* NodeRenderStyle.h */, + 4D16412E0EC29E80008F024E /* NodeWithIndex.h */, 7B5E8A350D7F3A7C001ECF42 /* Notation.cpp */, 7B5E8A360D7F3A7C001ECF42 /* Notation.h */, 7B5E8A380D7F3A7C001ECF42 /* OverflowEvent.cpp */, @@ -4973,6 +5018,8 @@ 7B5E8A4D0D7F3A7C001ECF42 /* RegisteredEventListener.h */, 4DB7F0FD0E9BAB5600C66CE0 /* ScriptElement.cpp */, 4DB7F0FE0E9BAB5600C66CE0 /* ScriptElement.h */, + 4D16412F0EC29E80008F024E /* ScriptExecutionContext.cpp */, + 4D1641300EC29E80008F024E /* ScriptExecutionContext.h */, 7B5E8A4E0D7F3A7C001ECF42 /* SelectorNodeList.cpp */, 7B5E8A4F0D7F3A7C001ECF42 /* SelectorNodeList.h */, 7B5E8A500D7F3A7C001ECF42 /* StaticNodeList.cpp */, @@ -5506,11 +5553,17 @@ 7B5E8E5A0D7F3C48001ECF42 /* FrameTree.h */, 7B5E8E5B0D7F3C48001ECF42 /* FrameView.cpp */, 7B5E8E5C0D7F3C48001ECF42 /* FrameView.h */, + 4D1640D80EC29BB4008F024E /* Geolocation.cpp */, + 4D1640D90EC29BB4008F024E /* Geolocation.h */, + 4D1640DA0EC29BB4008F024E /* Geoposition.cpp */, + 4D1640DB0EC29BB4008F024E /* Geoposition.h */, 7B5E8E610D7F3C48001ECF42 /* History.cpp */, 7B5E8E620D7F3C48001ECF42 /* History.h */, 7B5E8EF80D7F3C48001ECF42 /* InspectorClient.h */, 7B5E8EF90D7F3C48001ECF42 /* InspectorController.cpp */, 7B5E8EFA0D7F3C48001ECF42 /* InspectorController.h */, + 4D1640DC0EC29BB4008F024E /* Location.cpp */, + 4D1640DD0EC29BB4008F024E /* Location.h */, 7B5E8F090D7F3C49001ECF42 /* MouseEventWithHitTestResults.cpp */, 7B5E8F0A0D7F3C49001ECF42 /* MouseEventWithHitTestResults.h */, ABA23E6B0E9FC43700C96905 /* Navigator.cpp */, @@ -5519,8 +5572,15 @@ 7B5E8F0C0D7F3C49001ECF42 /* Page.h */, 4DB7F1FB0E9BAE2900C66CE0 /* PageGroup.cpp */, 4DB7F1FC0E9BAE2900C66CE0 /* PageGroup.h */, + 4D1640DE0EC29BB4008F024E /* PositionCallback.h */, + 4D1640DF0EC29BB4008F024E /* PositionError.h */, + 4D1640E00EC29BB4008F024E /* PositionErrorCallback.h */, + 4D1640E10EC29BB4008F024E /* PositionOptions.h */, + 4D1640E20EC29BB4008F024E /* PrintContext.cpp */, + 4D1640E30EC29BB4008F024E /* PrintContext.h */, 7B5E8F130D7F3C49001ECF42 /* Screen.cpp */, 7B5E8F140D7F3C49001ECF42 /* Screen.h */, + 4D1640E40EC29BB4008F024E /* ScriptCallContext.h */, 7B5E918C0D7F3CC2001ECF42 /* SecurityOrigin.cpp */, 7B5E918D0D7F3CC2001ECF42 /* SecurityOrigin.h */, 7B5E918E0D7F3CC2001ECF42 /* SecurityOriginHash.h */, @@ -5580,9 +5640,16 @@ 7B5E8F9F0D7F3CC1001ECF42 /* FileChooser.h */, 7B5E8FA00D7F3CC1001ECF42 /* FileSystem.h */, 7B5E8FA10D7F3CC1001ECF42 /* FloatConversion.h */, + 4D1641140EC29D01008F024E /* GeolocationService.cpp */, + 4D1641150EC29D01008F024E /* GeolocationService.h */, + 4D1641160EC29D01008F024E /* HostWindow.h */, 7B5E90CC0D7F3CC2001ECF42 /* KURL.cpp */, 7B5E90CD0D7F3CC2001ECF42 /* KURL.h */, 7B5E90CF0D7F3CC2001ECF42 /* Language.h */, + ABBD24950EB7BFC500BEC658 /* Length.cpp */, + 7B5E95300D7F3E94001ECF42 /* Length.h */, + 4D1641170EC29D01008F024E /* LengthBox.h */, + 4D1641180EC29D01008F024E /* LengthSize.h */, 7B5E90D00D7F3CC2001ECF42 /* LocalizedStrings.h */, 7B5E90D20D7F3CC2001ECF42 /* Logging.cpp */, 7B5E90D30D7F3CC2001ECF42 /* Logging.h */, @@ -5590,11 +5657,14 @@ 7B5E91130D7F3CC2001ECF42 /* MIMETypeRegistry.h */, 7B5E91530D7F3CC2001ECF42 /* NotImplemented.h */, 7B5E91540D7F3CC2001ECF42 /* Pasteboard.h */, + 4D1641190EC29D01008F024E /* PlatformKeyboardEvent.h */, 7B5E91560D7F3CC2001ECF42 /* PlatformMenuDescription.h */, 7B5E91570D7F3CC2001ECF42 /* PlatformMouseEvent.h */, + 4D16411A0EC29D01008F024E /* PlatformScreen.h */, 7B5E91590D7F3CC2001ECF42 /* PlatformWheelEvent.h */, 7B5E915A0D7F3CC2001ECF42 /* PopupMenu.h */, 7B5E915B0D7F3CC2001ECF42 /* PopupMenuClient.h */, + 4D16411B0EC29D01008F024E /* PopupMenuStyle.h */, 7B5E91870D7F3CC2001ECF42 /* Scrollbar.cpp */, 7B5E91880D7F3CC2001ECF42 /* Scrollbar.h */, ABBD24C10EB7C17E00BEC658 /* ScrollbarClient.h */, @@ -5611,13 +5681,14 @@ 7B5E919F0D7F3CC2001ECF42 /* SSLKeyGenerator.h */, 7B5E91A00D7F3CC2001ECF42 /* StaticConstructors.h */, 7B5E91A80D7F3CC2001ECF42 /* SystemTime.h */, + 4D16411C0EC29D01008F024E /* Theme.h */, + 4D16411D0EC29D01008F024E /* ThemeTypes.h */, 7B5E91F90D7F3CC3001ECF42 /* ThreadCheck.h */, 7B5E91FC0D7F3CC3001ECF42 /* Timer.cpp */, 7B5E91FD0D7F3CC3001ECF42 /* Timer.h */, - 7B5E91FE0D7F3CC3001ECF42 /* TreeShared.h */, + 4D16411E0EC29D01008F024E /* TreeShared.h */, 7B5E92000D7F3CC3001ECF42 /* Widget.cpp */, 7B5E92010D7F3CC3001ECF42 /* Widget.h */, - 7B5E92020D7F3CC3001ECF42 /* WidgetClient.h */, ); path = platform; sourceTree = "<group>"; @@ -5893,6 +5964,7 @@ 7B5E91BA0D7F3CC2001ECF42 /* mac */, 7B5E91AA0D7F3CC2001ECF42 /* AtomicString.cpp */, 7B5E91AB0D7F3CC2001ECF42 /* AtomicString.h */, + 4D1641680EC29FED008F024E /* AtomicStringHash.h */, 7B5E91AC0D7F3CC2001ECF42 /* AtomicStringImpl.h */, 7B5E91AD0D7F3CC2001ECF42 /* Base64.cpp */, 7B5E91AE0D7F3CC2001ECF42 /* Base64.h */, @@ -5902,15 +5974,16 @@ 7B5E91B50D7F3CC2001ECF42 /* CharacterNames.h */, 7B5E91B60D7F3CC2001ECF42 /* CString.cpp */, 7B5E91B70D7F3CC2001ECF42 /* CString.h */, + 4D1641690EC29FED008F024E /* ParserUtilities.h */, 7B5E91C70D7F3CC2001ECF42 /* PlatformString.h */, 7B5E91CE0D7F3CC3001ECF42 /* RegularExpression.cpp */, 7B5E91CF0D7F3CC3001ECF42 /* RegularExpression.h */, 7B5E91D00D7F3CC3001ECF42 /* SegmentedString.cpp */, 7B5E91D10D7F3CC3001ECF42 /* SegmentedString.h */, 7B5E91D20D7F3CC3001ECF42 /* String.cpp */, - B58831280E9BD6D800CEC344 /* StringBuilder.h */, - B58831290E9BD6D800CEC344 /* StringBuilder.cpp */, 7B5E91D30D7F3CC3001ECF42 /* StringBuffer.h */, + B58831290E9BD6D800CEC344 /* StringBuilder.cpp */, + B58831280E9BD6D800CEC344 /* StringBuilder.h */, B5C180740E95816D006EAF87 /* StringHash.h */, 7B5E91D50D7F3CC3001ECF42 /* StringImpl.cpp */, 7B5E91D60D7F3CC3001ECF42 /* StringImpl.h */, @@ -5989,7 +6062,6 @@ isa = PBXGroup; children = ( B5C180A00E958E85006EAF87 /* style */, - ABBD24950EB7BFC500BEC658 /* Length.cpp */, ABBD24960EB7BFC500BEC658 /* RenderScrollbar.cpp */, ABBD24970EB7BFC500BEC658 /* RenderScrollbar.h */, ABBD24980EB7BFC500BEC658 /* RenderScrollbarPart.cpp */, @@ -6023,7 +6095,6 @@ 7B5E952D0D7F3E94001ECF42 /* InlineTextBox.h */, 7B5E952E0D7F3E94001ECF42 /* LayoutState.cpp */, 7B5E952F0D7F3E94001ECF42 /* LayoutState.h */, - 7B5E95300D7F3E94001ECF42 /* Length.h */, 7B5E95310D7F3E94001ECF42 /* ListMarkerBox.cpp */, 7B5E95320D7F3E94001ECF42 /* ListMarkerBox.h */, 7B5E95330D7F3E94001ECF42 /* MediaControlElements.cpp */, @@ -7619,13 +7690,15 @@ isa = PBXGroup; children = ( 93BF8F510EA6BD870030F05C /* AccessibilityObjectChromium.cpp */, + 4D1641790EC2A055008F024E /* AccessibilityObjectWrapper.h */, E4006AB90EC235870055B38E /* AXObjectCacheChromium.cpp */, E4A9708A0E36150500E8EF3B /* ChromeClientChromium.h */, E473F6890EAE0230006C2098 /* DragControllerChromium.cpp */, E473F6850EAE01F5006C2098 /* EventHandlerChromium.cpp */, E473F6870EAE021B006C2098 /* FrameChromium.cpp */, + 4D16417A0EC2A055008F024E /* FrameChromium.h */, ); - name = chromium; + path = chromium; sourceTree = "<group>"; }; 93BF8E5E0EA6AEAB0030F05C /* chromium */ = { @@ -8134,7 +8207,6 @@ 7B0091370DAFEFBE00F72082 /* HTMLNames.cpp in Sources */, 7B00962A0DAFF1D000F72082 /* InspectorController.cpp in Sources */, 7B0095F10DAFF0DD00F72082 /* JSXPathNSResolver.cpp in Sources */, - 7B0096220DAFF19C00F72082 /* Location.cpp in Sources */, 7B0095F30DAFF0DD00F72082 /* np_v8object.cpp in Sources */, 7B0095F50DAFF0DD00F72082 /* npruntime.cpp in Sources */, 7B0091390DAFEFBE00F72082 /* SVGElementFactory.cpp in Sources */, @@ -8446,6 +8518,7 @@ 4DB7F2030E9BAE2900C66CE0 /* AccessibilityTableColumn.cpp in Sources */, 4DB7F2040E9BAE2900C66CE0 /* AccessibilityTableHeaderContainer.cpp in Sources */, 4DB7F2050E9BAE2900C66CE0 /* AccessibilityTableRow.cpp in Sources */, + 4D1641310EC29E80008F024E /* ActiveDOMObject.cpp in Sources */, E45624C00E268E87005E4685 /* AffineTransform.cpp in Sources */, E45626810E268E87005E4685 /* AffineTransformCG.cpp in Sources */, ABBD23C30EB7AC1300BEC658 /* Animation.cpp in Sources */, @@ -8631,7 +8704,6 @@ E45623F80E268E87005E4685 /* FormatBlockCommand.cpp in Sources */, E456251B0E268E87005E4685 /* FormData.cpp in Sources */, E45624250E268E87005E4685 /* FormDataList.cpp in Sources */, - E456251E0E268E87005E4685 /* FormDataStreamMac.mm in Sources */, E45624860E268E87005E4685 /* FormState.cpp in Sources */, E45624A40E268E87005E4685 /* Frame.cpp in Sources */, E45624870E268E87005E4685 /* FrameLoader.cpp in Sources */, @@ -8640,6 +8712,9 @@ E45624880E268E87005E4685 /* FTPDirectoryDocument.cpp in Sources */, E45624890E268E87005E4685 /* FTPDirectoryParser.cpp in Sources */, 4DB7F0090E9BA3A100C66CE0 /* GeneratedImage.cpp in Sources */, + 4D1640E50EC29BB4008F024E /* Geolocation.cpp in Sources */, + 4D16411F0EC29D01008F024E /* GeolocationService.cpp in Sources */, + 4D1640E60EC29BB4008F024E /* Geoposition.cpp in Sources */, E45624CC0E268E87005E4685 /* GlyphPageTreeNode.cpp in Sources */, E45624DA0E268E87005E4685 /* GlyphPageTreeNodeMac.cpp in Sources */, E45624CD0E268E87005E4685 /* GlyphWidthMap.cpp in Sources */, @@ -8925,6 +9000,7 @@ ABBD23EB0EB7ACA600BEC658 /* ScaleTransformOperation.cpp in Sources */, E45624B00E268E87005E4685 /* Screen.cpp in Sources */, 4DB7F1030E9BAB5600C66CE0 /* ScriptElement.cpp in Sources */, + 4D1641330EC29E80008F024E /* ScriptExecutionContext.cpp in Sources */, E456252A0E268E87005E4685 /* Scrollbar.cpp in Sources */, ABBD24C60EB7C17E00BEC658 /* ScrollbarThemeComposite.cpp in Sources */, ABBD24E80EB7C35500BEC658 /* ScrollbarThemeMac.mm in Sources */, @@ -9209,7 +9285,6 @@ B50F5BE00E96D3F800AD71A6 /* WebCoreObjCExtras.mm in Sources */, E45625120E268E87005E4685 /* WebCoreSystemInterface.mm in Sources */, E45625130E268E87005E4685 /* WebCoreTextRenderer.mm in Sources */, - E456268E0E268E87005E4685 /* WebCoreURLResponse.mm in Sources */, E45625140E268E87005E4685 /* WebCoreView.m in Sources */, E45624AC0E268E87005E4685 /* WebCoreViewFactory.m in Sources */, E45624AD0E268E87005E4685 /* WebDashboardRegion.m in Sources */, @@ -9355,6 +9430,7 @@ E4E4C94A0E797648009A687C /* ImageSourceCG.cpp in Sources */, 7B2B0A630E3143EC00D4C6B7 /* JPEGImageDecoder.cpp in Sources */, E473F64B0EADFFF8006C2098 /* Language.cpp in Sources */, + 4D1641090EC29C84008F024E /* Location.cpp in Sources */, 4D2A63EB0EBBBEDF00B55603 /* MediaPlayerPrivateChromium.cpp in Sources */, E473F64E0EAE0005006C2098 /* MimeTypeRegistryChromium.cpp in Sources */, E48A07280E3F95A000172919 /* NativeImageSkia.cpp in Sources */, |