Changeset 45574 in webkit
- Timestamp:
- Jul 6, 2009 4:18:36 PM (15 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 1 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r45572 r45574 1 2009-07-06 Nate Chapin <japhet@chromium.org> 2 3 Unreviewed, build fix. 4 5 Roll out r45559 to fix Chromium canary. 6 7 https://bugs.webkit.org/show_bug.cgi?id=26857 8 9 * bindings/scripts/CodeGeneratorV8.pm: 10 * bindings/v8/V8Binding.cpp: Removed. 11 * bindings/v8/V8Binding.h: 12 (WebCore::toInt32): 13 (WebCore::toWebCoreString): 14 (WebCore::fromWebCoreString): 15 (WebCore::toWebCoreStringWithNullCheck): 16 (WebCore::isUndefinedOrNull): 17 (WebCore::v8Boolean): 18 * bindings/v8/V8LazyEventListener.cpp: 19 (WebCore::V8LazyEventListener::getListenerFunction): 20 * bindings/v8/V8Proxy.cpp: 21 (WebCore::handleConsoleMessage): 22 (WebCore::V8Proxy::compileScript): 23 (WebCore::V8Proxy::sourceName): 24 * bindings/v8/WorkerContextExecutionProxy.cpp: 25 (WebCore::handleConsoleMessage): 26 * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: 27 (WebCore::NAMED_PROPERTY_SETTER): 28 * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: 29 (WebCore::CALLBACK_FUNC_DECL): 30 * bindings/v8/custom/V8CustomXPathNSResolver.cpp: 31 (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): 32 * bindings/v8/custom/V8DOMWindowCustom.cpp: 33 (WebCore::CALLBACK_FUNC_DECL): 34 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: 35 (WebCore::CALLBACK_FUNC_DECL): 36 * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: 37 (WebCore::ACCESSOR_SETTER): 38 * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: 39 (WebCore::CALLBACK_FUNC_DECL): 40 * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: 41 (WebCore::removeElement): 42 * bindings/v8/custom/V8SQLTransactionCustom.cpp: 43 (WebCore::CALLBACK_FUNC_DECL): 44 * bindings/v8/custom/V8WorkerContextCustom.cpp: 45 (WebCore::SetTimeoutOrInterval): 46 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: 47 (WebCore::CALLBACK_FUNC_DECL): 48 1 49 2009-07-06 Eric Carlson <eric.carlson@apple.com> 2 50 -
trunk/WebCore/bindings/scripts/CodeGeneratorV8.pm
r45559 r45574 563 563 } 564 564 if ($nativeType eq "String") { 565 $getterString = " toString($getterString)";565 $getterString = "ToString($getterString)"; 566 566 } 567 567 … … 1054 1054 "#include \"config.h\"\n" . 1055 1055 "#include \"V8Proxy.h\"\n" . 1056 "#include \" V8Binding.h\"\n\n" .1056 "#include \"v8_binding.h\"\n\n" . 1057 1057 "#undef LOG\n\n"); 1058 1058 … … 1800 1800 return "$value->NumberValue()" if $type eq "SVGNumber"; 1801 1801 1802 return " toInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short" or $type eq "long";1802 return "ToInt32($value${maybeOkParam})" if $type eq "unsigned long" or $type eq "unsigned short" or $type eq "long"; 1803 1803 return "static_cast<Range::CompareHow>($value->Int32Value())" if $type eq "CompareHow"; 1804 1804 return "static_cast<SVGPaint::SVGPaintType>($value->ToInt32()->Int32Value())" if $type eq "SVGPaintType"; 1805 1805 1806 return " toWebCoreString($value)" if $type eq "AtomicString" or $type eq "DOMUserData";1806 return "ToWebCoreString($value)" if $type eq "AtomicString" or $type eq "DOMUserData"; 1807 1807 if ($type eq "DOMString") { 1808 return " toWebCoreStringWithNullCheck($value)" if $signature->extendedAttributes->{"ConvertNullToNullString"};1809 return " toWebCoreStringWithNullOrUndefinedCheck($value)" if $signature->extendedAttributes->{"ConvertUndefinedOrNullToNullString"};1810 return " toWebCoreString($value)";1808 return "valueToStringWithNullCheck($value)" if $signature->extendedAttributes->{"ConvertNullToNullString"}; 1809 return "valueToStringWithNullOrUndefinedCheck($value)" if $signature->extendedAttributes->{"ConvertUndefinedOrNullToNullString"}; 1810 return "ToWebCoreString($value)"; 1811 1811 } 1812 1812 -
trunk/WebCore/bindings/v8/V8Binding.h
r45559 r45574 32 32 #define V8Binding_h 33 33 34 #include "MathExtras.h" 35 #include "PlatformString.h" 36 37 #include <v8.h> 34 // FIXME: This is a temporary forwarding header until all bindings have migrated 35 // over and v8_binding actually becomes V8Binding. 36 #include "v8_binding.h" 38 37 39 38 namespace WebCore { 40 39 41 // Convert v8 types to a WebCore::String. If the V8 string is not already 42 // an external string then it is transformed into an external string at this 43 // point to avoid repeated conversions. 44 String v8StringToWebCoreString(v8::Handle<v8::String>, bool externalize); 45 String v8ValueToWebCoreString(v8::Handle<v8::Value>); 46 47 // Convert v8 types to a WebCore::AtomicString. 48 AtomicString v8StringToAtomicWebCoreString(v8::Handle<v8::String>); 49 AtomicString v8ValueToAtomicWebCoreString(v8::Handle<v8::Value>); 50 51 // Convert a string to a V8 string. 52 v8::Handle<v8::String> v8String(const String&); 53 54 inline String toString(const String& string) 55 { 56 return string; 57 } 58 59 // Return a V8 external string that shares the underlying buffer with the given 60 // WebCore string. The reference counting mechanism is used to keep the 61 // underlying buffer alive while the string is still live in the V8 engine. 62 v8::Local<v8::String> v8ExternalString(const String&); 63 64 // Convert a value to a 32-bit integer. The conversion fails if the 65 // value cannot be converted to an integer or converts to nan or to an infinity. 66 inline int toInt32(v8::Handle<v8::Value> value, bool& ok) 67 { 68 ok = true; 69 70 // Fast case. The value is already a 32-bit integer. 71 if (value->IsInt32()) 72 return value->Int32Value(); 73 74 // Can the value be converted to a number? 75 v8::Local<v8::Number> numberObject = value->ToNumber(); 76 if (numberObject.IsEmpty()) { 77 ok = false; 78 return 0; 79 } 80 81 // Does the value convert to nan or to an infinity? 82 double numberValue = numberObject->Value(); 83 if (isnan(numberValue) || isinf(numberValue)) { 84 ok = false; 85 return 0; 86 } 87 88 // Can the value be converted to a 32-bit integer? 89 v8::Local<v8::Int32> intValue = value->ToInt32(); 90 if (intValue.IsEmpty()) { 91 ok = false; 92 return 0; 93 } 94 95 // Return the result of the int32 conversion. 96 return intValue->Value(); 97 } 98 99 // Convert a value to a 32-bit integer assuming the conversion cannot fail. 40 // FIXME: Remove once migration is complete. 100 41 inline int toInt32(v8::Handle<v8::Value> value) 101 42 { 102 bool ok; 103 return toInt32(value, ok); 43 return ToInt32(value); 104 44 } 105 45 … … 109 49 } 110 50 111 // FIXME: Drop this in favor of the type specific v8ValueToWebCoreString when we rework the code generation.112 inline String toWebCoreString(v8::Handle<v8::Value> obj ect)51 // FIXME: Remove once migration is complete. 52 inline String toWebCoreString(v8::Handle<v8::Value> obj) 113 53 { 114 return v8ValueToWebCoreString(object);54 return ToWebCoreString(obj); 115 55 } 116 56 117 // The string returned by this function is still owned by the argument 118 // and will be deallocated when the argument is deallocated. 57 // FIXME: Remove once migration is complete. 119 58 inline const uint16_t* fromWebCoreString(const String& str) 120 59 { 121 return reinterpret_cast<const uint16_t*>(str.characters()); 60 return FromWebCoreString(str); 61 } 62 63 // FIXME: Rename valueToStringWithNullCheck once migration is complete. 64 inline String toWebCoreStringWithNullCheck(v8::Handle<v8::Value> value) 65 { 66 return valueToStringWithNullCheck(value); 122 67 } 123 68 … … 131 76 return value ? v8::True() : v8::False(); 132 77 } 133 134 inline String toWebCoreStringWithNullCheck(v8::Handle<v8::Value> value)135 {136 if (value->IsNull())137 return String();138 return v8ValueToWebCoreString(value);139 }140 78 141 inline String toWebCoreStringWithNullOrUndefinedCheck(v8::Handle<v8::Value> value) 142 { 143 if (value->IsNull() || value->IsUndefined()) 144 return String(); 145 return toWebCoreString(value); 146 } 147 148 inline v8::Handle<v8::String> v8UndetectableString(const String& str) 149 { 150 return v8::String::NewUndetectable(fromWebCoreString(str), str.length()); 151 } 152 153 inline v8::Handle<v8::Value> v8StringOrNull(const String& str) 154 { 155 return str.isNull() ? v8::Handle<v8::Value>(v8::Null()) : v8::Handle<v8::Value>(v8String(str)); 156 } 157 158 inline v8::Handle<v8::Value> v8StringOrUndefined(const String& str) 159 { 160 return str.isNull() ? v8::Handle<v8::Value>(v8::Undefined()) : v8::Handle<v8::Value>(v8String(str)); 161 } 162 163 inline v8::Handle<v8::Value> v8StringOrFalse(const String& str) 164 { 165 return str.isNull() ? v8::Handle<v8::Value>(v8::False()) : v8::Handle<v8::Value>(v8String(str)); 166 } 167 } // namespace WebCore 79 } 168 80 169 81 #endif // V8Binding_h -
trunk/WebCore/bindings/v8/V8LazyEventListener.cpp
r45559 r45574 111 111 ASSERT(value->IsFunction()); 112 112 v8::Local<v8::Function> listenerFunction = v8::Local<v8::Function>::Cast(value); 113 listenerFunction->SetName(v8::String::New( fromWebCoreString(m_functionName), m_functionName.length()));113 listenerFunction->SetName(v8::String::New(FromWebCoreString(m_functionName), m_functionName.length())); 114 114 115 115 m_listener = v8::Persistent<v8::Function>::New(listenerFunction); -
trunk/WebCore/bindings/v8/V8Proxy.cpp
r45559 r45574 708 708 v8::Handle<v8::String> errorMessageString = message->Get(); 709 709 ASSERT(!errorMessageString.IsEmpty()); 710 String errorMessage = toWebCoreString(errorMessageString);710 String errorMessage = ToWebCoreString(errorMessageString); 711 711 712 712 v8::Handle<v8::Value> resourceName = message->GetScriptResourceName(); 713 713 bool useURL = resourceName.IsEmpty() || !resourceName->IsString(); 714 String resourceNameString = useURL ? frame->document()->url() : toWebCoreString(resourceName);714 String resourceNameString = useURL ? frame->document()->url() : ToWebCoreString(resourceName); 715 715 JavaScriptConsoleMessage consoleMessage(errorMessage, resourceNameString, message->GetLineNumber()); 716 716 ConsoleMessageManager::addMessage(page, consoleMessage); … … 966 966 v8::Handle<v8::Script> V8Proxy::compileScript(v8::Handle<v8::String> code, const String& fileName, int baseLine) 967 967 { 968 const uint16_t* fileNameString = fromWebCoreString(fileName);968 const uint16_t* fileNameString = FromWebCoreString(fileName); 969 969 v8::Handle<v8::String> name = v8::String::New(fileNameString, fileName.length()); 970 970 v8::Handle<v8::Integer> line = v8::Integer::New(baseLine); … … 3218 3218 if (frameSourceName.IsEmpty()) 3219 3219 return String(); 3220 return toWebCoreString(v8::Debug::Call(frameSourceName));3220 return ToWebCoreString(v8::Debug::Call(frameSourceName)); 3221 3221 } 3222 3222 -
trunk/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
r45559 r45574 72 72 v8::Handle<v8::String> errorMessageString = message->Get(); 73 73 ASSERT(!errorMessageString.IsEmpty()); 74 String errorMessage = toWebCoreString(errorMessageString);74 String errorMessage = ToWebCoreString(errorMessageString); 75 75 76 76 v8::Handle<v8::Value> resourceName = message->GetScriptResourceName(); 77 77 bool useURL = (resourceName.IsEmpty() || !resourceName->IsString()); 78 String resourceNameString = useURL ? workerContext->url() : toWebCoreString(resourceName);78 String resourceNameString = useURL ? workerContext->url() : ToWebCoreString(resourceName); 79 79 80 80 workerContext->addMessage(ConsoleDestination, JSMessageSource, ErrorMessageLevel, errorMessage, message->GetLineNumber(), resourceNameString); -
trunk/WebCore/bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp
r45559 r45574 202 202 return notHandledByInterceptor(); 203 203 204 String propertyValue = toWebCoreStringWithNullCheck(value);204 String propertyValue = valueToStringWithNullCheck(value); 205 205 if (propInfo->hadPixelOrPosPrefix) 206 206 propertyValue.append("px"); -
trunk/WebCore/bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp
r45559 r45574 106 106 case 1: 107 107 if (args[0]->IsString()) 108 context->setStrokeColor( toWebCoreString(args[0]));108 context->setStrokeColor(ToWebCoreString(args[0])); 109 109 else 110 110 context->setStrokeColor(toFloat(args[0])); … … 112 112 case 2: 113 113 if (args[0]->IsString()) 114 context->setStrokeColor( toWebCoreString(args[0]), toFloat(args[1]));114 context->setStrokeColor(ToWebCoreString(args[0]), toFloat(args[1])); 115 115 else 116 116 context->setStrokeColor(toFloat(args[0]), toFloat(args[1])); … … 136 136 case 1: 137 137 if (args[0]->IsString()) 138 context->setFillColor( toWebCoreString(args[0]));138 context->setFillColor(ToWebCoreString(args[0])); 139 139 else 140 140 context->setFillColor(toFloat(args[0])); … … 142 142 case 2: 143 143 if (args[0]->IsString()) 144 context->setFillColor( toWebCoreString(args[0]), toFloat(args[1]));144 context->setFillColor(ToWebCoreString(args[0]), toFloat(args[1])); 145 145 else 146 146 context->setFillColor(toFloat(args[0]), toFloat(args[1])); … … 185 185 case 4: 186 186 if (args[3]->IsString()) 187 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toWebCoreString(args[3]));187 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), ToWebCoreString(args[3])); 188 188 else 189 189 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3])); … … 191 191 case 5: 192 192 if (args[3]->IsString()) 193 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toWebCoreString(args[3]), toFloat(args[4]));193 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), ToWebCoreString(args[3]), toFloat(args[4])); 194 194 else 195 195 context->setShadow(toFloat(args[0]), toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4])); … … 292 292 if (V8HTMLImageElement::HasInstance(arg)) { 293 293 HTMLImageElement* image_element = V8Proxy::convertDOMWrapperToNode<HTMLImageElement>(arg); 294 context->drawImageFromRect(image_element, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8]), toWebCoreString(args[9]));294 context->drawImageFromRect(image_element, toFloat(args[1]), toFloat(args[2]), toFloat(args[3]), toFloat(args[4]), toFloat(args[5]), toFloat(args[6]), toFloat(args[7]), toFloat(args[8]), ToWebCoreString(args[9])); 295 295 } else 296 296 V8Proxy::throwError(V8Proxy::TypeError, "drawImageFromRect: Invalid type of arguments"); … … 309 309 HTMLImageElement* image_element = V8Proxy::convertDOMWrapperToNode<HTMLImageElement>(arg); 310 310 ExceptionCode ec = 0; 311 RefPtr<CanvasPattern> pattern = context->createPattern(image_element, toWebCoreStringWithNullCheck(args[1]), ec);311 RefPtr<CanvasPattern> pattern = context->createPattern(image_element, valueToStringWithNullCheck(args[1]), ec); 312 312 if (ec != 0) { 313 313 V8Proxy::setDOMException(ec); … … 320 320 HTMLCanvasElement* canvas_element = V8Proxy::convertDOMWrapperToNode<HTMLCanvasElement>(arg); 321 321 ExceptionCode ec = 0; 322 RefPtr<CanvasPattern> pattern = context->createPattern(canvas_element, toWebCoreStringWithNullCheck(args[1]), ec);322 RefPtr<CanvasPattern> pattern = context->createPattern(canvas_element, valueToStringWithNullCheck(args[1]), ec); 323 323 if (ec != 0) { 324 324 V8Proxy::setDOMException(ec); … … 346 346 } 347 347 348 String text = toWebCoreString(args[0]);348 String text = ToWebCoreString(args[0]); 349 349 float x = toFloat(args[1]); 350 350 float y = toFloat(args[2]); … … 372 372 } 373 373 374 String text = toWebCoreString(args[0]);374 String text = ToWebCoreString(args[0]); 375 375 float x = toFloat(args[1]); 376 376 float y = toFloat(args[2]); -
trunk/WebCore/bindings/v8/custom/V8CustomXPathNSResolver.cpp
r45559 r45574 81 81 return String(); 82 82 83 return toWebCoreStringWithNullCheck(retval);83 return valueToStringWithNullCheck(retval); 84 84 } 85 85 -
trunk/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
r45559 r45574 278 278 if (V8Proxy::isWrapperOfType(args[1], V8ClassIndex::MESSAGEPORT)) 279 279 port = V8Proxy::convertToNativeObject<MessagePort>(V8ClassIndex::MESSAGEPORT, args[1]); 280 targetOrigin = toWebCoreStringWithNullOrUndefinedCheck(args[2]);280 targetOrigin = valueToStringWithNullOrUndefinedCheck(args[2]); 281 281 } else { 282 targetOrigin = toWebCoreStringWithNullOrUndefinedCheck(args[1]);282 targetOrigin = valueToStringWithNullOrUndefinedCheck(args[1]); 283 283 } 284 284 … … 563 563 return v8::Undefined(); 564 564 565 String url = toWebCoreStringWithNullOrUndefinedCheck(args[0]);565 String url = valueToStringWithNullOrUndefinedCheck(args[0]); 566 566 v8::Local<v8::Value> dialogArgs = args[1]; 567 String featureArgs = toWebCoreStringWithNullOrUndefinedCheck(args[2]);567 String featureArgs = valueToStringWithNullOrUndefinedCheck(args[2]); 568 568 569 569 const HashMap<String, String> features = parseModalDialogFeatures(featureArgs); … … 652 652 return v8::Undefined(); 653 653 654 String urlString = toWebCoreStringWithNullOrUndefinedCheck(args[0]);654 String urlString = valueToStringWithNullOrUndefinedCheck(args[0]); 655 655 AtomicString frameName = (args[1]->IsUndefined() || args[1]->IsNull()) ? "_blank" : AtomicString(toWebCoreString(args[1])); 656 656 … … 701 701 // so we can restore the values we may not want to overwrite after 702 702 // we do the multiple monitor fixes. 703 WindowFeatures rawFeatures( toWebCoreStringWithNullOrUndefinedCheck(args[2]));703 WindowFeatures rawFeatures(valueToStringWithNullOrUndefinedCheck(args[2])); 704 704 WindowFeatures windowFeatures(rawFeatures); 705 705 FloatRect screenRect = screenAvailableRect(page->mainFrame()->view()); -
trunk/WebCore/bindings/v8/custom/V8HTMLCanvasElementCustom.cpp
r45559 r45574 44 44 v8::Handle<v8::Value> holder = args.Holder(); 45 45 HTMLCanvasElement* imp = V8Proxy::convertDOMWrapperToNode<HTMLCanvasElement>(holder); 46 String contextId = toWebCoreString(args[0]);46 String contextId = ToWebCoreString(args[0]); 47 47 CanvasRenderingContext2D* result = imp->getContext(contextId); 48 48 return V8Proxy::convertToV8Object(V8ClassIndex::CANVASRENDERINGCONTEXT2D, result); -
trunk/WebCore/bindings/v8/custom/V8HTMLIFrameElementCustom.cpp
r45559 r45574 41 41 { 42 42 HTMLIFrameElement* iframe = V8Proxy::convertDOMWrapperToNode<HTMLIFrameElement>(info.Holder()); 43 String v = toWebCoreStringWithNullCheck(value);43 String v = valueToStringWithNullCheck(value); 44 44 45 45 if (!allowSettingFrameSrcToJavascriptUrl(iframe, v)) -
trunk/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp
r45559 r45574 68 68 bool ok; 69 69 v8::TryCatch try_catch; 70 int index = toInt32(args[1], ok);70 int index = ToInt32(args[1], ok); 71 71 72 72 if (try_catch.HasCaught()) -
trunk/WebCore/bindings/v8/custom/V8HTMLSelectElementCustom.cpp
r45559 r45574 57 57 } 58 58 59 imp->remove( toInt32(args[0]));59 imp->remove(ToInt32(args[0])); 60 60 return v8::Undefined(); 61 61 } -
trunk/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
r45559 r45574 55 55 } 56 56 57 String statement = toWebCoreString(args[0]);57 String statement = ToWebCoreString(args[0]); 58 58 59 59 Vector<SQLValue> sqlValues; … … 76 76 sqlValues.append(SQLValue(value->NumberValue())); 77 77 else 78 sqlValues.append(SQLValue( toWebCoreString(value)));78 sqlValues.append(SQLValue(ToWebCoreString(value))); 79 79 } 80 80 } -
trunk/WebCore/bindings/v8/custom/V8WorkerContextCustom.cpp
r45559 r45574 106 106 107 107 if (function->IsString()) { 108 WebCore::String stringFunction = toWebCoreString(function);108 WebCore::String stringFunction = ToWebCoreString(function); 109 109 timerId = DOMTimer::install(workerContext, new ScheduledAction(stringFunction, workerContext->url()), timeout, singleShot); 110 110 } else if (function->IsFunction()) { -
trunk/WebCore/bindings/v8/custom/V8XMLHttpRequestCustom.cpp
r45559 r45574 346 346 String user, passwd; 347 347 if (args.Length() >= 4 && !args[3]->IsUndefined()) { 348 user = toWebCoreStringWithNullCheck(args[3]);348 user = valueToStringWithNullCheck(args[3]); 349 349 350 350 if (args.Length() >= 5 && !args[4]->IsUndefined()) { 351 passwd = toWebCoreStringWithNullCheck(args[4]);351 passwd = valueToStringWithNullCheck(args[4]); 352 352 xmlHttpRequest->open(method, url, async, user, passwd, ec); 353 353 } else … … 385 385 xmlHttpRequest->send(document, ec); 386 386 } else 387 xmlHttpRequest->send( toWebCoreStringWithNullCheck(arg), ec);387 xmlHttpRequest->send(valueToStringWithNullCheck(arg), ec); 388 388 } 389 389
Note: See TracChangeset
for help on using the changeset viewer.