Changeset 59118 in webkit
- Timestamp:
- May 10, 2010 7:06:11 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 2 deleted
- 7 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r59115 r59118 1 2010-05-10 Dumitru Daniliuc <dumi@chromium.org> 2 3 Reviewed by Brady Eidson. 4 5 Fixing the expectations for openDatabase() in cross-frame-access-call.html. 6 Related to changes in patches #6 and #7 at https://bugs.webkit.org/show_bug.cgi?id=34994. 7 8 * http/tests/security/cross-frame-access-call-expected.txt: 9 * http/tests/security/cross-frame-access-call.html: 10 * platform/chromium-linux/http/tests/security/cross-frame-access-call-expected.txt: Removed. 11 * platform/chromium-mac/http/tests/security/cross-frame-access-call-expected.txt: Removed. 12 * platform/chromium-win/http/tests/security/cross-frame-access-call-expected.txt: Removed. 13 * platform/chromium/http: Added. 14 * platform/chromium/http/tests: Added. 15 * platform/chromium/http/tests/security: Added. 16 * platform/chromium/http/tests/security/cross-frame-access-call-expected.txt: Copied from LayoutTests/platform/chromium-win/http/tests/security/cross-frame-access-call-expected.txt. 17 1 18 2010-05-10 John Gregg <johnnyg@google.com> 2 19 -
trunk/LayoutTests/http/tests/security/cross-frame-access-call-expected.txt
r35250 r59118 65 65 PASS: window.getComputedStyle.call(targetWindow, document.body, '') should be 'undefined' and is. 66 66 PASS: window.getMatchedCSSRules.call(targetWindow, document.body, '', false) should be 'undefined' and is. 67 PASS: window.openDatabase.call(targetWindow, 'name' ) should be 'undefined' and is.67 PASS: window.openDatabase.call(targetWindow, 'name', '1.0', 'description', 0) should be 'undefined' and is. 68 68 PASS: window.atob.call(targetWindow, 'string') should be 'undefined' and is. 69 69 PASS: window.btoa.call(targetWindow, 'string') should be 'undefined' and is. -
trunk/LayoutTests/http/tests/security/cross-frame-access-call.html
r35250 r59118 35 35 shouldBe("window.getComputedStyle.call(targetWindow, document.body, '')", "undefined"); 36 36 shouldBe("window.getMatchedCSSRules.call(targetWindow, document.body, '', false)", "undefined"); 37 shouldBe("window.openDatabase.call(targetWindow, 'name' )", "undefined");37 shouldBe("window.openDatabase.call(targetWindow, 'name', '1.0', 'description', 0)", "undefined"); 38 38 shouldBe("window.atob.call(targetWindow, 'string')", "undefined"); 39 39 shouldBe("window.btoa.call(targetWindow, 'string')", "undefined"); -
trunk/LayoutTests/platform/chromium/http/tests/security/cross-frame-access-call-expected.txt
r59110 r59118 65 65 PASS: window.getComputedStyle.call(targetWindow, document.body, '') should be 'undefined' and is. 66 66 PASS: window.getMatchedCSSRules.call(targetWindow, document.body, '', false) should be 'undefined' and is. 67 PASS: window.openDatabase.call(targetWindow, 'name' ) should be 'undefined' and is.67 PASS: window.openDatabase.call(targetWindow, 'name', '1.0', 'description', 0) should be 'undefined' and is. 68 68 PASS: window.atob.call(targetWindow, 'string') should be 'undefined' and is. 69 69 PASS: window.btoa.call(targetWindow, 'string') should be 'undefined' and is. -
trunk/WebCore/ChangeLog
r59116 r59118 1 2010-05-10 Dumitru Daniliuc <dumi@chromium.org> 2 3 Reviewed by Brady Eidson. 4 5 Cleaning up and fixing the existing JSC DB bindings. 6 https://bugs.webkit.org/show_bug.cgi?id=34994 7 8 * bindings/js/JSDOMWindowCustom.cpp: 9 (WebCore::JSDOMWindow::openDatabase): 10 * bindings/js/JSDatabaseCustom.cpp: 11 (WebCore::JSDatabase::changeVersion): 12 (WebCore::createTransaction): 13 (WebCore::JSDatabase::transaction): 14 (WebCore::JSDatabase::readTransaction): 15 * bindings/js/JSSQLTransactionCustom.cpp: 16 (WebCore::JSSQLTransaction::executeSql): 17 1 18 2010-05-10 Fumitoshi Ukai <ukai@chromium.org> 2 19 -
trunk/WebCore/bindings/js/JSDOMWindowCustom.cpp
r58145 r59118 968 968 JSValue JSDOMWindow::openDatabase(ExecState* exec, const ArgList& args) 969 969 { 970 if (!allowsAccessFrom(exec) || (args.size() < 4)) 971 return jsUndefined(); 970 if (!allowsAccessFrom(exec) || (args.size() < 4)) { 971 setDOMException(exec, SYNTAX_ERR); 972 return jsUndefined(); 973 } 974 975 String name = ustringToString(args.at(0).toString(exec)); 976 if (exec->hadException()) 977 return jsUndefined(); 978 979 String version = ustringToString(args.at(1).toString(exec)); 980 if (exec->hadException()) 981 return jsUndefined(); 982 983 String displayName = ustringToString(args.at(2).toString(exec)); 984 if (exec->hadException()) 985 return jsUndefined(); 986 987 // args.at(3) = estimated size 988 unsigned long estimatedSize = args.at(3).toUInt32(exec); 989 if (exec->hadException()) 990 return jsUndefined(); 991 992 RefPtr<DatabaseCallback> creationCallback; 993 if (args.size() >= 5) { 994 if (!args.at(4).isObject()) { 995 setDOMException(exec, TYPE_MISMATCH_ERR); 996 return jsUndefined(); 997 } 998 999 creationCallback = JSDatabaseCallback::create(asObject(args.at(4)), globalObject()); 1000 } 1001 972 1002 ExceptionCode ec = 0; 973 const UString& name = args.at(0).toString(exec); 974 const UString& version = args.at(1).toString(exec); 975 const UString& displayName = args.at(2).toString(exec); 976 unsigned long estimatedSize = args.at(3).toInt32(exec); 977 RefPtr<DatabaseCallback> creationCallback; 978 if ((args.size() >= 5) && args.at(4).isObject()) 979 creationCallback = JSDatabaseCallback::create(asObject(args.at(4)), globalObject()); 980 981 JSValue result = toJS(exec, globalObject(), WTF::getPtr(impl()->openDatabase(ustringToString(name), ustringToString(version), ustringToString(displayName), estimatedSize, creationCallback.release(), ec))); 1003 JSValue result = toJS(exec, globalObject(), WTF::getPtr(impl()->openDatabase(name, version, displayName, estimatedSize, creationCallback.release(), ec))); 982 1004 983 1005 setDOMException(exec, ec); -
trunk/WebCore/bindings/js/JSDatabaseCustom.cpp
r58801 r59118 51 51 { 52 52 String oldVersion = ustringToString(args.at(0).toString(exec)); 53 if (exec->hadException()) 54 return jsUndefined(); 55 53 56 String newVersion = ustringToString(args.at(1).toString(exec)); 57 if (exec->hadException()) 58 return jsUndefined(); 54 59 55 JSObject* object ;56 if (! (object = args.at(2).getObject())) {60 JSObject* object = args.at(2).getObject(); 61 if (!object) { 57 62 setDOMException(exec, TYPE_MISMATCH_ERR); 58 63 return jsUndefined(); 59 64 } 60 61 RefPtr<SQLTransactionCallback> callback(JSSQLTransactionCallback::create(object, static_cast<JSDOMGlobalObject*>( exec->dynamicGlobalObject())));62 65 66 RefPtr<SQLTransactionCallback> callback(JSSQLTransactionCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()))); 67 63 68 RefPtr<SQLTransactionErrorCallback> errorCallback; 64 69 if (!args.at(3).isNull()) { 65 if (!(object = args.at(3).getObject())) { 66 setDOMException(exec, TYPE_MISMATCH_ERR); 67 return jsUndefined(); 68 } 69 70 errorCallback = JSSQLTransactionErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())); 71 } 72 73 RefPtr<VoidCallback> successCallback; 74 if (!args.at(4).isNull()) { 75 if (!(object = args.at(4).getObject())) { 70 object = args.at(3).getObject(); 71 if (!object) { 76 72 setDOMException(exec, TYPE_MISMATCH_ERR); 77 73 return jsUndefined(); 78 74 } 79 75 80 successCallback = JSCustomVoidCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())); 76 errorCallback = JSSQLTransactionErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject())); 77 } 78 79 RefPtr<VoidCallback> successCallback; 80 if (!args.at(4).isNull()) { 81 object = args.at(4).getObject(); 82 if (!object) { 83 setDOMException(exec, TYPE_MISMATCH_ERR); 84 return jsUndefined(); 85 } 86 87 successCallback = JSCustomVoidCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject())); 81 88 } 82 89 83 90 m_impl->changeVersion(oldVersion, newVersion, callback.release(), errorCallback.release(), successCallback.release()); 84 91 85 92 return jsUndefined(); 86 93 } … … 88 95 static JSValue createTransaction(ExecState* exec, const ArgList& args, Database* database, JSDOMGlobalObject* globalObject, bool readOnly) 89 96 { 90 JSObject* object ;91 92 if (! (object = args.at(0).getObject())) {97 JSObject* object = args.at(0).getObject(); 98 99 if (!object) { 93 100 setDOMException(exec, TYPE_MISMATCH_ERR); 94 101 return jsUndefined(); 95 } 96 102 } 103 97 104 RefPtr<SQLTransactionCallback> callback(JSSQLTransactionCallback::create(object, globalObject)); 98 105 RefPtr<SQLTransactionErrorCallback> errorCallback; 99 106 if (args.size() > 1 && !args.at(1).isNull()) { 100 if (!(object = args.at(1).getObject())) { 107 object = args.at(1).getObject(); 108 if (!object) { 101 109 setDOMException(exec, TYPE_MISMATCH_ERR); 102 110 return jsUndefined(); … … 108 116 RefPtr<VoidCallback> successCallback; 109 117 if (args.size() > 2 && !args.at(2).isNull()) { 110 if (!(object = args.at(2).getObject())) { 118 object = args.at(2).getObject(); 119 if (!object) { 111 120 setDOMException(exec, TYPE_MISMATCH_ERR); 112 121 return jsUndefined(); … … 115 124 successCallback = JSCustomVoidCallback::create(object, globalObject); 116 125 } 117 126 118 127 database->transaction(callback.release(), errorCallback.release(), successCallback.release(), readOnly); 119 128 return jsUndefined(); … … 122 131 JSValue JSDatabase::transaction(ExecState* exec, const ArgList& args) 123 132 { 124 return createTransaction(exec, args, m_impl.get(), static_cast<JSDOMGlobalObject*>( exec->dynamicGlobalObject()), false);133 return createTransaction(exec, args, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), false); 125 134 } 126 135 127 136 JSValue JSDatabase::readTransaction(ExecState* exec, const ArgList& args) 128 137 { 129 return createTransaction(exec, args, m_impl.get(), static_cast<JSDOMGlobalObject*>( exec->dynamicGlobalObject()), true);138 return createTransaction(exec, args, m_impl.get(), static_cast<JSDOMGlobalObject*>(globalObject()), true); 130 139 } 131 140 -
trunk/WebCore/bindings/js/JSSQLTransactionCustom.cpp
r58801 r59118 42 42 43 43 namespace WebCore { 44 44 45 45 JSValue JSSQLTransaction::executeSql(ExecState* exec, const ArgList& args) 46 46 { … … 69 69 if (exec->hadException()) 70 70 return jsUndefined(); 71 71 72 72 for (unsigned i = 0 ; i < length; ++i) { 73 73 JSValue value = object->get(exec, i); 74 74 if (exec->hadException()) 75 75 return jsUndefined(); 76 77 if (value.is Null())76 77 if (value.isUndefinedOrNull()) 78 78 sqlValues.append(SQLValue()); 79 79 else if (value.isNumber()) … … 95 95 return jsUndefined(); 96 96 } 97 97 98 98 callback = JSSQLStatementCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())); 99 99 } 100 100 101 101 RefPtr<SQLStatementErrorCallback> errorCallback; 102 102 if (!args.at(3).isUndefinedOrNull()) { … … 106 106 return jsUndefined(); 107 107 } 108 108 109 109 errorCallback = JSSQLStatementErrorCallback::create(object, static_cast<JSDOMGlobalObject*>(exec->dynamicGlobalObject())); 110 110 } 111 111 112 112 ExceptionCode ec = 0; 113 113 m_impl->executeSQL(sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec); 114 114 setDOMException(exec, ec); 115 115 116 116 return jsUndefined(); 117 117 }
Note: See TracChangeset
for help on using the changeset viewer.