OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 21 matching lines...) Expand all Loading... |
32 #include "V8FormData.h" | 32 #include "V8FormData.h" |
33 | 33 |
34 #include "V8Blob.h" | 34 #include "V8Blob.h" |
35 #include "V8HTMLFormElement.h" | 35 #include "V8HTMLFormElement.h" |
36 #include "bindings/v8/V8Binding.h" | 36 #include "bindings/v8/V8Binding.h" |
37 #include "bindings/v8/V8Utilities.h" | 37 #include "bindings/v8/V8Utilities.h" |
38 #include "core/html/DOMFormData.h" | 38 #include "core/html/DOMFormData.h" |
39 | 39 |
40 namespace WebCore { | 40 namespace WebCore { |
41 | 41 |
42 void V8FormData::constructorCustom(const v8::FunctionCallbackInfo<v8::Value>& in
fo) | |
43 { | |
44 HTMLFormElement* form = 0; | |
45 if (info.Length() > 0 && V8HTMLFormElement::HasInstance(info[0], info.GetIso
late(), worldType(info.GetIsolate()))) | |
46 form = V8HTMLFormElement::toNative(info[0]->ToObject()); | |
47 RefPtr<DOMFormData> domFormData = DOMFormData::create(form); | |
48 | |
49 v8::Handle<v8::Object> wrapper = info.Holder(); | |
50 V8DOMWrapper::associateObjectWithWrapper<V8FormData>(domFormData.release(),
&wrapperTypeInfo, wrapper, info.GetIsolate(), WrapperConfiguration::Dependent); | |
51 info.GetReturnValue().Set(wrapper); | |
52 } | |
53 | |
54 void V8FormData::appendMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) | 42 void V8FormData::appendMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) |
55 { | 43 { |
56 if (info.Length() < 2) { | 44 if (info.Length() < 2) { |
57 throwError(v8SyntaxError, "Not enough arguments", info.GetIsolate()); | 45 throwError(v8SyntaxError, "Not enough arguments", info.GetIsolate()); |
58 return; | 46 return; |
59 } | 47 } |
60 | 48 |
61 DOMFormData* domFormData = V8FormData::toNative(info.Holder()); | 49 DOMFormData* domFormData = V8FormData::toNative(info.Holder()); |
62 | 50 |
63 String name = toWebCoreStringWithNullCheck(info[0]); | 51 String name = toWebCoreStringWithNullCheck(info[0]); |
64 | 52 |
65 v8::Handle<v8::Value> arg = info[1]; | 53 v8::Handle<v8::Value> arg = info[1]; |
66 if (V8Blob::HasInstance(arg, info.GetIsolate(), worldType(info.GetIsolate())
)) { | 54 if (V8Blob::HasInstance(arg, info.GetIsolate(), worldType(info.GetIsolate())
)) { |
67 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); | 55 v8::Handle<v8::Object> object = v8::Handle<v8::Object>::Cast(arg); |
68 Blob* blob = V8Blob::toNative(object); | 56 Blob* blob = V8Blob::toNative(object); |
69 ASSERT(blob); | 57 ASSERT(blob); |
70 | 58 |
71 String filename; | 59 String filename; |
72 if (info.Length() >= 3 && !info[2]->IsUndefined()) | 60 if (info.Length() >= 3 && !info[2]->IsUndefined()) |
73 filename = toWebCoreStringWithNullCheck(info[2]); | 61 filename = toWebCoreStringWithNullCheck(info[2]); |
74 | 62 |
75 domFormData->append(name, blob, filename); | 63 domFormData->append(name, blob, filename); |
76 } else | 64 } else |
77 domFormData->append(name, toWebCoreStringWithNullCheck(arg)); | 65 domFormData->append(name, toWebCoreStringWithNullCheck(arg)); |
78 } | 66 } |
79 | 67 |
80 } // namespace WebCore | 68 } // namespace WebCore |
OLD | NEW |