OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2007-2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 result = constructorName; | 132 result = constructorName; |
133 } | 133 } |
134 } | 134 } |
135 if (toCoreStringWithUndefinedOrNullCheck(result) == "Object" && object->
IsFunction()) | 135 if (toCoreStringWithUndefinedOrNullCheck(result) == "Object" && object->
IsFunction()) |
136 result = v8AtomicString(info.GetIsolate(), "Function"); | 136 result = v8AtomicString(info.GetIsolate(), "Function"); |
137 } | 137 } |
138 | 138 |
139 v8SetReturnValue(info, result); | 139 v8SetReturnValue(info, result); |
140 } | 140 } |
141 | 141 |
| 142 void V8InjectedScriptHost::isDOMWrapperMethodCustom(const v8::FunctionCallbackIn
fo<v8::Value>& info) |
| 143 { |
| 144 if (info.Length() < 1) |
| 145 return; |
| 146 |
| 147 v8SetReturnValue(info, V8DOMWrapper::isWrapper(info.GetIsolate(), info[0])); |
| 148 } |
| 149 |
142 void V8InjectedScriptHost::isHTMLAllCollectionMethodCustom(const v8::FunctionCal
lbackInfo<v8::Value>& info) | 150 void V8InjectedScriptHost::isHTMLAllCollectionMethodCustom(const v8::FunctionCal
lbackInfo<v8::Value>& info) |
143 { | 151 { |
144 if (info.Length() < 1) | 152 if (info.Length() < 1) |
145 return; | 153 return; |
146 | 154 |
147 if (!info[0]->IsObject()) { | |
148 v8SetReturnValue(info, false); | |
149 return; | |
150 } | |
151 | |
152 v8SetReturnValue(info, V8HTMLAllCollection::hasInstance(info[0], info.GetIso
late())); | |
153 } | |
154 | |
155 void V8InjectedScriptHost::isPopularDOMObjectMethodCustom(const v8::FunctionCall
backInfo<v8::Value>& info) | |
156 { | |
157 // FIXME: Stop using this function (whilelisting) once we come up with a way | |
158 // to distinguish DOM wrappers from other obejcts. | |
159 | |
160 if (info.Length() < 1) | |
161 return; | |
162 | |
163 if (!info[0]->IsObject()) { | 155 if (!info[0]->IsObject()) { |
164 v8SetReturnValue(info, false); | 156 v8SetReturnValue(info, false); |
165 return; | 157 return; |
166 } | 158 } |
167 | 159 |
168 v8::Local<v8::Value> object = info[0]; | 160 v8SetReturnValue(info, V8HTMLAllCollection::hasInstance(info[0], info.GetIso
late())); |
169 v8::Isolate* isolate = info.GetIsolate(); | |
170 bool isPopularDOMObject = false; | |
171 static bool (*hasInstances[])(v8::Local<v8::Value>, v8::Isolate*) = { | |
172 V8Blob::hasInstance, | |
173 V8DOMError::hasInstance, | |
174 V8DOMException::hasInstance, | |
175 V8Element::hasInstance, | |
176 V8Event::hasInstance, | |
177 V8EventTarget::hasInstance, | |
178 V8Location::hasInstance, | |
179 V8Navigator::hasInstance, | |
180 }; | |
181 for (size_t i = 0; i < sizeof hasInstances / sizeof *hasInstances; ++i) { | |
182 if (hasInstances[i](object, isolate)) { | |
183 isPopularDOMObject = true; | |
184 break; | |
185 } | |
186 } | |
187 | |
188 v8SetReturnValue(info, isPopularDOMObject); | |
189 } | 161 } |
190 | 162 |
191 void V8InjectedScriptHost::isTypedArrayMethodCustom(const v8::FunctionCallbackIn
fo<v8::Value>& info) | 163 void V8InjectedScriptHost::isTypedArrayMethodCustom(const v8::FunctionCallbackIn
fo<v8::Value>& info) |
192 { | 164 { |
193 if (info.Length() < 1) | 165 if (info.Length() < 1) |
194 return; | 166 return; |
195 v8SetReturnValue(info, info[0]->IsTypedArray()); | 167 v8SetReturnValue(info, info[0]->IsTypedArray()); |
196 } | 168 } |
197 | 169 |
198 void V8InjectedScriptHost::subtypeMethodCustom(const v8::FunctionCallbackInfo<v8
::Value>& info) | 170 void V8InjectedScriptHost::subtypeMethodCustom(const v8::FunctionCallbackInfo<v8
::Value>& info) |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
614 InjectedScriptNative* injectedScriptNative = InjectedScriptNative::fromInjec
tedScriptHost(info.Holder()); | 586 InjectedScriptNative* injectedScriptNative = InjectedScriptNative::fromInjec
tedScriptHost(info.Holder()); |
615 if (!injectedScriptNative) | 587 if (!injectedScriptNative) |
616 return; | 588 return; |
617 int id = info[0]->ToInt32(info.GetIsolate())->Value(); | 589 int id = info[0]->ToInt32(info.GetIsolate())->Value(); |
618 String groupName = injectedScriptNative->groupName(id); | 590 String groupName = injectedScriptNative->groupName(id); |
619 if (!groupName.isEmpty()) | 591 if (!groupName.isEmpty()) |
620 info.GetReturnValue().Set(v8String(info.GetIsolate(), groupName)); | 592 info.GetReturnValue().Set(v8String(info.GetIsolate(), groupName)); |
621 } | 593 } |
622 | 594 |
623 } // namespace blink | 595 } // namespace blink |
OLD | NEW |