+2007-11-13 Brady Eidson <beidson@apple.com>
+
+ JS bindings by Anders, reviewed by Brady
+ WebCore changes by Brady, reviewed by Anders and Tim
+
+ Adapt to the new iteration of the HTML5 client-side storage spec.
+
+ Based largely on implementation feedback we generated in landing our first version of this API and also
+ on the input of others in the community, the database spec went through a large overhaul that addresses
+ many concerns. Amongst other changes/improvements:
+ - SQLTransaction object is added and all transactions are explicit. In addition, since the API manages
+ transactions explicitly, transaction-related language in SQL statements is disallowed
+ - executeSql() is now on a transaction object instead of the database object.
+ - Database.changeVersion() now takes place within the context of a transaction. Therefore the version
+ change can be atomic along with the statements that modify the DB schema
+
+ Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
+ as a chain of events on the SQLTransaction object where processing is handed off between being processed
+ asynchronously and calling back up to javascript. To accomplish this voodoo, SQLTransaction has a series of
+ methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
+
+ * DerivedSources.make:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * bindings/js/JSDatabaseCustom.cpp:
+ (WebCore::JSDatabase::changeVersion): Adapt to the new API
+ (WebCore::JSDatabase::transaction): Added
+
+ * bindings/js/JSSQLTransactionCustom.cpp: Added.
+ (WebCore::JSSQLTransaction::executeSql): Added
+
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::openDatabase): Add the new arguments
+ * page/DOMWindow.h:
+ * page/DOMWindow.idl:
+
+ * page/inspector/DatabasePanel.js: Use the new API
+
+ * storage/ChangeVersionWrapper.cpp: Added. Implementation of "SQLTransactionWrapper" that enforces
+ changing the version of the database
+ (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
+ (WebCore::ChangeVersionWrapper::performPreflight):
+ (WebCore::ChangeVersionWrapper::performPostflight):
+ * storage/ChangeVersionWrapper.h: Added.
+ (WebCore::ChangeVersionWrapper::sqlError):
+
+ * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
+ happen solely on the background thread - most of these changes result from that change
+ (WebCore::Database::Database): Removed an obsolete FIXME
+ (WebCore::Database::openAndVerifyVersion):
+ (WebCore::Database::getVersionFromDatabase):
+ (WebCore::Database::setVersionInDatabase):
+ (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
+ (WebCore::Database::performOpenAndVerify):
+ (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
+ (WebCore::Database::changeVersion): Changed for the new API from JS
+ (WebCore::Database::transaction): Added, for the new API from JS
+ (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
+ (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
+ (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
+ (WebCore::Database::performGetTableNames):
+ (WebCore::Database::deliverAllPendingCallbacks):
+ (WebCore::Database::deliverPendingCallback):
+ (WebCore::Database::setExpectedVersion):
+ * storage/Database.h:
+ * storage/Database.idl:
+
+ * storage/DatabaseTask.cpp: Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
+ to replace the m_synchronous flag
+ (WebCore::DatabaseTask::performTask):
+ (WebCore::DatabaseTask::lockForSynchronousScheduling):
+ (WebCore::DatabaseTask::waitForSynchronousCompletion):
+ (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
+ * storage/DatabaseTask.h:
+
+ * storage/SQLError.h: New API object
+
+ * storage/SQLResultSet.cpp:
+ (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
+ * storage/SQLResultSet.h:
+ * storage/SQLResultSet.idl:
+
+ * storage/SQLStatement.cpp: Added.
+ (WebCore::SQLStatement::SQLStatement):
+ (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
+ (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
+ of an actual version vs. expected version mismatch
+ (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
+ * storage/SQLStatement.h: Added.
+ (WebCore::SQLStatement::hasStatementCallback):
+ (WebCore::SQLStatement::hasStatementErrorCallback):
+ (WebCore::SQLStatement::sqlError): Get the error for this statement, if any
+
+ * storage/SQLTransaction.cpp: Added.
+ (WebCore::SQLTransaction::SQLTransaction):
+ (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
+ (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
+ (WebCore::SQLTransaction::performNextStep): Call the method for the next step
+ (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
+ (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight
+ using the SQLTransactionWrapper, if any
+ (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
+ (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread
+ and make runStatements() the next step
+ (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction
+ (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
+ (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
+ (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
+ (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
+ (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
+ (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
+ (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
+ transaction after it error'ed out
+ * storage/SQLTransaction.h:
+ (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper):
+ (WebCore::SQLTransaction::database):
+ * storage/SQLTransaction.idl:
+
+ The following were made obsolete by the new version of the API:
+ * bindings/js/JSCustomSQLCallback.cpp: Removed.
+ * bindings/js/JSCustomSQLCallback.h: Removed.
+ * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
+ * bindings/js/JSCustomVersionChangeCallback.h: Removed.
+ * storage/DatabaseCallback.cpp: Removed.
+ * storage/DatabaseCallback.h: Removed.
+ * storage/SQLCallback.h: Removed.
+ * storage/SQLCallback.idl: Removed.
+ * storage/VersionChangeCallback.h: Removed.
+ * storage/VersionChangeCallback.idl: Removed.
+
2007-11-13 Dan Bernstein <mitz@apple.com>
Reviewed by Beth Dakin.
JSRange.h \
JSRangeException.h \
JSRect.h \
- JSSQLCallback.h \
JSSQLError.h \
JSSQLResultSet.h \
JSSQLResultSetRowList.h \
JSTimeRanges.h \
JSTreeWalker.h \
JSUIEvent.h \
- JSVersionChangeCallback.h \
JSVoidCallback.h \
JSXPathEvaluator.h \
JSXPathExpression.h \
DESTDIR = $$OUTPUT_DIR/lib
DEPENDPATH += css dom loader editing history html \
- loader page platform platform/graphics rendering xml
+ loader page platform platform/graphics rendering xml
include($$OUTPUT_DIR/config.pri)
$$PWD/../WebKit/qt/Api
DEPENDPATH += editing/qt history/qt loader/qt page/qt \
- platform/graphics/qt ../WebKit/qt/Api ../WebKit/qt/WebCoreSupport
+ platform/graphics/qt ../WebKit/qt/Api ../WebKit/qt/WebCoreSupport
DEFINES += WTF_USE_JAVASCRIPTCORE_BINDINGS=1
}
platform/sql/SQLiteStatement.cpp \
platform/sql/SQLiteTransaction.cpp \
platform/sql/SQLValue.cpp \
+ storage/ChangeVersionWrapper.cpp \
storage/DatabaseAuthorizer.cpp \
- storage/DatabaseCallback.cpp \
storage/Database.cpp \
storage/DatabaseTask.cpp \
storage/DatabaseThread.cpp \
storage/DatabaseTracker.cpp \
storage/SQLResultSet.cpp \
storage/SQLResultSetRowList.cpp \
- bindings/js/JSCustomSQLCallback.cpp \
+ storage/SQLStatement.cpp \
+ storage/SQLTransaction.cpp \
+ bindings/js/JSCustomSQLStatementCallback.cpp \
+ bindings/js/JSCustomSQLStatementErrorCallback.cpp \
+ bindings/js/JSCustomSQLTransactionCallback.cpp \
+ bindings/js/JSCustomSQLTransactionErrorCallback.cpp \
bindings/js/JSDatabaseCustom.cpp \
- bindings/js/JSSQLResultSetRowListCustom.cpp
+ bindings/js/JSSQLResultSetRowListCustom.cpp \
+ bindings/js/JSSQLTransactionCustom.cpp
IDL_BINDINGS += \
storage/Database.idl \
+ storage/SQLError.idl \
+ storage/SQLResultSet.idl \
storage/SQLResultSetRowList.idl \
- storage/VersionChangeCallback.idl \
- storage/SQLCallback.idl \
- storage/SQLResultSet.idl
+ storage/SQLStatementCallback.idl \
+ storage/SQLStatementErrorCallback.idl \
+ storage/SQLTransaction.idl \
+ storage/SQLTransactionCallback.idl \
+ storage/SQLTransactionErrorCallback.idl
}
DEPENDPATH += ksvg2/css ksvg2/events ksvg2/misc ksvg2/svg platform/graphics/svg
qt-port {
- DEPENDPATH += platform/graphics/svg/qt
+ DEPENDPATH += platform/graphics/svg/qt
}
gtk-port {
- DEPENDPATH += platform/graphics/svg/cairo
+ DEPENDPATH += platform/graphics/svg/cairo
}
SVG_NAMES = $$PWD/ksvg2/svg/svgtags.in
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSScreen.h"\r
>\r
</File>\r
- <File\r
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSQLCallback.cpp"\r
- >\r
- </File>\r
- <File\r
- RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSQLCallback.h"\r
- >\r
- </File>\r
<File\r
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSQLError.cpp"\r
>\r
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSQLResultSetRowList.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSSQLTransaction.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebCore\DerivedSources\JSSQLTransaction.h"\r
+ >\r
+ </File>\r
<File\r
RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSStyleSheet.cpp"\r
>\r
>\r
</File>\r
<File\r
- RelativePath="..\bindings\js\JSCustomSQLCallback.cpp"\r
+ RelativePath="..\bindings\js\JSCustomSQLStatementCallback.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\bindings\js\JSCustomSQLStatementCallback.h"\r
>\r
</File>\r
<File\r
- RelativePath="..\bindings\js\JSCustomSQLCallback.h"\r
+ RelativePath="..\bindings\js\JSCustomSQLStatementErrorCallback.cpp"\r
>\r
</File>\r
<File\r
- RelativePath="..\bindings\js\JSCustomVersionChangeCallback.cpp"\r
+ RelativePath="..\bindings\js\JSCustomSQLStatementErrorCallback.h"\r
>\r
</File>\r
<File\r
- RelativePath="..\bindings\js\JSCustomVersionChangeCallback.h"\r
+ RelativePath="..\bindings\js\JSCustomSQLTransactionCallback.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\bindings\js\JSCustomSQLTransactionCallback.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\bindings\js\JSCustomSQLTransactionErrorCallback.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\bindings\js\JSCustomSQLTransactionErrorCallback.h"\r
>\r
</File>\r
<File\r
RelativePath="..\bindings\js\JSSQLResultSetRowListCustom.cpp"\r
>\r
</File>\r
+ <File\r
+ RelativePath="..\bindings\js\JSSQLTransactionCustom.cpp"\r
+ >\r
+ </File>\r
<File\r
RelativePath="..\bindings\js\JSStyleSheetCustom.cpp"\r
>\r
Name="storage"\r
>\r
<File\r
- RelativePath="..\storage\Database.cpp"\r
+ RelativePath="..\storage\ChangeVersionWrapper.cpp"\r
>\r
</File>\r
<File\r
- RelativePath="..\storage\Database.h"\r
+ RelativePath="..\storage\ChangeVersionWrapper.h"\r
>\r
</File>\r
<File\r
- RelativePath="..\storage\DatabaseAuthorizer.cpp"\r
+ RelativePath="..\storage\Database.cpp"\r
>\r
</File>\r
<File\r
- RelativePath="..\storage\DatabaseAuthorizer.h"\r
+ RelativePath="..\storage\Database.h"\r
>\r
</File>\r
<File\r
- RelativePath="..\storage\DatabaseCallback.cpp"\r
+ RelativePath="..\storage\DatabaseAuthorizer.cpp"\r
>\r
</File>\r
<File\r
- RelativePath="..\storage\DatabaseCallback.h"\r
+ RelativePath="..\storage\DatabaseAuthorizer.h"\r
>\r
</File>\r
<File\r
RelativePath="..\storage\SQLResultSetRowList.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath="..\storage\SQLStatement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLStatement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLStatementCallback.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLStatementErrorCallback.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLTransaction.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLTransaction.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLTransactionCallback.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\storage\SQLTransactionErrorCallback.h"\r
+ >\r
+ </File>\r
<File\r
RelativePath="..\storage\VersionChangeCallback.h"\r
>\r
1A2E6E7A0CC556D5004A2062 /* SQLiteAuthorizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2E6E780CC556D5004A2062 /* SQLiteAuthorizer.cpp */; };
1A2E6E7B0CC556D5004A2062 /* SQLiteAuthorizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E6E790CC556D5004A2062 /* SQLiteAuthorizer.h */; };
1A2E6FA40CC5795D004A2062 /* ThreadingPthreads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2E6FA30CC5795D004A2062 /* ThreadingPthreads.cpp */; };
- 1A2E6FF50CC67855004A2062 /* VersionChangeCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E6FF30CC67855004A2062 /* VersionChangeCallback.h */; };
- 1A2E6FFE0CC67907004A2062 /* JSVersionChangeCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2E6FFC0CC67907004A2062 /* JSVersionChangeCallback.cpp */; };
- 1A2E6FFF0CC67907004A2062 /* JSVersionChangeCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E6FFD0CC67907004A2062 /* JSVersionChangeCallback.h */; };
- 1A2E70620CC67CAA004A2062 /* JSCustomVersionChangeCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E70600CC67CAA004A2062 /* JSCustomVersionChangeCallback.h */; };
- 1A2E70630CC67CAA004A2062 /* JSCustomVersionChangeCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2E70610CC67CAA004A2062 /* JSCustomVersionChangeCallback.cpp */; };
1A3178930B20A81600316987 /* SubresourceLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3178920B20A81600316987 /* SubresourceLoaderClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
1A494BFA0A122F4400FDAFC1 /* JSHTMLElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A494BF80A122F4400FDAFC1 /* JSHTMLElement.cpp */; };
1A494BFB0A122F4400FDAFC1 /* JSHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A494BF90A122F4400FDAFC1 /* JSHTMLElement.h */; };
1A750D8D0A90E521000FF215 /* JSNodeIterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A750D8B0A90E521000FF215 /* JSNodeIterator.cpp */; };
1A750D8E0A90E521000FF215 /* JSNodeIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A750D8C0A90E521000FF215 /* JSNodeIterator.h */; };
1A750DD40A90E729000FF215 /* JSNodeIteratorCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */; };
- 1A750E340A90F89F000FF215 /* JSTreeWalkerCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A750E330A90F89F000FF215 /* JSTreeWalkerCustom.cpp */; };
1A7629D50A07425100989F5B /* XPathGrammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7629D30A07425100989F5B /* XPathGrammar.cpp */; };
1A7629D60A07425100989F5B /* XPathGrammar.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7629D40A07425100989F5B /* XPathGrammar.h */; };
1A762C730A074F2600989F5B /* JSXPathEvaluator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A762C6B0A074F2600989F5B /* JSXPathEvaluator.cpp */; };
1A762C780A074F2600989F5B /* JSXPathNSResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A762C700A074F2600989F5B /* JSXPathNSResolver.h */; };
1A762C790A074F2600989F5B /* JSXPathResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A762C710A074F2600989F5B /* JSXPathResult.cpp */; };
1A762C7A0A074F2600989F5B /* JSXPathResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A762C720A074F2600989F5B /* JSXPathResult.h */; };
- 1A7CCAEA0CD901A100B7B64E /* SQLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCAE80CD901A100B7B64E /* SQLError.h */; };
- 1A7CCAEB0CD901A100B7B64E /* SQLError.idl in Resources */ = {isa = PBXBuildFile; fileRef = 1A7CCAE90CD901A100B7B64E /* SQLError.idl */; };
- 1A7CCAEE0CD901DB00B7B64E /* JSSQLError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCAEC0CD901DB00B7B64E /* JSSQLError.cpp */; };
- 1A7CCAEF0CD901DB00B7B64E /* JSSQLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCAED0CD901DB00B7B64E /* JSSQLError.h */; };
- 1A7CCB030CD945DD00B7B64E /* JSCustomSQLStatementCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCAFB0CD945DD00B7B64E /* JSCustomSQLStatementCallback.cpp */; };
- 1A7CCB040CD945DD00B7B64E /* JSCustomSQLStatementCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCAFC0CD945DD00B7B64E /* JSCustomSQLStatementCallback.h */; };
- 1A7CCB050CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCAFD0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.cpp */; };
- 1A7CCB060CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCAFE0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.h */; };
- 1A7CCB070CD945DD00B7B64E /* JSCustomSQLTransactionCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCAFF0CD945DD00B7B64E /* JSCustomSQLTransactionCallback.cpp */; };
- 1A7CCB080CD945DD00B7B64E /* JSCustomSQLTransactionCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCB000CD945DD00B7B64E /* JSCustomSQLTransactionCallback.h */; };
- 1A7CCB090CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCB010CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.cpp */; };
- 1A7CCB0A0CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCB020CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.h */; };
1A7CCB100CD9462C00B7B64E /* SQLStatementCallback.idl in Resources */ = {isa = PBXBuildFile; fileRef = 1A7CCB0C0CD9462C00B7B64E /* SQLStatementCallback.idl */; };
1A7CCB110CD9462C00B7B64E /* SQLStatementErrorCallback.idl in Resources */ = {isa = PBXBuildFile; fileRef = 1A7CCB0D0CD9462C00B7B64E /* SQLStatementErrorCallback.idl */; };
1A7CCB120CD9462C00B7B64E /* SQLTransactionCallback.idl in Resources */ = {isa = PBXBuildFile; fileRef = 1A7CCB0E0CD9462C00B7B64E /* SQLTransactionCallback.idl */; };
1A7CCB1C0CD9469A00B7B64E /* SQLTransactionErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCB180CD9469A00B7B64E /* SQLTransactionErrorCallback.h */; };
1A7CCB240CD946FD00B7B64E /* SQLTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCB220CD946FD00B7B64E /* SQLTransaction.h */; };
1A7CCB250CD946FD00B7B64E /* SQLTransaction.idl in Resources */ = {isa = PBXBuildFile; fileRef = 1A7CCB230CD946FD00B7B64E /* SQLTransaction.idl */; };
- 1A7CCB2E0CD9499700B7B64E /* JSSQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A7CCB2C0CD9499700B7B64E /* JSSQLTransaction.cpp */; };
- 1A7CCB2F0CD9499700B7B64E /* JSSQLTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7CCB2D0CD9499700B7B64E /* JSSQLTransaction.h */; };
1A820D910A13EBA600AF843C /* ImageDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A820D8F0A13EBA600AF843C /* ImageDocument.cpp */; };
1A820D920A13EBA600AF843C /* ImageDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A820D900A13EBA600AF843C /* ImageDocument.h */; };
1A85B18F0A1B18A200D8C87C /* JSHTMLHtmlElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A85B18D0A1B18A200D8C87C /* JSHTMLHtmlElement.cpp */; };
1AB7FC860A8B92EC00D9D37B /* XPathValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB7FC650A8B92EC00D9D37B /* XPathValue.h */; };
1AB7FC870A8B92EC00D9D37B /* XPathVariableReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AB7FC660A8B92EC00D9D37B /* XPathVariableReference.cpp */; };
1AB7FC880A8B92EC00D9D37B /* XPathVariableReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB7FC670A8B92EC00D9D37B /* XPathVariableReference.h */; };
+ 1ABFE7530CD968D000FE4834 /* SQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ABFE7520CD968D000FE4834 /* SQLTransaction.cpp */; };
1AC694C70A3B1676003F5049 /* PluginDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AC694C50A3B1676003F5049 /* PluginDocument.cpp */; };
1AC694C80A3B1676003F5049 /* PluginDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AC694C60A3B1676003F5049 /* PluginDocument.h */; };
1ACD1B630B029739007E5016 /* DOMCSSStyleDeclarationInternal.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 85E711440AC5D5340053270F /* DOMCSSStyleDeclarationInternal.h */; };
1ACE53EB0A8D18E70022947D /* XMLSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACE53E50A8D18E70022947D /* XMLSerializer.h */; };
1ACE53F60A8D19470022947D /* JSXMLSerializer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1ACE53F40A8D19470022947D /* JSXMLSerializer.cpp */; };
1ACE53F70A8D19470022947D /* JSXMLSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ACE53F50A8D19470022947D /* JSXMLSerializer.h */; };
+ 1AD2316E0CD269E700C1F194 /* JSSQLTransactionCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD2316D0CD269E700C1F194 /* JSSQLTransactionCustom.cpp */; };
1AD51A140CB59CD300953D11 /* DatabaseTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AD51A120CB59CD300953D11 /* DatabaseTracker.h */; settings = {ATTRIBUTES = (Private, ); }; };
1AD51A150CB59CD300953D11 /* DatabaseTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD51A130CB59CD300953D11 /* DatabaseTracker.cpp */; };
1AE2AA1E0A1CDAB400B42B25 /* JSHTMLAreaElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE2AA0A0A1CDAB300B42B25 /* JSHTMLAreaElement.cpp */; };
1AE82F900CAAFA9D002237AE /* JSDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE82F8E0CAAFA9D002237AE /* JSDatabase.h */; };
1AE82FEC0CAB07EE002237AE /* JSSQLResultSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE82FEA0CAB07EE002237AE /* JSSQLResultSet.cpp */; };
1AE82FED0CAB07EE002237AE /* JSSQLResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE82FEB0CAB07EE002237AE /* JSSQLResultSet.h */; };
- 1AE8301D0CAB0999002237AE /* JSSQLCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE8301B0CAB0999002237AE /* JSSQLCallback.cpp */; };
- 1AE8301E0CAB0999002237AE /* JSSQLCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE8301C0CAB0999002237AE /* JSSQLCallback.h */; };
1AE830440CAB0ED1002237AE /* JSDatabaseCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE830420CAB0ED1002237AE /* JSDatabaseCustom.cpp */; };
- 1AE831060CAB166E002237AE /* JSCustomSQLCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE831040CAB166E002237AE /* JSCustomSQLCallback.h */; };
- 1AE831070CAB166E002237AE /* JSCustomSQLCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE831050CAB166E002237AE /* JSCustomSQLCallback.cpp */; };
1AFE117D0CBFFB36003017FA /* SQLResultSetRowList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFE117B0CBFFB36003017FA /* SQLResultSetRowList.cpp */; };
1AFE117E0CBFFB36003017FA /* SQLResultSetRowList.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFE117C0CBFFB36003017FA /* SQLResultSetRowList.h */; };
1AFE11990CBFFCC4003017FA /* JSSQLResultSetRowList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFE11970CBFFCC4003017FA /* JSSQLResultSetRowList.cpp */; };
4E19592E0A39DACC00220FE5 /* MediaQueryExp.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E1959280A39DACC00220FE5 /* MediaQueryExp.h */; };
510184690B08602A004A825F /* CachedPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 510184670B08602A004A825F /* CachedPage.h */; settings = {ATTRIBUTES = (Private, ); }; };
5101846A0B08602A004A825F /* CachedPage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510184680B08602A004A825F /* CachedPage.cpp */; };
- 510F735F0B56C08800A3002A /* AuthenticationChallenge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510F73590B56C08800A3002A /* AuthenticationChallenge.cpp */; };
- 510F73600B56C08800A3002A /* AuthenticationChallenge.h in Headers */ = {isa = PBXBuildFile; fileRef = 510F735A0B56C08800A3002A /* AuthenticationChallenge.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 510F73610B56C08800A3002A /* Credential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510F735B0B56C08800A3002A /* Credential.cpp */; };
- 510F73620B56C08800A3002A /* Credential.h in Headers */ = {isa = PBXBuildFile; fileRef = 510F735C0B56C08800A3002A /* Credential.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 510F73630B56C08800A3002A /* ProtectionSpace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510F735D0B56C08800A3002A /* ProtectionSpace.cpp */; };
- 510F73640B56C08800A3002A /* ProtectionSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 510F735E0B56C08800A3002A /* ProtectionSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
5126E6BB0A2E3B12005C29FA /* IconDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5126E6B90A2E3B12005C29FA /* IconDatabase.cpp */; };
5126E6BC0A2E3B12005C29FA /* IconDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 5126E6BA0A2E3B12005C29FA /* IconDatabase.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 513BF1080B4F558900CCFECE /* AuthenticationMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 513BF1070B4F558900CCFECE /* AuthenticationMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 513BF1280B4F57DC00CCFECE /* AuthenticationMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 513BF1270B4F57DC00CCFECE /* AuthenticationMac.mm */; };
513F14530AB634C400094DDF /* IconLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 513F14510AB634C400094DDF /* IconLoader.cpp */; };
513F14540AB634C400094DDF /* IconLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 513F14520AB634C400094DDF /* IconLoader.h */; };
+ 514185EE0CD65F0400763C99 /* ChangeVersionWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 514185EC0CD65F0400763C99 /* ChangeVersionWrapper.h */; };
+ 514185EF0CD65F0400763C99 /* ChangeVersionWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514185ED0CD65F0400763C99 /* ChangeVersionWrapper.cpp */; };
514B3F730C722047000530DF /* FileSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 514B3F720C722047000530DF /* FileSystem.h */; };
514B3F760C722055000530DF /* FileSystemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514B3F750C722055000530DF /* FileSystemMac.mm */; };
+ 514C762E0CE921F4007EF3CD /* UnicodeRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C762C0CE921F4007EF3CD /* UnicodeRange.cpp */; };
+ 514C762F0CE921F4007EF3CD /* UnicodeRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C762D0CE921F4007EF3CD /* UnicodeRange.h */; };
+ 514C76370CE9225E007EF3CD /* JSSQLError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76350CE9225E007EF3CD /* JSSQLError.cpp */; };
+ 514C76380CE9225E007EF3CD /* JSSQLTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76360CE9225E007EF3CD /* JSSQLTransaction.cpp */; };
+ 514C764C0CE9234E007EF3CD /* AuthenticationMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76420CE9234E007EF3CD /* AuthenticationMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C764D0CE9234E007EF3CD /* AuthenticationMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C76430CE9234E007EF3CD /* AuthenticationMac.mm */; };
+ 514C764E0CE9234E007EF3CD /* FormDataStreamMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76440CE9234E007EF3CD /* FormDataStreamMac.h */; };
+ 514C764F0CE9234E007EF3CD /* FormDataStreamMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C76450CE9234E007EF3CD /* FormDataStreamMac.mm */; };
+ 514C76500CE9234E007EF3CD /* ResourceErrorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C76460CE9234E007EF3CD /* ResourceErrorMac.mm */; };
+ 514C76510CE9234E007EF3CD /* ResourceHandleMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C76470CE9234E007EF3CD /* ResourceHandleMac.mm */; };
+ 514C76520CE9234E007EF3CD /* ResourceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76480CE9234E007EF3CD /* ResourceRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76530CE9234E007EF3CD /* ResourceRequestMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C76490CE9234E007EF3CD /* ResourceRequestMac.mm */; };
+ 514C76540CE9234E007EF3CD /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C764A0CE9234E007EF3CD /* ResourceResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76550CE9234F007EF3CD /* ResourceResponseMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514C764B0CE9234E007EF3CD /* ResourceResponseMac.mm */; };
+ 514C766B0CE923A1007EF3CD /* AuthenticationChallenge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76560CE923A1007EF3CD /* AuthenticationChallenge.cpp */; };
+ 514C766C0CE923A1007EF3CD /* AuthenticationChallenge.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76570CE923A1007EF3CD /* AuthenticationChallenge.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C766D0CE923A1007EF3CD /* Credential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76580CE923A1007EF3CD /* Credential.cpp */; };
+ 514C766E0CE923A1007EF3CD /* Credential.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76590CE923A1007EF3CD /* Credential.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C766F0CE923A1007EF3CD /* FormData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C765A0CE923A1007EF3CD /* FormData.cpp */; };
+ 514C76700CE923A1007EF3CD /* FormData.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C765B0CE923A1007EF3CD /* FormData.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76710CE923A1007EF3CD /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C765C0CE923A1007EF3CD /* HTTPHeaderMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76720CE923A1007EF3CD /* HTTPParsers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C765D0CE923A1007EF3CD /* HTTPParsers.cpp */; };
+ 514C76730CE923A1007EF3CD /* HTTPParsers.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C765E0CE923A1007EF3CD /* HTTPParsers.h */; };
+ 514C76740CE923A1007EF3CD /* ProtectionSpace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C765F0CE923A1007EF3CD /* ProtectionSpace.cpp */; };
+ 514C76750CE923A1007EF3CD /* ProtectionSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76600CE923A1007EF3CD /* ProtectionSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76760CE923A1007EF3CD /* ResourceError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76610CE923A1007EF3CD /* ResourceError.cpp */; };
+ 514C76770CE923A1007EF3CD /* ResourceError.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76620CE923A1007EF3CD /* ResourceError.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C76780CE923A1007EF3CD /* ResourceHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76630CE923A1007EF3CD /* ResourceHandle.cpp */; };
+ 514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76640CE923A1007EF3CD /* ResourceHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C767A0CE923A1007EF3CD /* ResourceHandleClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76650CE923A1007EF3CD /* ResourceHandleClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C767B0CE923A1007EF3CD /* ResourceHandleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76660CE923A1007EF3CD /* ResourceHandleInternal.h */; };
+ 514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76670CE923A1007EF3CD /* ResourceRequestBase.cpp */; };
+ 514C767D0CE923A1007EF3CD /* ResourceRequestBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C76680CE923A1007EF3CD /* ResourceRequestBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 514C767E0CE923A1007EF3CD /* ResourceResponseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */; };
+ 514C767F0CE923A1007EF3CD /* ResourceResponseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 515B03990CD1642A00B7EA9C /* SQLStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 515B03970CD1642A00B7EA9C /* SQLStatement.h */; };
+ 515B039A0CD1642A00B7EA9C /* SQLStatement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515B03980CD1642A00B7EA9C /* SQLStatement.cpp */; };
5160300B0CC4251200C8AC25 /* FileSystemPOSIX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5160300A0CC4251200C8AC25 /* FileSystemPOSIX.cpp */; };
5160306C0CC4362300C8AC25 /* FileSystemCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5160306B0CC4362300C8AC25 /* FileSystemCF.cpp */; };
5160F3BC0B0A99C900C1D2AF /* CachedPageMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160F3BB0B0A99C900C1D2AF /* CachedPageMac.mm */; };
5160F4980B0AA75F00C1D2AF /* HistoryItemMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */; };
+ 516BB7930CE91E6800512F79 /* JSSVGPointListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516BB7910CE91E6800512F79 /* JSSVGPointListCustom.cpp */; };
+ 516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */; };
51741D0F0B07259A00ED442C /* BackForwardList.h in Headers */ = {isa = PBXBuildFile; fileRef = 51741D0B0B07259A00ED442C /* BackForwardList.h */; settings = {ATTRIBUTES = (Private, ); }; };
51741D100B07259A00ED442C /* BackForwardList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51741D0C0B07259A00ED442C /* BackForwardList.cpp */; };
51741D110B07259A00ED442C /* HistoryItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 51741D0D0B07259A00ED442C /* HistoryItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
5196116A0CAC56570010A80C /* Database.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5196115E0CAC56570010A80C /* Database.cpp */; };
5196116B0CAC56570010A80C /* Database.h in Headers */ = {isa = PBXBuildFile; fileRef = 5196115F0CAC56570010A80C /* Database.h */; };
5196116D0CAC56570010A80C /* DatabaseThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 519611610CAC56570010A80C /* DatabaseThread.cpp */; };
- 519611710CAC56570010A80C /* SQLCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 519611650CAC56570010A80C /* SQLCallback.h */; };
519611730CAC56570010A80C /* SQLResultSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 519611670CAC56570010A80C /* SQLResultSet.cpp */; };
519611740CAC56570010A80C /* SQLResultSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 519611680CAC56570010A80C /* SQLResultSet.h */; };
519611780CAC56A80010A80C /* DatabaseThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 519611620CAC56570010A80C /* DatabaseThread.h */; };
51E1ECC30C91C90400DC255B /* PageURLRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E1ECBD0C91C90400DC255B /* PageURLRecord.h */; };
51E4ADB60C42B4CF0042BC55 /* FTPDirectoryDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51E4ADB20C42B4CF0042BC55 /* FTPDirectoryDocument.cpp */; };
51E4ADB70C42B4CF0042BC55 /* FTPDirectoryDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E4ADB30C42B4CF0042BC55 /* FTPDirectoryDocument.h */; };
- 51EC054F0CC6A615001DA88F /* DatabaseCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC054E0CC6A615001DA88F /* DatabaseCallback.h */; };
- 51EC05510CC6ACBA001DA88F /* DatabaseCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC05500CC6ACBA001DA88F /* DatabaseCallback.cpp */; };
+ 51EC92590CE90DB400F90308 /* SQLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC92570CE90DB400F90308 /* SQLError.h */; };
+ 51EC925A0CE90DB400F90308 /* SQLError.idl in Resources */ = {isa = PBXBuildFile; fileRef = 51EC92580CE90DB400F90308 /* SQLError.idl */; };
+ 51EC92630CE90DD400F90308 /* JSCustomSQLStatementCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC925B0CE90DD400F90308 /* JSCustomSQLStatementCallback.cpp */; };
+ 51EC92640CE90DD400F90308 /* JSCustomSQLStatementCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC925C0CE90DD400F90308 /* JSCustomSQLStatementCallback.h */; };
+ 51EC92650CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */; };
+ 51EC92660CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC925E0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.h */; };
+ 51EC92670CE90DD400F90308 /* JSCustomSQLTransactionCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC925F0CE90DD400F90308 /* JSCustomSQLTransactionCallback.cpp */; };
+ 51EC92680CE90DD400F90308 /* JSCustomSQLTransactionCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC92600CE90DD400F90308 /* JSCustomSQLTransactionCallback.h */; };
+ 51EC92690CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51EC92610CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.cpp */; };
+ 51EC926A0CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EC92620CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.h */; };
550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 550A0BC7085F6039007353D6 /* QualifiedName.cpp */; };
550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */ = {isa = PBXBuildFile; fileRef = 550A0BC8085F6039007353D6 /* QualifiedName.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */; };
650F53DC09D15DDA00C9B0C8 /* CSSGrammar.h in Headers */ = {isa = PBXBuildFile; fileRef = 650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */; };
650F53DD09D15DDF00C9B0C8 /* CSSGrammar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6565814409D13043000E61D7 /* CSSGrammar.cpp */; };
- 651888880AFF3BF700164720 /* ResourceError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651888860AFF3BF700164720 /* ResourceError.cpp */; };
- 651888890AFF3BF700164720 /* ResourceError.h in Headers */ = {isa = PBXBuildFile; fileRef = 651888870AFF3BF700164720 /* ResourceError.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 6518888B0AFF3C1400164720 /* ResourceErrorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6518888A0AFF3C1400164720 /* ResourceErrorMac.mm */; };
651B4D8509AC83370029F1EF /* DeprecatedStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */; };
651B4D8609AC83370029F1EF /* DeprecatedStringList.h in Headers */ = {isa = PBXBuildFile; fileRef = 651B4D8409AC83370029F1EF /* DeprecatedStringList.h */; };
651B4D8F09AC859F0029F1EF /* DeprecatedStringListMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 651B4D8E09AC859F0029F1EF /* DeprecatedStringListMac.mm */; };
6550B6A4099DF0270090D781 /* EditingText.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550B69A099DF0270090D781 /* EditingText.h */; };
6550B6A5099DF0270090D781 /* Text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6550B69B099DF0270090D781 /* Text.cpp */; };
6550B6A6099DF0270090D781 /* Text.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550B69C099DF0270090D781 /* Text.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
656580F409D12B20000E61D7 /* CSSPropertyNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 656580EF09D12B20000E61D7 /* CSSPropertyNames.h */; };
6565815109D13043000E61D7 /* CSSValueKeywords.h in Headers */ = {isa = PBXBuildFile; fileRef = 6565814809D13043000E61D7 /* CSSValueKeywords.h */; };
656581B209D14EE6000E61D7 /* UserAgentStyleSheets.h in Headers */ = {isa = PBXBuildFile; fileRef = 656581AE09D14EE6000E61D7 /* UserAgentStyleSheets.h */; };
656581FE09D1508D000E61D7 /* SVGElementFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 656581E709D1508D000E61D7 /* SVGElementFactory.h */; };
6565820009D1508D000E61D7 /* SVGNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 656581E909D1508D000E61D7 /* SVGNames.h */; };
6565820209D1508D000E61D7 /* XLinkNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 656581EB09D1508D000E61D7 /* XLinkNames.h */; };
- 656B84E00AEA1D3100A095B4 /* ResourceHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 656B84DC0AEA1D3100A095B4 /* ResourceHandle.cpp */; };
- 656B84E20AEA1D3100A095B4 /* ResourceHandleClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 656B84DE0AEA1D3100A095B4 /* ResourceHandleClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 656B84E30AEA1D3100A095B4 /* ResourceHandleInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 656B84DF0AEA1D3100A095B4 /* ResourceHandleInternal.h */; };
- 656B84EB0AEA1DDA00A095B4 /* ResourceHandleMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 656B84EA0AEA1DDA00A095B4 /* ResourceHandleMac.mm */; };
- 656B85380AEA1F9A00A095B4 /* ResourceHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = 656B85370AEA1F9A00A095B4 /* ResourceHandle.h */; settings = {ATTRIBUTES = (Private, ); }; };
656D37320ADBA5DE00A4554D /* LoaderNSURLExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 656D371A0ADBA5DE00A4554D /* LoaderNSURLExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
656D37330ADBA5DE00A4554D /* LoaderNSURLExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = 656D371B0ADBA5DE00A4554D /* LoaderNSURLExtras.m */; };
656D37360ADBA5DE00A4554D /* DocumentLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 656D371E0ADBA5DE00A4554D /* DocumentLoader.h */; settings = {ATTRIBUTES = (Private, ); }; };
6582A16309999D6D00BEEB6D /* SystemTimeMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6582A15509999D6D00BEEB6D /* SystemTimeMac.cpp */; };
6582A17809999EA000BEEB6D /* DeprecatedStringMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6582A17709999EA000BEEB6D /* DeprecatedStringMac.mm */; };
658436860AE01B7400E53753 /* FrameLoadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 658436850AE01B7400E53753 /* FrameLoadRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 6588216C0AF4CE1200F01D1F /* ResourceResponseMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */; };
6593923709AE4346002C531F /* KURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6593923509AE4346002C531F /* KURL.cpp */; };
6593923809AE4346002C531F /* KURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 6593923609AE4346002C531F /* KURL.h */; settings = {ATTRIBUTES = (Private, ); }; };
6593923A09AE435C002C531F /* KURLMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6593923909AE435C002C531F /* KURLMac.mm */; };
65CBFEF90974F607001DAC25 /* FrameView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65CBFEF70974F607001DAC25 /* FrameView.cpp */; };
65CBFEFA0974F607001DAC25 /* FrameView.h in Headers */ = {isa = PBXBuildFile; fileRef = 65CBFEF80974F607001DAC25 /* FrameView.h */; settings = {ATTRIBUTES = (Private, ); }; };
65D1C1CA09932B22000CB324 /* Plugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 65D1C1C909932B22000CB324 /* Plugin.h */; };
- 65DAD9FC0AFD86B400CE53ED /* FormData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65DAD9FA0AFD86B400CE53ED /* FormData.cpp */; };
- 65DADA000AFD86BF00CE53ED /* FormDataStreamMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DAD9FE0AFD86BF00CE53ED /* FormDataStreamMac.h */; };
- 65DADA010AFD86BF00CE53ED /* FormDataStreamMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65DAD9FF0AFD86BF00CE53ED /* FormDataStreamMac.mm */; };
- 65DADA180AFD878000CE53ED /* FormData.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DADA170AFD878000CE53ED /* FormData.h */; settings = {ATTRIBUTES = (Private, ); }; };
65DF31DA09D1C123000BE325 /* JSAttr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65DF31D809D1C122000BE325 /* JSAttr.cpp */; };
65DF31DB09D1C123000BE325 /* JSAttr.h in Headers */ = {isa = PBXBuildFile; fileRef = 65DF31D909D1C123000BE325 /* JSAttr.h */; };
65DF31F309D1CC60000BE325 /* JSCharacterData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 65DF31DF09D1CC60000BE325 /* JSCharacterData.cpp */; };
93CD4FE30995F9EA007ECC97 /* StringImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93CD4FDC0995F9EA007ECC97 /* StringImpl.cpp */; };
93CD4FE40995F9EA007ECC97 /* StringImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CD4FDD0995F9EA007ECC97 /* StringImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
93CD4FEC0995FD2A007ECC97 /* PlatformString.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CD4FEB0995FD2A007ECC97 /* PlatformString.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 93CDDE280C239A4800CD57AE /* ResourceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CDDE270C239A4800CD57AE /* ResourceRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 93D82A490C28CF1E00FD703D /* ResourceRequestBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93D82A470C28CF1E00FD703D /* ResourceRequestBase.cpp */; };
- 93D82A4A0C28CF1E00FD703D /* ResourceRequestBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D82A480C28CF1E00FD703D /* ResourceRequestBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
93E227E00AF589AD00D48324 /* DocumentLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93E227DB0AF589AD00D48324 /* DocumentLoader.cpp */; };
93E227E10AF589AD00D48324 /* MainResourceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93E227DC0AF589AD00D48324 /* MainResourceLoader.cpp */; };
93E227E20AF589AD00D48324 /* NetscapePlugInStreamLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93E227DD0AF589AD00D48324 /* NetscapePlugInStreamLoader.cpp */; };
ABDDFE7A0A5C6E7000A3E11D /* RenderMenuList.h in Headers */ = {isa = PBXBuildFile; fileRef = ABDDFE740A5C6E7000A3E11D /* RenderMenuList.h */; };
B20111070AB7740500DB0E68 /* JSSVGAElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B20111050AB7740500DB0E68 /* JSSVGAElement.cpp */; };
B20111080AB7740500DB0E68 /* JSSVGAElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B20111060AB7740500DB0E68 /* JSSVGAElement.h */; };
- B2080A120B3CA3B600120852 /* JSSVGPointListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2080A110B3CA3B600120852 /* JSSVGPointListCustom.cpp */; };
B20964BF0AB76EF600E4C740 /* SVGAngle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B20964BD0AB76EF600E4C740 /* SVGAngle.cpp */; };
B20964C00AB76EF600E4C740 /* SVGAngle.h in Headers */ = {isa = PBXBuildFile; fileRef = B20964BE0AB76EF600E4C740 /* SVGAngle.h */; };
B21127A60B3186770009BE53 /* JSSVGPODTypeWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = B21127A50B3186770009BE53 /* JSSVGPODTypeWrapper.h */; };
B27535820B053814002CE64F /* Pen.h in Headers */ = {isa = PBXBuildFile; fileRef = B27535550B053814002CE64F /* Pen.h */; };
B275358E0B053A66002CE64F /* IconMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B275358D0B053A66002CE64F /* IconMac.mm */; };
B277B4040B22F37C0004BEC6 /* GraphicsContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */; };
- B287B22E0CE66A820054D390 /* UnicodeRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B287B22C0CE66A820054D390 /* UnicodeRange.cpp */; };
- B287B22F0CE66A820054D390 /* UnicodeRange.h in Headers */ = {isa = PBXBuildFile; fileRef = B287B22D0CE66A820054D390 /* UnicodeRange.h */; };
B297BC700B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */; };
B2A015A80AF6CD53006BCE0E /* GraphicsContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */; };
B2A015A90AF6CD53006BCE0E /* GraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A015930AF6CD53006BCE0E /* GraphicsContext.h */; };
E14843D60A6754A6007E4D39 /* TextCodecMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E14843910A6752BF007E4D39 /* TextCodecMac.cpp */; };
E15863990CD10B730066E2C9 /* TextCodecUserDefined.h in Headers */ = {isa = PBXBuildFile; fileRef = E15863970CD10B730066E2C9 /* TextCodecUserDefined.h */; };
E158639A0CD10B730066E2C9 /* TextCodecUserDefined.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E15863980CD10B730066E2C9 /* TextCodecUserDefined.cpp */; };
- E1D8E3160B29E39C00F4BAF6 /* HTTPParsers.h in Headers */ = {isa = PBXBuildFile; fileRef = E1D8E3150B29E39C00F4BAF6 /* HTTPParsers.h */; };
- E1D8E31A0B29E3B600F4BAF6 /* HTTPParsers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1D8E3190B29E3B600F4BAF6 /* HTTPParsers.cpp */; };
E1E6EEA40B628DA8005F2F70 /* JSHTMLSelectElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1E6EEA30B628DA8005F2F70 /* JSHTMLSelectElement.cpp */; };
E1E6EEA80B628DB3005F2F70 /* JSHTMLSelectElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E1E6EEA70B628DB3005F2F70 /* JSHTMLSelectElement.h */; };
E1EBBBD40AAC9B87001FE8E2 /* CSSCharsetRule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EBBBD30AAC9B87001FE8E2 /* CSSCharsetRule.cpp */; };
ED501DC60B249F2900AE18D9 /* EditorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED501DC50B249F2900AE18D9 /* EditorMac.mm */; };
EDE3A5000C7A430600956A37 /* ColorMac.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE3A4FF0C7A430600956A37 /* ColorMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
EDEC98030AED7E170059137F /* WebCorePrefix.h in Headers */ = {isa = PBXBuildFile; fileRef = EDEC98020AED7E170059137F /* WebCorePrefix.h */; };
- F9541E5E0CE35B7800CB14EE /* ResourceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F9541E5D0CE35B7800CB14EE /* ResourceResponse.h */; settings = {ATTRIBUTES = (Private, ); }; };
F971E27FD70F4382BC66D792 /* BidiContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A579C284B928484FB9A446BC /* BidiContext.cpp */; };
- F9B9A1AD0CE271DD009F992E /* ResourceResponseBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B9A1AC0CE271DC009F992E /* ResourceResponseBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
- F9B9A1AF0CE271F6009F992E /* ResourceResponseBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F9B9A1AE0CE271F6009F992E /* ResourceResponseBase.cpp */; };
FAE0418F097596C9000540BE /* SVGImageLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE0418D097596C9000540BE /* SVGImageLoader.cpp */; };
FAE04190097596C9000540BE /* SVGImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = FAE0418E097596C9000540BE /* SVGImageLoader.h */; };
/* End PBXBuildFile section */
1A2E6E780CC556D5004A2062 /* SQLiteAuthorizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SQLiteAuthorizer.cpp; path = sql/SQLiteAuthorizer.cpp; sourceTree = "<group>"; };
1A2E6E790CC556D5004A2062 /* SQLiteAuthorizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SQLiteAuthorizer.h; path = sql/SQLiteAuthorizer.h; sourceTree = "<group>"; };
1A2E6FA30CC5795D004A2062 /* ThreadingPthreads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadingPthreads.cpp; path = pthreads/ThreadingPthreads.cpp; sourceTree = "<group>"; };
- 1A2E6FF30CC67855004A2062 /* VersionChangeCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VersionChangeCallback.h; sourceTree = "<group>"; };
- 1A2E6FF70CC6788D004A2062 /* VersionChangeCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VersionChangeCallback.idl; sourceTree = "<group>"; };
- 1A2E6FFC0CC67907004A2062 /* JSVersionChangeCallback.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = JSVersionChangeCallback.cpp; sourceTree = "<group>"; };
- 1A2E6FFD0CC67907004A2062 /* JSVersionChangeCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVersionChangeCallback.h; sourceTree = "<group>"; };
- 1A2E70600CC67CAA004A2062 /* JSCustomVersionChangeCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomVersionChangeCallback.h; sourceTree = "<group>"; };
- 1A2E70610CC67CAA004A2062 /* JSCustomVersionChangeCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomVersionChangeCallback.cpp; sourceTree = "<group>"; };
1A3178920B20A81600316987 /* SubresourceLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SubresourceLoaderClient.h; sourceTree = "<group>"; };
1A494BBB0A122DCD00FDAFC1 /* HTMLElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLElement.idl; sourceTree = "<group>"; };
1A494BF80A122F4400FDAFC1 /* JSHTMLElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLElement.cpp; sourceTree = "<group>"; };
1A750D8B0A90E521000FF215 /* JSNodeIterator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeIterator.cpp; sourceTree = "<group>"; };
1A750D8C0A90E521000FF215 /* JSNodeIterator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSNodeIterator.h; sourceTree = "<group>"; };
1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeIteratorCustom.cpp; sourceTree = "<group>"; };
- 1A750E330A90F89F000FF215 /* JSTreeWalkerCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSTreeWalkerCustom.cpp; sourceTree = "<group>"; };
1A7629D30A07425100989F5B /* XPathGrammar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XPathGrammar.cpp; sourceTree = "<group>"; };
1A7629D40A07425100989F5B /* XPathGrammar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XPathGrammar.h; sourceTree = "<group>"; };
1A762C6B0A074F2600989F5B /* JSXPathEvaluator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathEvaluator.cpp; sourceTree = "<group>"; };
1A762C700A074F2600989F5B /* JSXPathNSResolver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSXPathNSResolver.h; sourceTree = "<group>"; };
1A762C710A074F2600989F5B /* JSXPathResult.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathResult.cpp; sourceTree = "<group>"; };
1A762C720A074F2600989F5B /* JSXPathResult.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSXPathResult.h; sourceTree = "<group>"; };
- 1A7CCAE80CD901A100B7B64E /* SQLError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLError.h; sourceTree = "<group>"; };
- 1A7CCAE90CD901A100B7B64E /* SQLError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLError.idl; sourceTree = "<group>"; };
- 1A7CCAEC0CD901DB00B7B64E /* JSSQLError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLError.cpp; sourceTree = "<group>"; };
- 1A7CCAED0CD901DB00B7B64E /* JSSQLError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLError.h; sourceTree = "<group>"; };
- 1A7CCAFB0CD945DD00B7B64E /* JSCustomSQLStatementCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementCallback.cpp; sourceTree = "<group>"; };
- 1A7CCAFC0CD945DD00B7B64E /* JSCustomSQLStatementCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLStatementCallback.h; sourceTree = "<group>"; };
- 1A7CCAFD0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementErrorCallback.cpp; sourceTree = "<group>"; };
- 1A7CCAFE0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLStatementErrorCallback.h; sourceTree = "<group>"; };
- 1A7CCAFF0CD945DD00B7B64E /* JSCustomSQLTransactionCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLTransactionCallback.cpp; sourceTree = "<group>"; };
- 1A7CCB000CD945DD00B7B64E /* JSCustomSQLTransactionCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLTransactionCallback.h; sourceTree = "<group>"; };
- 1A7CCB010CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLTransactionErrorCallback.cpp; sourceTree = "<group>"; };
- 1A7CCB020CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLTransactionErrorCallback.h; sourceTree = "<group>"; };
1A7CCB0C0CD9462C00B7B64E /* SQLStatementCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLStatementCallback.idl; sourceTree = "<group>"; };
1A7CCB0D0CD9462C00B7B64E /* SQLStatementErrorCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLStatementErrorCallback.idl; sourceTree = "<group>"; };
1A7CCB0E0CD9462C00B7B64E /* SQLTransactionCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLTransactionCallback.idl; sourceTree = "<group>"; };
1A7CCB180CD9469A00B7B64E /* SQLTransactionErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLTransactionErrorCallback.h; sourceTree = "<group>"; };
1A7CCB220CD946FD00B7B64E /* SQLTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLTransaction.h; sourceTree = "<group>"; };
1A7CCB230CD946FD00B7B64E /* SQLTransaction.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLTransaction.idl; sourceTree = "<group>"; };
- 1A7CCB2C0CD9499700B7B64E /* JSSQLTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransaction.cpp; sourceTree = "<group>"; };
- 1A7CCB2D0CD9499700B7B64E /* JSSQLTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLTransaction.h; sourceTree = "<group>"; };
1A820D8F0A13EBA600AF843C /* ImageDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ImageDocument.cpp; sourceTree = "<group>"; };
1A820D900A13EBA600AF843C /* ImageDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ImageDocument.h; sourceTree = "<group>"; };
1A85B17D0A1B183600D8C87C /* HTMLHtmlElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLHtmlElement.idl; sourceTree = "<group>"; };
1AB7FC650A8B92EC00D9D37B /* XPathValue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XPathValue.h; sourceTree = "<group>"; };
1AB7FC660A8B92EC00D9D37B /* XPathVariableReference.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XPathVariableReference.cpp; sourceTree = "<group>"; };
1AB7FC670A8B92EC00D9D37B /* XPathVariableReference.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XPathVariableReference.h; sourceTree = "<group>"; };
+ 1ABFE7520CD968D000FE4834 /* SQLTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLTransaction.cpp; sourceTree = "<group>"; };
1AC694C50A3B1676003F5049 /* PluginDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PluginDocument.cpp; sourceTree = "<group>"; };
1AC694C60A3B1676003F5049 /* PluginDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PluginDocument.h; sourceTree = "<group>"; };
1ACE53DD0A8D18810022947D /* JSDOMParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMParser.cpp; sourceTree = "<group>"; };
1ACE53E60A8D18E70022947D /* XMLSerializer.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = XMLSerializer.idl; sourceTree = "<group>"; };
1ACE53F40A8D19470022947D /* JSXMLSerializer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLSerializer.cpp; sourceTree = "<group>"; };
1ACE53F50A8D19470022947D /* JSXMLSerializer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSXMLSerializer.h; sourceTree = "<group>"; };
+ 1AD2316D0CD269E700C1F194 /* JSSQLTransactionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransactionCustom.cpp; sourceTree = "<group>"; };
1AD51A120CB59CD300953D11 /* DatabaseTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseTracker.h; sourceTree = "<group>"; };
1AD51A130CB59CD300953D11 /* DatabaseTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseTracker.cpp; sourceTree = "<group>"; };
1AE2A9F00A1CDA5700B42B25 /* HTMLAreaElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = HTMLAreaElement.idl; sourceTree = "<group>"; };
1AE82F8E0CAAFA9D002237AE /* JSDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDatabase.h; sourceTree = "<group>"; };
1AE82FEA0CAB07EE002237AE /* JSSQLResultSet.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = JSSQLResultSet.cpp; sourceTree = "<group>"; };
1AE82FEB0CAB07EE002237AE /* JSSQLResultSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLResultSet.h; sourceTree = "<group>"; };
- 1AE8301B0CAB0999002237AE /* JSSQLCallback.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = JSSQLCallback.cpp; sourceTree = "<group>"; };
- 1AE8301C0CAB0999002237AE /* JSSQLCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSQLCallback.h; sourceTree = "<group>"; };
1AE830420CAB0ED1002237AE /* JSDatabaseCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDatabaseCustom.cpp; sourceTree = "<group>"; };
- 1AE831040CAB166E002237AE /* JSCustomSQLCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLCallback.h; sourceTree = "<group>"; };
- 1AE831050CAB166E002237AE /* JSCustomSQLCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLCallback.cpp; sourceTree = "<group>"; };
1AFE117B0CBFFB36003017FA /* SQLResultSetRowList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLResultSetRowList.cpp; sourceTree = "<group>"; };
1AFE117C0CBFFB36003017FA /* SQLResultSetRowList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLResultSetRowList.h; sourceTree = "<group>"; };
1AFE118C0CBFFC4E003017FA /* SQLResultSetRowList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLResultSetRowList.idl; sourceTree = "<group>"; };
4E1959280A39DACC00220FE5 /* MediaQueryExp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MediaQueryExp.h; sourceTree = "<group>"; };
510184670B08602A004A825F /* CachedPage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedPage.h; sourceTree = "<group>"; };
510184680B08602A004A825F /* CachedPage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedPage.cpp; sourceTree = "<group>"; };
- 510F73590B56C08800A3002A /* AuthenticationChallenge.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AuthenticationChallenge.cpp; sourceTree = "<group>"; };
- 510F735A0B56C08800A3002A /* AuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallenge.h; sourceTree = "<group>"; };
- 510F735B0B56C08800A3002A /* Credential.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Credential.cpp; sourceTree = "<group>"; };
- 510F735C0B56C08800A3002A /* Credential.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Credential.h; sourceTree = "<group>"; };
- 510F735D0B56C08800A3002A /* ProtectionSpace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ProtectionSpace.cpp; sourceTree = "<group>"; };
- 510F735E0B56C08800A3002A /* ProtectionSpace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ProtectionSpace.h; sourceTree = "<group>"; };
5126E6B90A2E3B12005C29FA /* IconDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IconDatabase.cpp; sourceTree = "<group>"; };
5126E6BA0A2E3B12005C29FA /* IconDatabase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IconDatabase.h; sourceTree = "<group>"; };
- 513BF1070B4F558900CCFECE /* AuthenticationMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationMac.h; sourceTree = "<group>"; };
- 513BF1270B4F57DC00CCFECE /* AuthenticationMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AuthenticationMac.mm; sourceTree = "<group>"; };
513F14510AB634C400094DDF /* IconLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = IconLoader.cpp; sourceTree = "<group>"; };
513F14520AB634C400094DDF /* IconLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IconLoader.h; sourceTree = "<group>"; };
+ 514185EC0CD65F0400763C99 /* ChangeVersionWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChangeVersionWrapper.h; sourceTree = "<group>"; };
+ 514185ED0CD65F0400763C99 /* ChangeVersionWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChangeVersionWrapper.cpp; sourceTree = "<group>"; };
514AF320BE854014A7DA49FB /* BidiContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BidiContext.h; sourceTree = "<group>"; };
514B3F720C722047000530DF /* FileSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileSystem.h; sourceTree = "<group>"; };
514B3F750C722055000530DF /* FileSystemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSystemMac.mm; sourceTree = "<group>"; };
+ 514C762C0CE921F4007EF3CD /* UnicodeRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UnicodeRange.cpp; sourceTree = "<group>"; };
+ 514C762D0CE921F4007EF3CD /* UnicodeRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnicodeRange.h; sourceTree = "<group>"; };
+ 514C76350CE9225E007EF3CD /* JSSQLError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLError.cpp; sourceTree = "<group>"; };
+ 514C76360CE9225E007EF3CD /* JSSQLTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSQLTransaction.cpp; sourceTree = "<group>"; };
+ 514C76420CE9234E007EF3CD /* AuthenticationMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationMac.h; sourceTree = "<group>"; };
+ 514C76430CE9234E007EF3CD /* AuthenticationMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AuthenticationMac.mm; sourceTree = "<group>"; };
+ 514C76440CE9234E007EF3CD /* FormDataStreamMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormDataStreamMac.h; sourceTree = "<group>"; };
+ 514C76450CE9234E007EF3CD /* FormDataStreamMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FormDataStreamMac.mm; sourceTree = "<group>"; };
+ 514C76460CE9234E007EF3CD /* ResourceErrorMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceErrorMac.mm; sourceTree = "<group>"; };
+ 514C76470CE9234E007EF3CD /* ResourceHandleMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceHandleMac.mm; sourceTree = "<group>"; };
+ 514C76480CE9234E007EF3CD /* ResourceRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceRequest.h; sourceTree = "<group>"; };
+ 514C76490CE9234E007EF3CD /* ResourceRequestMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceRequestMac.mm; sourceTree = "<group>"; };
+ 514C764A0CE9234E007EF3CD /* ResourceResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceResponse.h; sourceTree = "<group>"; };
+ 514C764B0CE9234E007EF3CD /* ResourceResponseMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceResponseMac.mm; sourceTree = "<group>"; };
+ 514C76560CE923A1007EF3CD /* AuthenticationChallenge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AuthenticationChallenge.cpp; sourceTree = "<group>"; };
+ 514C76570CE923A1007EF3CD /* AuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AuthenticationChallenge.h; sourceTree = "<group>"; };
+ 514C76580CE923A1007EF3CD /* Credential.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Credential.cpp; sourceTree = "<group>"; };
+ 514C76590CE923A1007EF3CD /* Credential.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Credential.h; sourceTree = "<group>"; };
+ 514C765A0CE923A1007EF3CD /* FormData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormData.cpp; sourceTree = "<group>"; };
+ 514C765B0CE923A1007EF3CD /* FormData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormData.h; sourceTree = "<group>"; };
+ 514C765C0CE923A1007EF3CD /* HTTPHeaderMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPHeaderMap.h; sourceTree = "<group>"; };
+ 514C765D0CE923A1007EF3CD /* HTTPParsers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPParsers.cpp; sourceTree = "<group>"; };
+ 514C765E0CE923A1007EF3CD /* HTTPParsers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPParsers.h; sourceTree = "<group>"; };
+ 514C765F0CE923A1007EF3CD /* ProtectionSpace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ProtectionSpace.cpp; sourceTree = "<group>"; };
+ 514C76600CE923A1007EF3CD /* ProtectionSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProtectionSpace.h; sourceTree = "<group>"; };
+ 514C76610CE923A1007EF3CD /* ResourceError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceError.cpp; sourceTree = "<group>"; };
+ 514C76620CE923A1007EF3CD /* ResourceError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceError.h; sourceTree = "<group>"; };
+ 514C76630CE923A1007EF3CD /* ResourceHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceHandle.cpp; sourceTree = "<group>"; };
+ 514C76640CE923A1007EF3CD /* ResourceHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandle.h; sourceTree = "<group>"; };
+ 514C76650CE923A1007EF3CD /* ResourceHandleClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandleClient.h; sourceTree = "<group>"; };
+ 514C76660CE923A1007EF3CD /* ResourceHandleInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceHandleInternal.h; sourceTree = "<group>"; };
+ 514C76670CE923A1007EF3CD /* ResourceRequestBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceRequestBase.cpp; sourceTree = "<group>"; };
+ 514C76680CE923A1007EF3CD /* ResourceRequestBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceRequestBase.h; sourceTree = "<group>"; };
+ 514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceResponseBase.cpp; sourceTree = "<group>"; };
+ 514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceResponseBase.h; sourceTree = "<group>"; };
5150C2A10702629000AF642C /* WebDashboardRegion.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebDashboardRegion.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
5150C2A50702629800AF642C /* WebDashboardRegion.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebDashboardRegion.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ 515B03970CD1642A00B7EA9C /* SQLStatement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLStatement.h; sourceTree = "<group>"; };
+ 515B03980CD1642A00B7EA9C /* SQLStatement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLStatement.cpp; sourceTree = "<group>"; };
5160300A0CC4251200C8AC25 /* FileSystemPOSIX.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemPOSIX.cpp; sourceTree = "<group>"; };
5160306B0CC4362300C8AC25 /* FileSystemCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemCF.cpp; sourceTree = "<group>"; };
5160F3BB0B0A99C900C1D2AF /* CachedPageMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CachedPageMac.mm; path = mac/CachedPageMac.mm; sourceTree = "<group>"; };
5160F4970B0AA75F00C1D2AF /* HistoryItemMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = HistoryItemMac.mm; path = mac/HistoryItemMac.mm; sourceTree = "<group>"; };
+ 516BB7910CE91E6800512F79 /* JSSVGPointListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPointListCustom.cpp; sourceTree = "<group>"; };
+ 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTreeWalkerCustom.cpp; sourceTree = "<group>"; };
51741D0B0B07259A00ED442C /* BackForwardList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackForwardList.h; sourceTree = "<group>"; };
51741D0C0B07259A00ED442C /* BackForwardList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BackForwardList.cpp; sourceTree = "<group>"; };
51741D0D0B07259A00ED442C /* HistoryItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HistoryItem.h; sourceTree = "<group>"; };
519611600CAC56570010A80C /* Database.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Database.idl; sourceTree = "<group>"; };
519611610CAC56570010A80C /* DatabaseThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseThread.cpp; sourceTree = "<group>"; };
519611620CAC56570010A80C /* DatabaseThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseThread.h; sourceTree = "<group>"; };
- 519611650CAC56570010A80C /* SQLCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLCallback.h; sourceTree = "<group>"; };
- 519611660CAC56570010A80C /* SQLCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLCallback.idl; sourceTree = "<group>"; };
519611670CAC56570010A80C /* SQLResultSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SQLResultSet.cpp; sourceTree = "<group>"; };
519611680CAC56570010A80C /* SQLResultSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLResultSet.h; sourceTree = "<group>"; };
519611690CAC56570010A80C /* SQLResultSet.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLResultSet.idl; sourceTree = "<group>"; };
51E1ECBD0C91C90400DC255B /* PageURLRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageURLRecord.h; sourceTree = "<group>"; };
51E4ADB20C42B4CF0042BC55 /* FTPDirectoryDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FTPDirectoryDocument.cpp; sourceTree = "<group>"; };
51E4ADB30C42B4CF0042BC55 /* FTPDirectoryDocument.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPDirectoryDocument.h; sourceTree = "<group>"; };
- 51EC054E0CC6A615001DA88F /* DatabaseCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabaseCallback.h; sourceTree = "<group>"; };
- 51EC05500CC6ACBA001DA88F /* DatabaseCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DatabaseCallback.cpp; sourceTree = "<group>"; };
+ 51EC92570CE90DB400F90308 /* SQLError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQLError.h; sourceTree = "<group>"; };
+ 51EC92580CE90DB400F90308 /* SQLError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SQLError.idl; sourceTree = "<group>"; };
+ 51EC925B0CE90DD400F90308 /* JSCustomSQLStatementCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementCallback.cpp; sourceTree = "<group>"; };
+ 51EC925C0CE90DD400F90308 /* JSCustomSQLStatementCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLStatementCallback.h; sourceTree = "<group>"; };
+ 51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLStatementErrorCallback.cpp; sourceTree = "<group>"; };
+ 51EC925E0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLStatementErrorCallback.h; sourceTree = "<group>"; };
+ 51EC925F0CE90DD400F90308 /* JSCustomSQLTransactionCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLTransactionCallback.cpp; sourceTree = "<group>"; };
+ 51EC92600CE90DD400F90308 /* JSCustomSQLTransactionCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLTransactionCallback.h; sourceTree = "<group>"; };
+ 51EC92610CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomSQLTransactionErrorCallback.cpp; sourceTree = "<group>"; };
+ 51EC92620CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomSQLTransactionErrorCallback.h; sourceTree = "<group>"; };
51F6A3D50663BF04004D2919 /* HTMLCanvasElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLCanvasElement.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
51F6A3D60663BF04004D2919 /* HTMLCanvasElement.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = HTMLCanvasElement.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
550A0BC7085F6039007353D6 /* QualifiedName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QualifiedName.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
55998A5B052B59CC0017A6C1 /* WebCoreAXObject.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCoreAXObject.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
55998A5C052B59CC0017A6C1 /* AXObjectCache.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = AXObjectCache.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
55998A5D052B59CC0017A6C1 /* AXObjectCacheMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
- 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceRequestMac.mm; sourceTree = "<group>"; };
650F53DB09D15DDA00C9B0C8 /* CSSGrammar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSGrammar.h; sourceTree = "<group>"; };
- 651888860AFF3BF700164720 /* ResourceError.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceError.cpp; sourceTree = "<group>"; };
- 651888870AFF3BF700164720 /* ResourceError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceError.h; sourceTree = "<group>"; };
- 6518888A0AFF3C1400164720 /* ResourceErrorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceErrorMac.mm; sourceTree = "<group>"; };
651B4D8309AC83370029F1EF /* DeprecatedStringList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DeprecatedStringList.cpp; sourceTree = "<group>"; };
651B4D8409AC83370029F1EF /* DeprecatedStringList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DeprecatedStringList.h; sourceTree = "<group>"; };
651B4D8E09AC859F0029F1EF /* DeprecatedStringListMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DeprecatedStringListMac.mm; sourceTree = "<group>"; };
6550B69A099DF0270090D781 /* EditingText.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = EditingText.h; sourceTree = "<group>"; };
6550B69B099DF0270090D781 /* Text.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Text.cpp; sourceTree = "<group>"; };
6550B69C099DF0270090D781 /* Text.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Text.h; sourceTree = "<group>"; };
- 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HTTPHeaderMap.h; sourceTree = "<group>"; };
656580ED09D12B20000E61D7 /* CSSPropertyNames.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = CSSPropertyNames.c; sourceTree = "<group>"; };
656580EE09D12B20000E61D7 /* CSSPropertyNames.gperf */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSPropertyNames.gperf; sourceTree = "<group>"; };
656580EF09D12B20000E61D7 /* CSSPropertyNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CSSPropertyNames.h; sourceTree = "<group>"; };
656581E909D1508D000E61D7 /* SVGNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGNames.h; sourceTree = "<group>"; };
656581EA09D1508D000E61D7 /* XLinkNames.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = XLinkNames.cpp; sourceTree = "<group>"; };
656581EB09D1508D000E61D7 /* XLinkNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XLinkNames.h; sourceTree = "<group>"; };
- 656B84DC0AEA1D3100A095B4 /* ResourceHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceHandle.cpp; sourceTree = "<group>"; };
- 656B84DE0AEA1D3100A095B4 /* ResourceHandleClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceHandleClient.h; sourceTree = "<group>"; };
- 656B84DF0AEA1D3100A095B4 /* ResourceHandleInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceHandleInternal.h; sourceTree = "<group>"; };
- 656B84EA0AEA1DDA00A095B4 /* ResourceHandleMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceHandleMac.mm; sourceTree = "<group>"; };
- 656B85370AEA1F9A00A095B4 /* ResourceHandle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceHandle.h; sourceTree = "<group>"; };
656D371A0ADBA5DE00A4554D /* LoaderNSURLExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LoaderNSURLExtras.h; sourceTree = "<group>"; };
656D371B0ADBA5DE00A4554D /* LoaderNSURLExtras.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; path = LoaderNSURLExtras.m; sourceTree = "<group>"; };
656D371E0ADBA5DE00A4554D /* DocumentLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DocumentLoader.h; sourceTree = "<group>"; };
6582A15509999D6D00BEEB6D /* SystemTimeMac.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SystemTimeMac.cpp; sourceTree = "<group>"; };
6582A17709999EA000BEEB6D /* DeprecatedStringMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DeprecatedStringMac.mm; sourceTree = "<group>"; };
658436850AE01B7400E53753 /* FrameLoadRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FrameLoadRequest.h; sourceTree = "<group>"; };
- 658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ResourceResponseMac.mm; sourceTree = "<group>"; };
6593923509AE4346002C531F /* KURL.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = KURL.cpp; sourceTree = "<group>"; };
6593923609AE4346002C531F /* KURL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = KURL.h; sourceTree = "<group>"; };
6593923909AE435C002C531F /* KURLMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = KURLMac.mm; sourceTree = "<group>"; };
65CBFEF70974F607001DAC25 /* FrameView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FrameView.cpp; sourceTree = "<group>"; };
65CBFEF80974F607001DAC25 /* FrameView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FrameView.h; sourceTree = "<group>"; };
65D1C1C909932B22000CB324 /* Plugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Plugin.h; sourceTree = "<group>"; };
- 65DAD9FA0AFD86B400CE53ED /* FormData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FormData.cpp; sourceTree = "<group>"; };
- 65DAD9FE0AFD86BF00CE53ED /* FormDataStreamMac.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FormDataStreamMac.h; sourceTree = "<group>"; };
- 65DAD9FF0AFD86BF00CE53ED /* FormDataStreamMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = FormDataStreamMac.mm; sourceTree = "<group>"; };
- 65DADA170AFD878000CE53ED /* FormData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FormData.h; sourceTree = "<group>"; };
65DF31D809D1C122000BE325 /* JSAttr.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSAttr.cpp; sourceTree = "<group>"; };
65DF31D909D1C123000BE325 /* JSAttr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSAttr.h; sourceTree = "<group>"; };
65DF31DF09D1CC60000BE325 /* JSCharacterData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSCharacterData.cpp; sourceTree = "<group>"; };
93CD4FDC0995F9EA007ECC97 /* StringImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringImpl.cpp; sourceTree = "<group>"; };
93CD4FDD0995F9EA007ECC97 /* StringImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringImpl.h; sourceTree = "<group>"; };
93CD4FEB0995FD2A007ECC97 /* PlatformString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformString.h; sourceTree = "<group>"; };
- 93CDDE270C239A4800CD57AE /* ResourceRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceRequest.h; sourceTree = "<group>"; };
- 93D82A470C28CF1E00FD703D /* ResourceRequestBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceRequestBase.cpp; sourceTree = "<group>"; };
- 93D82A480C28CF1E00FD703D /* ResourceRequestBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceRequestBase.h; sourceTree = "<group>"; };
93E227DB0AF589AD00D48324 /* DocumentLoader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = DocumentLoader.cpp; sourceTree = "<group>"; };
93E227DC0AF589AD00D48324 /* MainResourceLoader.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = MainResourceLoader.cpp; sourceTree = "<group>"; };
93E227DD0AF589AD00D48324 /* NetscapePlugInStreamLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetscapePlugInStreamLoader.cpp; sourceTree = "<group>"; };
ABDDFE740A5C6E7000A3E11D /* RenderMenuList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderMenuList.h; sourceTree = "<group>"; };
B20111050AB7740500DB0E68 /* JSSVGAElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGAElement.cpp; sourceTree = "<group>"; };
B20111060AB7740500DB0E68 /* JSSVGAElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGAElement.h; sourceTree = "<group>"; };
- B2080A110B3CA3B600120852 /* JSSVGPointListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPointListCustom.cpp; sourceTree = "<group>"; };
B20964BD0AB76EF600E4C740 /* SVGAngle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAngle.cpp; sourceTree = "<group>"; };
B20964BE0AB76EF600E4C740 /* SVGAngle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGAngle.h; sourceTree = "<group>"; };
B21127A50B3186770009BE53 /* JSSVGPODTypeWrapper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGPODTypeWrapper.h; sourceTree = "<group>"; };
B27535550B053814002CE64F /* Pen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Pen.h; sourceTree = "<group>"; };
B275358D0B053A66002CE64F /* IconMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = IconMac.mm; sourceTree = "<group>"; };
B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = GraphicsContextMac.mm; sourceTree = "<group>"; };
- B287B22C0CE66A820054D390 /* UnicodeRange.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = UnicodeRange.cpp; sourceTree = "<group>"; };
- B287B22D0CE66A820054D390 /* UnicodeRange.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = UnicodeRange.h; sourceTree = "<group>"; };
B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPathSegListCustom.cpp; sourceTree = "<group>"; };
B2A015920AF6CD53006BCE0E /* GraphicsContext.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext.cpp; sourceTree = "<group>"; };
B2A015930AF6CD53006BCE0E /* GraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GraphicsContext.h; sourceTree = "<group>"; };
E14843910A6752BF007E4D39 /* TextCodecMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = TextCodecMac.cpp; path = mac/TextCodecMac.cpp; sourceTree = "<group>"; };
E15863970CD10B730066E2C9 /* TextCodecUserDefined.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCodecUserDefined.h; sourceTree = "<group>"; };
E15863980CD10B730066E2C9 /* TextCodecUserDefined.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCodecUserDefined.cpp; sourceTree = "<group>"; };
- E1D8E3150B29E39C00F4BAF6 /* HTTPParsers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPParsers.h; sourceTree = "<group>"; };
- E1D8E3190B29E3B600F4BAF6 /* HTTPParsers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTTPParsers.cpp; sourceTree = "<group>"; };
E1E6EEA30B628DA8005F2F70 /* JSHTMLSelectElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLSelectElement.cpp; sourceTree = "<group>"; };
E1E6EEA70B628DB3005F2F70 /* JSHTMLSelectElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = JSHTMLSelectElement.h; sourceTree = "<group>"; };
E1EBBBD30AAC9B87001FE8E2 /* CSSCharsetRule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSCharsetRule.cpp; sourceTree = "<group>"; };
F5C2869402846DCD018635CA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
F5C2869502846DCD018635CA /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
F8216299029F4FB501000131 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- F9541E5D0CE35B7800CB14EE /* ResourceResponse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceResponse.h; sourceTree = "<group>"; };
- F9B9A1AC0CE271DC009F992E /* ResourceResponseBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ResourceResponseBase.h; sourceTree = "<group>"; };
- F9B9A1AE0CE271F6009F992E /* ResourceResponseBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ResourceResponseBase.cpp; sourceTree = "<group>"; };
FAE0418D097596C9000540BE /* SVGImageLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGImageLoader.cpp; sourceTree = "<group>"; };
FAE0418E097596C9000540BE /* SVGImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGImageLoader.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
name = sql;
sourceTree = "<group>";
};
- 1A7CCB140CD9463100B7B64E /* To Be Removed */ = {
- isa = PBXGroup;
- children = (
- 519611650CAC56570010A80C /* SQLCallback.h */,
- 519611660CAC56570010A80C /* SQLCallback.idl */,
- 1A2E6FF30CC67855004A2062 /* VersionChangeCallback.h */,
- 1A2E6FF70CC6788D004A2062 /* VersionChangeCallback.idl */,
- );
- name = "To Be Removed";
- sourceTree = "<group>";
- };
1AE42F670AA4B8CB00C8612D /* cf */ = {
isa = PBXGroup;
children = (
1AE82EC90CAAE177002237AE /* storage */ = {
isa = PBXGroup;
children = (
- 1A7CCB140CD9463100B7B64E /* To Be Removed */,
+ 514185ED0CD65F0400763C99 /* ChangeVersionWrapper.cpp */,
+ 514185EC0CD65F0400763C99 /* ChangeVersionWrapper.h */,
5196115E0CAC56570010A80C /* Database.cpp */,
5196115F0CAC56570010A80C /* Database.h */,
519611600CAC56570010A80C /* Database.idl */,
51A45B550CAD7FD7000D2BE9 /* DatabaseAuthorizer.cpp */,
51A45B540CAD7FD7000D2BE9 /* DatabaseAuthorizer.h */,
- 51EC05500CC6ACBA001DA88F /* DatabaseCallback.cpp */,
- 51EC054E0CC6A615001DA88F /* DatabaseCallback.h */,
519611E90CAC749C0010A80C /* DatabaseTask.cpp */,
519611E80CAC749C0010A80C /* DatabaseTask.h */,
519611610CAC56570010A80C /* DatabaseThread.cpp */,
519611620CAC56570010A80C /* DatabaseThread.h */,
1AD51A130CB59CD300953D11 /* DatabaseTracker.cpp */,
1AD51A120CB59CD300953D11 /* DatabaseTracker.h */,
- 1A7CCAE80CD901A100B7B64E /* SQLError.h */,
- 1A7CCAE90CD901A100B7B64E /* SQLError.idl */,
+ 51EC92570CE90DB400F90308 /* SQLError.h */,
+ 51EC92580CE90DB400F90308 /* SQLError.idl */,
519611670CAC56570010A80C /* SQLResultSet.cpp */,
519611680CAC56570010A80C /* SQLResultSet.h */,
519611690CAC56570010A80C /* SQLResultSet.idl */,
1AFE117B0CBFFB36003017FA /* SQLResultSetRowList.cpp */,
1AFE117C0CBFFB36003017FA /* SQLResultSetRowList.h */,
1AFE118C0CBFFC4E003017FA /* SQLResultSetRowList.idl */,
+ 515B03980CD1642A00B7EA9C /* SQLStatement.cpp */,
+ 515B03970CD1642A00B7EA9C /* SQLStatement.h */,
1A7CCB150CD9469A00B7B64E /* SQLStatementCallback.h */,
1A7CCB0C0CD9462C00B7B64E /* SQLStatementCallback.idl */,
1A7CCB160CD9469A00B7B64E /* SQLStatementErrorCallback.h */,
1A7CCB0D0CD9462C00B7B64E /* SQLStatementErrorCallback.idl */,
+ 1ABFE7520CD968D000FE4834 /* SQLTransaction.cpp */,
+ 1A7CCB220CD946FD00B7B64E /* SQLTransaction.h */,
+ 1A7CCB230CD946FD00B7B64E /* SQLTransaction.idl */,
1A7CCB170CD9469A00B7B64E /* SQLTransactionCallback.h */,
1A7CCB0E0CD9462C00B7B64E /* SQLTransactionCallback.idl */,
1A7CCB180CD9469A00B7B64E /* SQLTransactionErrorCallback.h */,
1A7CCB0F0CD9462C00B7B64E /* SQLTransactionErrorCallback.idl */,
- 1A7CCB220CD946FD00B7B64E /* SQLTransaction.h */,
- 1A7CCB230CD946FD00B7B64E /* SQLTransaction.idl */,
);
indentWidth = 4;
path = storage;
isa = PBXGroup;
children = (
656B84E70AEA1DAE00A095B4 /* mac */,
- 510F73590B56C08800A3002A /* AuthenticationChallenge.cpp */,
- 510F735A0B56C08800A3002A /* AuthenticationChallenge.h */,
- 510F735B0B56C08800A3002A /* Credential.cpp */,
- 510F735C0B56C08800A3002A /* Credential.h */,
- 65DADA170AFD878000CE53ED /* FormData.h */,
- 65DAD9FA0AFD86B400CE53ED /* FormData.cpp */,
- 651888860AFF3BF700164720 /* ResourceError.cpp */,
- 651888870AFF3BF700164720 /* ResourceError.h */,
- 655A81BD0AEF67E6000975F0 /* HTTPHeaderMap.h */,
- E1D8E3150B29E39C00F4BAF6 /* HTTPParsers.h */,
- E1D8E3190B29E3B600F4BAF6 /* HTTPParsers.cpp */,
- 510F735D0B56C08800A3002A /* ProtectionSpace.cpp */,
- 510F735E0B56C08800A3002A /* ProtectionSpace.h */,
- 656B85370AEA1F9A00A095B4 /* ResourceHandle.h */,
- 656B84DC0AEA1D3100A095B4 /* ResourceHandle.cpp */,
- 656B84DE0AEA1D3100A095B4 /* ResourceHandleClient.h */,
- 656B84DF0AEA1D3100A095B4 /* ResourceHandleInternal.h */,
- 93D82A470C28CF1E00FD703D /* ResourceRequestBase.cpp */,
- 93D82A480C28CF1E00FD703D /* ResourceRequestBase.h */,
- F9B9A1AE0CE271F6009F992E /* ResourceResponseBase.cpp */,
- F9B9A1AC0CE271DC009F992E /* ResourceResponseBase.h */,
+ 514C76560CE923A1007EF3CD /* AuthenticationChallenge.cpp */,
+ 514C76570CE923A1007EF3CD /* AuthenticationChallenge.h */,
+ 514C76580CE923A1007EF3CD /* Credential.cpp */,
+ 514C76590CE923A1007EF3CD /* Credential.h */,
+ 514C765A0CE923A1007EF3CD /* FormData.cpp */,
+ 514C765B0CE923A1007EF3CD /* FormData.h */,
+ 514C765C0CE923A1007EF3CD /* HTTPHeaderMap.h */,
+ 514C765D0CE923A1007EF3CD /* HTTPParsers.cpp */,
+ 514C765E0CE923A1007EF3CD /* HTTPParsers.h */,
+ 514C765F0CE923A1007EF3CD /* ProtectionSpace.cpp */,
+ 514C76600CE923A1007EF3CD /* ProtectionSpace.h */,
+ 514C76610CE923A1007EF3CD /* ResourceError.cpp */,
+ 514C76620CE923A1007EF3CD /* ResourceError.h */,
+ 514C76630CE923A1007EF3CD /* ResourceHandle.cpp */,
+ 514C76640CE923A1007EF3CD /* ResourceHandle.h */,
+ 514C76650CE923A1007EF3CD /* ResourceHandleClient.h */,
+ 514C76660CE923A1007EF3CD /* ResourceHandleInternal.h */,
+ 514C76670CE923A1007EF3CD /* ResourceRequestBase.cpp */,
+ 514C76680CE923A1007EF3CD /* ResourceRequestBase.h */,
+ 514C76690CE923A1007EF3CD /* ResourceResponseBase.cpp */,
+ 514C766A0CE923A1007EF3CD /* ResourceResponseBase.h */,
);
path = network;
sourceTree = "<group>";
656B84E70AEA1DAE00A095B4 /* mac */ = {
isa = PBXGroup;
children = (
- 93CDDE270C239A4800CD57AE /* ResourceRequest.h */,
- F9541E5D0CE35B7800CB14EE /* ResourceResponse.h */,
- 6518888A0AFF3C1400164720 /* ResourceErrorMac.mm */,
- 65DAD9FE0AFD86BF00CE53ED /* FormDataStreamMac.h */,
- 65DAD9FF0AFD86BF00CE53ED /* FormDataStreamMac.mm */,
- 656B84EA0AEA1DDA00A095B4 /* ResourceHandleMac.mm */,
- 650E3F680AF6C168001FA3AD /* ResourceRequestMac.mm */,
- 658821690AF4CE1200F01D1F /* ResourceResponseMac.mm */,
- 513BF1070B4F558900CCFECE /* AuthenticationMac.h */,
- 513BF1270B4F57DC00CCFECE /* AuthenticationMac.mm */,
+ 514C76420CE9234E007EF3CD /* AuthenticationMac.h */,
+ 514C76430CE9234E007EF3CD /* AuthenticationMac.mm */,
+ 514C76440CE9234E007EF3CD /* FormDataStreamMac.h */,
+ 514C76450CE9234E007EF3CD /* FormDataStreamMac.mm */,
+ 514C76460CE9234E007EF3CD /* ResourceErrorMac.mm */,
+ 514C76470CE9234E007EF3CD /* ResourceHandleMac.mm */,
+ 514C76480CE9234E007EF3CD /* ResourceRequest.h */,
+ 514C76490CE9234E007EF3CD /* ResourceRequestMac.mm */,
+ 514C764A0CE9234E007EF3CD /* ResourceResponse.h */,
+ 514C764B0CE9234E007EF3CD /* ResourceResponseMac.mm */,
);
path = mac;
sourceTree = "<group>";
children = (
1AE82F8D0CAAFA9D002237AE /* JSDatabase.cpp */,
1AE82F8E0CAAFA9D002237AE /* JSDatabase.h */,
- 1AE8301B0CAB0999002237AE /* JSSQLCallback.cpp */,
- 1AE8301C0CAB0999002237AE /* JSSQLCallback.h */,
- 1A7CCAEC0CD901DB00B7B64E /* JSSQLError.cpp */,
- 1A7CCAED0CD901DB00B7B64E /* JSSQLError.h */,
+ 514C76350CE9225E007EF3CD /* JSSQLError.cpp */,
1AE82FEA0CAB07EE002237AE /* JSSQLResultSet.cpp */,
1AE82FEB0CAB07EE002237AE /* JSSQLResultSet.h */,
1AFE11970CBFFCC4003017FA /* JSSQLResultSetRowList.cpp */,
1AFE11980CBFFCC4003017FA /* JSSQLResultSetRowList.h */,
- 1A7CCB2C0CD9499700B7B64E /* JSSQLTransaction.cpp */,
- 1A7CCB2D0CD9499700B7B64E /* JSSQLTransaction.h */,
- 1A2E6FFC0CC67907004A2062 /* JSVersionChangeCallback.cpp */,
- 1A2E6FFD0CC67907004A2062 /* JSVersionChangeCallback.h */,
+ 514C76360CE9225E007EF3CD /* JSSQLTransaction.cpp */,
);
name = Storage;
sourceTree = "<group>";
93F8B3060A300FEA00F61AB8 /* CodeGeneratorJS.pm */,
1432E8480C51493F00B1500F /* GCController.cpp */,
1432E8460C51493800B1500F /* GCController.h */,
- 1AE831050CAB166E002237AE /* JSCustomSQLCallback.cpp */,
- 1AE831040CAB166E002237AE /* JSCustomSQLCallback.h */,
- 1A7CCAFB0CD945DD00B7B64E /* JSCustomSQLStatementCallback.cpp */,
- 1A7CCAFC0CD945DD00B7B64E /* JSCustomSQLStatementCallback.h */,
- 1A7CCAFD0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.cpp */,
- 1A7CCAFE0CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.h */,
- 1A7CCAFF0CD945DD00B7B64E /* JSCustomSQLTransactionCallback.cpp */,
- 1A7CCB000CD945DD00B7B64E /* JSCustomSQLTransactionCallback.h */,
- 1A7CCB010CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.cpp */,
- 1A7CCB020CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.h */,
- 1A2E70610CC67CAA004A2062 /* JSCustomVersionChangeCallback.cpp */,
- 1A2E70600CC67CAA004A2062 /* JSCustomVersionChangeCallback.h */,
E10B93C20B73C291003ED890 /* JSCustomXPathNSResolver.cpp */,
E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */,
BCD9C2680C17AA81005C90A2 /* JSDOMExceptionConstructor.cpp */,
children = (
BC2ED6BB0C6BD2F000920BFF /* JSAttrCustom.cpp */,
1A9EF4560A1B957D00332B63 /* JSCanvasRenderingContext2DCustom.cpp */,
+ 51EC925B0CE90DD400F90308 /* JSCustomSQLStatementCallback.cpp */,
+ 51EC925C0CE90DD400F90308 /* JSCustomSQLStatementCallback.h */,
+ 51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */,
+ 51EC925E0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.h */,
+ 51EC925F0CE90DD400F90308 /* JSCustomSQLTransactionCallback.cpp */,
+ 51EC92600CE90DD400F90308 /* JSCustomSQLTransactionCallback.h */,
+ 51EC92610CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.cpp */,
+ 51EC92620CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.h */,
BC46C1ED0C0DDBDF0020CFC3 /* JSCSSRuleCustom.cpp */,
BC5825F20C0B89380053F1B5 /* JSCSSStyleDeclarationCustom.cpp */,
BC20FB7E0C0E8E6C00D1447F /* JSCSSValueCustom.cpp */,
1A750DD30A90E729000FF215 /* JSNodeIteratorCustom.cpp */,
BCD9C2610C17AA67005C90A2 /* JSNodeListCustom.cpp */,
51DCE8010CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp */,
+ 1AD2316D0CD269E700C1F194 /* JSSQLTransactionCustom.cpp */,
BC98A27C0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp */,
A84EBD770CB8C89200079609 /* JSStyleSheetListCustom.cpp */,
B25DFAAE0B2E2929000E6510 /* JSSVGMatrixCustom.cpp */,
B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
B297BC6F0B3C14CF0045A590 /* JSSVGPathSegListCustom.cpp */,
- B2080A110B3CA3B600120852 /* JSSVGPointListCustom.cpp */,
- 1A750E330A90F89F000FF215 /* JSTreeWalkerCustom.cpp */,
- B2080A110B3CA3B600120852 /* JSSVGPointListCustom.cpp */,
- 1A750E330A90F89F000FF215 /* JSTreeWalkerCustom.cpp */,
- B2080A110B3CA3B600120852 /* JSSVGPointListCustom.cpp */,
- 1A750E330A90F89F000FF215 /* JSTreeWalkerCustom.cpp */,
+ 516BB7910CE91E6800512F79 /* JSSVGPointListCustom.cpp */,
+ 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */,
);
name = Custom;
sourceTree = "<group>";
51E1ECB20C91C55600DC255B /* Threading.h */,
93309EA1099EB78C0056E581 /* Timer.cpp */,
9305B24C098F1B6B00C28855 /* Timer.h */,
- B287B22C0CE66A820054D390 /* UnicodeRange.cpp */,
- B287B22D0CE66A820054D390 /* UnicodeRange.h */,
+ 514C762C0CE921F4007EF3CD /* UnicodeRange.cpp */,
+ 514C762D0CE921F4007EF3CD /* UnicodeRange.h */,
9380F47109A11AB4001FDB34 /* Widget.cpp */,
9380F47209A11AB4001FDB34 /* Widget.h */,
93B780C909B3B7FE00690162 /* WidgetClient.h */,
93F199CF08245E59001E9ABC /* AtomicStringList.h in Headers */,
A8C4A80D09D563270003AC8D /* Attr.h in Headers */,
A8C4A80B09D563270003AC8D /* Attribute.h in Headers */,
- 510F73600B56C08800A3002A /* AuthenticationChallenge.h in Headers */,
- 513BF1080B4F558900CCFECE /* AuthenticationMac.h in Headers */,
+ 514C766C0CE923A1007EF3CD /* AuthenticationChallenge.h in Headers */,
+ 514C764C0CE9234E007EF3CD /* AuthenticationMac.h in Headers */,
A8CFF04E0A154F09000A4234 /* AutoTableLayout.h in Headers */,
51E1ECB30C91C55600DC255B /* AutodrainedPool.h in Headers */,
51741D0F0B07259A00ED442C /* BackForwardList.h in Headers */,
93EEC20009C2877700C515D1 /* CanvasRenderingContext2D.h in Headers */,
93EEC20109C2877700C515D1 /* CanvasStyle.h in Headers */,
B2310B770B1F46A200D55D87 /* CgSupport.h in Headers */,
+ 514185EE0CD65F0400763C99 /* ChangeVersionWrapper.h in Headers */,
6550B6A0099DF0270090D781 /* CharacterData.h in Headers */,
93C7B5F40B52D89100B5477E /* CharacterNames.h in Headers */,
9326DC0B09DAD5BE00AFC847 /* CharsetData.h in Headers */,
A80E6D040A1989CA007FB8C5 /* Counter.h in Headers */,
9392F14C0AD1861B00691BD4 /* CounterNode.h in Headers */,
D0B0556809C6700100307E43 /* CreateLinkCommand.h in Headers */,
- 510F73620B56C08800A3002A /* Credential.h in Headers */,
+ 514C766E0CE923A1007EF3CD /* Credential.h in Headers */,
93F1992F08245E59001E9ABC /* Cursor.h in Headers */,
BC1A37AD097C715F0019F3D8 /* DOM.h in Headers */,
8538F0190AD718D8006A81D1 /* DOMAbstractView.h in Headers */,
BCEA4856097D93020094C9E4 /* DataRef.h in Headers */,
5196116B0CAC56570010A80C /* Database.h in Headers */,
51A45B560CAD7FD7000D2BE9 /* DatabaseAuthorizer.h in Headers */,
- 51EC054F0CC6A615001DA88F /* DatabaseCallback.h in Headers */,
519611EA0CAC749C0010A80C /* DatabaseTask.h in Headers */,
519611780CAC56A80010A80C /* DatabaseThread.h in Headers */,
1AD51A140CB59CD300953D11 /* DatabaseTracker.h in Headers */,
148A00110AF59F3F008CC700 /* FontPlatformData.h in Headers */,
BC64B4B90CB428C7005F2B62 /* FontSelector.h in Headers */,
A80E6CED0A1989CA007FB8C5 /* FontValue.h in Headers */,
- 65DADA180AFD878000CE53ED /* FormData.h in Headers */,
+ 514C76700CE923A1007EF3CD /* FormData.h in Headers */,
A8136D380973A8E700D74463 /* FormDataList.h in Headers */,
- 65DADA000AFD86BF00CE53ED /* FormDataStreamMac.h in Headers */,
+ 514C764E0CE9234E007EF3CD /* FormDataStreamMac.h in Headers */,
656D373A0ADBA5DE00A4554D /* FormState.h in Headers */,
D05CED2A0A40BB2C00C5AF38 /* FormatBlockCommand.h in Headers */,
935C476D09AC4D6300A6AAB4 /* FoundationExtras.h in Headers */,
A8EA79F20A1916DF00A8EF5F /* HTMLUListElement.h in Headers */,
E44613AB0CD6331000FADA75 /* HTMLVideoElement.h in Headers */,
BCCD74DC0A4C8D35005FDA6D /* HTMLViewSourceDocument.h in Headers */,
- 655A81BE0AEF67E6000975F0 /* HTTPHeaderMap.h in Headers */,
- E1D8E3160B29E39C00F4BAF6 /* HTTPParsers.h in Headers */,
+ 514C76710CE923A1007EF3CD /* HTTPHeaderMap.h in Headers */,
+ 514C76730CE923A1007EF3CD /* HTTPParsers.h in Headers */,
BC94D1540C275C8B006BC617 /* History.h in Headers */,
51741D110B07259A00ED442C /* HistoryItem.h in Headers */,
930908910AF7EDE40081DF01 /* HitTestRequest.h in Headers */,
93F9B6E10BA0FB7200854064 /* JSComment.h in Headers */,
BC98543E0CD3D98C00069BC1 /* JSConsole.h in Headers */,
930705DA09E0C9BF00B17FE4 /* JSCounter.h in Headers */,
- 1AE831060CAB166E002237AE /* JSCustomSQLCallback.h in Headers */,
- 1A7CCB040CD945DD00B7B64E /* JSCustomSQLStatementCallback.h in Headers */,
- 1A7CCB060CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.h in Headers */,
- 1A7CCB080CD945DD00B7B64E /* JSCustomSQLTransactionCallback.h in Headers */,
- 1A7CCB0A0CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.h in Headers */,
- 1A2E70620CC67CAA004A2062 /* JSCustomVersionChangeCallback.h in Headers */,
+ 51EC92640CE90DD400F90308 /* JSCustomSQLStatementCallback.h in Headers */,
+ 51EC92660CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.h in Headers */,
+ 51EC92680CE90DD400F90308 /* JSCustomSQLTransactionCallback.h in Headers */,
+ 51EC926A0CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.h in Headers */,
E10B937C0B73C00A003ED890 /* JSCustomXPathNSResolver.h in Headers */,
BCD9C26F0C17AA81005C90A2 /* JSDOMExceptionConstructor.h in Headers */,
BCD9C2C60C17B6EC005C90A2 /* JSDOMExceptionConstructor.lut.h in Headers */,
65DF320209D1CC60000BE325 /* JSRange.h in Headers */,
D23CA55D0AB0EAAE005108A5 /* JSRangeException.h in Headers */,
BCFE2F120C1B58380020235F /* JSRect.h in Headers */,
- 1AE8301E0CAB0999002237AE /* JSSQLCallback.h in Headers */,
- 1A7CCAEF0CD901DB00B7B64E /* JSSQLError.h in Headers */,
1AE82FED0CAB07EE002237AE /* JSSQLResultSet.h in Headers */,
1AFE119A0CBFFCC4003017FA /* JSSQLResultSetRowList.h in Headers */,
- 1A7CCB2F0CD9499700B7B64E /* JSSQLTransaction.h in Headers */,
B20111080AB7740500DB0E68 /* JSSVGAElement.h in Headers */,
B222F6990AB771950022EFAD /* JSSVGAngle.h in Headers */,
B2FA3D370AB75A6F000E5AC4 /* JSSVGAnimateColorElement.h in Headers */,
E446141B0CD6826900FADA75 /* JSTimeRanges.h in Headers */,
1A750D5D0A90DEE1000FF215 /* JSTreeWalker.h in Headers */,
A86629CF09DA2B47009633A5 /* JSUIEvent.h in Headers */,
- 1A2E6FFF0CC67907004A2062 /* JSVersionChangeCallback.h in Headers */,
E446141D0CD6826900FADA75 /* JSVoidCallback.h in Headers */,
65DF320609D1CC60000BE325 /* JSWheelEvent.h in Headers */,
93B70D5E09EB0C7C009D8468 /* JSXMLHttpRequest.h in Headers */,
A8EA7EBC0A1945D000A8EF5F /* ProcessingInstruction.h in Headers */,
E44613EC0CD681B500FADA75 /* ProgressEvent.h in Headers */,
1A2A68240B5BEDE70002A480 /* ProgressTracker.h in Headers */,
- 510F73640B56C08800A3002A /* ProtectionSpace.h in Headers */,
+ 514C76750CE923A1007EF3CD /* ProtectionSpace.h in Headers */,
550A0BCA085F6039007353D6 /* QualifiedName.h in Headers */,
B25AE5600B49D6630074C726 /* RadialGradientAttributes.h in Headers */,
93F1991808245E59001E9ABC /* Range.h in Headers */,
93799EF90BF2743600D0F230 /* RenderWordBreak.h in Headers */,
93309E0A099E64920056E581 /* ReplaceSelectionCommand.h in Headers */,
BCB16C2F0979C3BD00467741 /* Request.h in Headers */,
- 651888890AFF3BF700164720 /* ResourceError.h in Headers */,
- 656B85380AEA1F9A00A095B4 /* ResourceHandle.h in Headers */,
- 656B84E20AEA1D3100A095B4 /* ResourceHandleClient.h in Headers */,
- 656B84E30AEA1D3100A095B4 /* ResourceHandleInternal.h in Headers */,
+ 514C76770CE923A1007EF3CD /* ResourceError.h in Headers */,
+ 514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */,
+ 514C767A0CE923A1007EF3CD /* ResourceHandleClient.h in Headers */,
+ 514C767B0CE923A1007EF3CD /* ResourceHandleInternal.h in Headers */,
656D373F0ADBA5DE00A4554D /* ResourceLoader.h in Headers */,
- 93CDDE280C239A4800CD57AE /* ResourceRequest.h in Headers */,
- 93D82A4A0C28CF1E00FD703D /* ResourceRequestBase.h in Headers */,
- F9541E5E0CE35B7800CB14EE /* ResourceResponse.h in Headers */,
- F9B9A1AD0CE271DD009F992E /* ResourceResponseBase.h in Headers */,
+ 514C76520CE9234E007EF3CD /* ResourceRequest.h in Headers */,
+ 514C767D0CE923A1007EF3CD /* ResourceRequestBase.h in Headers */,
+ 514C76540CE9234E007EF3CD /* ResourceResponse.h in Headers */,
+ 514C767F0CE923A1007EF3CD /* ResourceResponseBase.h in Headers */,
A8CFF5E10A155A05000A4234 /* RootInlineBox.h in Headers */,
- 519611710CAC56570010A80C /* SQLCallback.h in Headers */,
- 1A7CCAEA0CD901A100B7B64E /* SQLError.h in Headers */,
+ 51EC92590CE90DB400F90308 /* SQLError.h in Headers */,
519611740CAC56570010A80C /* SQLResultSet.h in Headers */,
1AFE117E0CBFFB36003017FA /* SQLResultSetRowList.h in Headers */,
+ 515B03990CD1642A00B7EA9C /* SQLStatement.h in Headers */,
1A7CCB190CD9469A00B7B64E /* SQLStatementCallback.h in Headers */,
1A7CCB1A0CD9469A00B7B64E /* SQLStatementErrorCallback.h in Headers */,
1A7CCB240CD946FD00B7B64E /* SQLTransaction.h in Headers */,
93309E1A099E64920056E581 /* TypingCommand.h in Headers */,
85031B4E0A44EFC700F992E0 /* UIEvent.h in Headers */,
85031B4F0A44EFC700F992E0 /* UIEventWithKeyState.h in Headers */,
+ 514C762F0CE921F4007EF3CD /* UnicodeRange.h in Headers */,
D086FE9809D53AAB005BC74D /* UnlinkCommand.h in Headers */,
656581B209D14EE6000E61D7 /* UserAgentStyleSheets.h in Headers */,
- 1A2E6FF50CC67855004A2062 /* VersionChangeCallback.h in Headers */,
93309E20099E64920056E581 /* VisiblePosition.h in Headers */,
E44613B60CD6344E00FADA75 /* VoidCallback.h in Headers */,
B2E27C4F0B0F2AE600F17C7B /* WKArithmeticFilter.h in Headers */,
BCB16C2D0979C3BD00467741 /* loader.h in Headers */,
93309DF8099E64920056E581 /* markup.h in Headers */,
93309E1E099E64920056E581 /* visible_units.h in Headers */,
- B287B22F0CE66A820054D390 /* UnicodeRange.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 1A7CCAEB0CD901A100B7B64E /* SQLError.idl in Resources */,
+ 51EC925A0CE90DB400F90308 /* SQLError.idl in Resources */,
1A7CCB100CD9462C00B7B64E /* SQLStatementCallback.idl in Resources */,
1A7CCB110CD9462C00B7B64E /* SQLStatementErrorCallback.idl in Resources */,
1A7CCB250CD946FD00B7B64E /* SQLTransaction.idl in Resources */,
93CD4FDE0995F9EA007ECC97 /* AtomicString.cpp in Sources */,
A8C4A80E09D563270003AC8D /* Attr.cpp in Sources */,
A8C4A80C09D563270003AC8D /* Attribute.cpp in Sources */,
- 510F735F0B56C08800A3002A /* AuthenticationChallenge.cpp in Sources */,
- 513BF1280B4F57DC00CCFECE /* AuthenticationMac.mm in Sources */,
+ 514C766B0CE923A1007EF3CD /* AuthenticationChallenge.cpp in Sources */,
+ 514C764D0CE9234E007EF3CD /* AuthenticationMac.mm in Sources */,
A8CFF0500A154F09000A4234 /* AutoTableLayout.cpp in Sources */,
51E1ECAF0C91C54600DC255B /* AutodrainedPool.mm in Sources */,
51741D100B07259A00ED442C /* BackForwardList.cpp in Sources */,
93EEC1FF09C2877700C515D1 /* CanvasRenderingContext2D.cpp in Sources */,
93EEC27109C3218800C515D1 /* CanvasStyle.cpp in Sources */,
B2310B760B1F46A200D55D87 /* CgSupport.cpp in Sources */,
+ 514185EF0CD65F0400763C99 /* ChangeVersionWrapper.cpp in Sources */,
6550B69F099DF0270090D781 /* CharacterData.cpp in Sources */,
9326DC0C09DAD5D600AFC847 /* CharsetData.cpp in Sources */,
A81872250977D3C0005826D9 /* ChildNodeList.cpp in Sources */,
9352087709BD453400F2038D /* CookieJar.mm in Sources */,
9392F1500AD1862300691BD4 /* CounterNode.cpp in Sources */,
D0B0556909C6700100307E43 /* CreateLinkCommand.cpp in Sources */,
- 510F73610B56C08800A3002A /* Credential.cpp in Sources */,
+ 514C766D0CE923A1007EF3CD /* Credential.cpp in Sources */,
93F19A2608245E59001E9ABC /* CursorMac.mm in Sources */,
BC1A37AE097C715F0019F3D8 /* DOM.mm in Sources */,
8538F01A0AD718D8006A81D1 /* DOMAbstractView.mm in Sources */,
85E9E0A60AB3A0C700069CD0 /* DOMXPathResult.mm in Sources */,
5196116A0CAC56570010A80C /* Database.cpp in Sources */,
51A45B570CAD7FD7000D2BE9 /* DatabaseAuthorizer.cpp in Sources */,
- 51EC05510CC6ACBA001DA88F /* DatabaseCallback.cpp in Sources */,
519611EB0CAC749C0010A80C /* DatabaseTask.cpp in Sources */,
5196116D0CAC56570010A80C /* DatabaseThread.cpp in Sources */,
1AD51A150CB59CD300953D11 /* DatabaseTracker.cpp in Sources */,
BCEB377309B7BA3900CB38B1 /* FontMac.mm in Sources */,
BC64B4BF0CB42929005F2B62 /* FontPlatformDataMac.mm in Sources */,
A80E6CF10A1989CA007FB8C5 /* FontValue.cpp in Sources */,
- 65DAD9FC0AFD86B400CE53ED /* FormData.cpp in Sources */,
+ 514C766F0CE923A1007EF3CD /* FormData.cpp in Sources */,
A8136D390973A8E700D74463 /* FormDataList.cpp in Sources */,
- 65DADA010AFD86BF00CE53ED /* FormDataStreamMac.mm in Sources */,
+ 514C764F0CE9234E007EF3CD /* FormDataStreamMac.mm in Sources */,
656D373B0ADBA5DE00A4554D /* FormState.cpp in Sources */,
D05CED290A40BB2C00C5AF38 /* FormatBlockCommand.cpp in Sources */,
65BF022E0974816300C43196 /* Frame.cpp in Sources */,
A8EA79F30A1916DF00A8EF5F /* HTMLUListElement.cpp in Sources */,
E44613AA0CD6331000FADA75 /* HTMLVideoElement.cpp in Sources */,
BCCD74E50A4C8DDF005FDA6D /* HTMLViewSourceDocument.cpp in Sources */,
- E1D8E31A0B29E3B600F4BAF6 /* HTTPParsers.cpp in Sources */,
+ 514C76720CE923A1007EF3CD /* HTTPParsers.cpp in Sources */,
BC94D1530C275C8B006BC617 /* History.cpp in Sources */,
51741D120B07259A00ED442C /* HistoryItem.cpp in Sources */,
5160F4980B0AA75F00C1D2AF /* HistoryItemMac.mm in Sources */,
93F9B6E00BA0FB7200854064 /* JSComment.cpp in Sources */,
BC98543D0CD3D98B00069BC1 /* JSConsole.cpp in Sources */,
930705D809E0C9B700B17FE4 /* JSCounter.cpp in Sources */,
- 1AE831070CAB166E002237AE /* JSCustomSQLCallback.cpp in Sources */,
- 1A7CCB030CD945DD00B7B64E /* JSCustomSQLStatementCallback.cpp in Sources */,
- 1A7CCB050CD945DD00B7B64E /* JSCustomSQLStatementErrorCallback.cpp in Sources */,
- 1A7CCB070CD945DD00B7B64E /* JSCustomSQLTransactionCallback.cpp in Sources */,
- 1A7CCB090CD945DD00B7B64E /* JSCustomSQLTransactionErrorCallback.cpp in Sources */,
- 1A2E70630CC67CAA004A2062 /* JSCustomVersionChangeCallback.cpp in Sources */,
+ 51EC92630CE90DD400F90308 /* JSCustomSQLStatementCallback.cpp in Sources */,
+ 51EC92650CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp in Sources */,
+ 51EC92670CE90DD400F90308 /* JSCustomSQLTransactionCallback.cpp in Sources */,
+ 51EC92690CE90DD400F90308 /* JSCustomSQLTransactionErrorCallback.cpp in Sources */,
E10B93C30B73C291003ED890 /* JSCustomXPathNSResolver.cpp in Sources */,
BCD9C26E0C17AA81005C90A2 /* JSDOMExceptionConstructor.cpp in Sources */,
65DF31F709D1CC60000BE325 /* JSDOMImplementation.cpp in Sources */,
65DF320109D1CC60000BE325 /* JSRange.cpp in Sources */,
D23CA55F0AB0EAB6005108A5 /* JSRangeException.cpp in Sources */,
BCFE2F110C1B58370020235F /* JSRect.cpp in Sources */,
- 1AE8301D0CAB0999002237AE /* JSSQLCallback.cpp in Sources */,
- 1A7CCAEE0CD901DB00B7B64E /* JSSQLError.cpp in Sources */,
+ 514C76370CE9225E007EF3CD /* JSSQLError.cpp in Sources */,
1AE82FEC0CAB07EE002237AE /* JSSQLResultSet.cpp in Sources */,
1AFE11990CBFFCC4003017FA /* JSSQLResultSetRowList.cpp in Sources */,
51DCE8020CAC9F1C00488358 /* JSSQLResultSetRowListCustom.cpp in Sources */,
- 1A7CCB2E0CD9499700B7B64E /* JSSQLTransaction.cpp in Sources */,
+ 514C76380CE9225E007EF3CD /* JSSQLTransaction.cpp in Sources */,
+ 1AD2316E0CD269E700C1F194 /* JSSQLTransactionCustom.cpp in Sources */,
B20111070AB7740500DB0E68 /* JSSVGAElement.cpp in Sources */,
B222F6980AB771950022EFAD /* JSSVGAngle.cpp in Sources */,
B2FA3D360AB75A6F000E5AC4 /* JSSVGAnimateColorElement.cpp in Sources */,
B2FA3DE00AB75A6F000E5AC4 /* JSSVGPatternElement.cpp in Sources */,
8542A7960AE5C94200DF58DF /* JSSVGPoint.cpp in Sources */,
B2FA3DE20AB75A6F000E5AC4 /* JSSVGPointList.cpp in Sources */,
- B2080A120B3CA3B600120852 /* JSSVGPointListCustom.cpp in Sources */,
+ 516BB7930CE91E6800512F79 /* JSSVGPointListCustom.cpp in Sources */,
B2FA3DE50AB75A6F000E5AC4 /* JSSVGPolygonElement.cpp in Sources */,
B2FA3DE70AB75A6F000E5AC4 /* JSSVGPolylineElement.cpp in Sources */,
B2FA3DE90AB75A6F000E5AC4 /* JSSVGPreserveAspectRatio.cpp in Sources */,
933A14B80B7D1D5200A53FFD /* JSTextEvent.cpp in Sources */,
E446141A0CD6826900FADA75 /* JSTimeRanges.cpp in Sources */,
1A750D5C0A90DEE1000FF215 /* JSTreeWalker.cpp in Sources */,
- 1A750E340A90F89F000FF215 /* JSTreeWalkerCustom.cpp in Sources */,
+ 516BB7940CE91E6800512F79 /* JSTreeWalkerCustom.cpp in Sources */,
A86629D009DA2B48009633A5 /* JSUIEvent.cpp in Sources */,
- 1A2E6FFE0CC67907004A2062 /* JSVersionChangeCallback.cpp in Sources */,
E446141C0CD6826900FADA75 /* JSVoidCallback.cpp in Sources */,
65DF320509D1CC60000BE325 /* JSWheelEvent.cpp in Sources */,
93B70D5D09EB0C7C009D8468 /* JSXMLHttpRequest.cpp in Sources */,
A8EA7EBD0A1945D000A8EF5F /* ProcessingInstruction.cpp in Sources */,
E44613EB0CD681B400FADA75 /* ProgressEvent.cpp in Sources */,
1A2A68230B5BEDE70002A480 /* ProgressTracker.cpp in Sources */,
- 510F73630B56C08800A3002A /* ProtectionSpace.cpp in Sources */,
+ 514C76740CE923A1007EF3CD /* ProtectionSpace.cpp in Sources */,
550A0BC9085F6039007353D6 /* QualifiedName.cpp in Sources */,
93F19AB908245E59001E9ABC /* Range.cpp in Sources */,
85031B4B0A44EFC700F992E0 /* RegisteredEventListener.cpp in Sources */,
93799EF80BF2743600D0F230 /* RenderWordBreak.cpp in Sources */,
93309E09099E64920056E581 /* ReplaceSelectionCommand.cpp in Sources */,
BCB16C2E0979C3BD00467741 /* Request.cpp in Sources */,
- 651888880AFF3BF700164720 /* ResourceError.cpp in Sources */,
- 6518888B0AFF3C1400164720 /* ResourceErrorMac.mm in Sources */,
- 656B84E00AEA1D3100A095B4 /* ResourceHandle.cpp in Sources */,
- 656B84EB0AEA1DDA00A095B4 /* ResourceHandleMac.mm in Sources */,
+ 514C76760CE923A1007EF3CD /* ResourceError.cpp in Sources */,
+ 514C76500CE9234E007EF3CD /* ResourceErrorMac.mm in Sources */,
+ 514C76780CE923A1007EF3CD /* ResourceHandle.cpp in Sources */,
+ 514C76510CE9234E007EF3CD /* ResourceHandleMac.mm in Sources */,
93E227E30AF589AD00D48324 /* ResourceLoader.cpp in Sources */,
51AA3F6F0BD5AA9E00892971 /* ResourceLoaderMac.mm in Sources */,
- 93D82A490C28CF1E00FD703D /* ResourceRequestBase.cpp in Sources */,
- 650E3F6A0AF6C168001FA3AD /* ResourceRequestMac.mm in Sources */,
- F9B9A1AF0CE271F6009F992E /* ResourceResponseBase.cpp in Sources */,
- 6588216C0AF4CE1200F01D1F /* ResourceResponseMac.mm in Sources */,
+ 514C767C0CE923A1007EF3CD /* ResourceRequestBase.cpp in Sources */,
+ 514C76530CE9234E007EF3CD /* ResourceRequestMac.mm in Sources */,
+ 514C767E0CE923A1007EF3CD /* ResourceResponseBase.cpp in Sources */,
+ 514C76550CE9234F007EF3CD /* ResourceResponseMac.mm in Sources */,
A8CFF5E70A155A05000A4234 /* RootInlineBox.cpp in Sources */,
519611730CAC56570010A80C /* SQLResultSet.cpp in Sources */,
1AFE117D0CBFFB36003017FA /* SQLResultSetRowList.cpp in Sources */,
+ 515B039A0CD1642A00B7EA9C /* SQLStatement.cpp in Sources */,
+ 1ABFE7530CD968D000FE4834 /* SQLTransaction.cpp in Sources */,
1A2E6E590CC55213004A2062 /* SQLValue.cpp in Sources */,
1A2E6E7A0CC556D5004A2062 /* SQLiteAuthorizer.cpp in Sources */,
1A2246490CC98DDB00C05240 /* SQLiteDatabase.cpp in Sources */,
93309E19099E64920056E581 /* TypingCommand.cpp in Sources */,
85031B4D0A44EFC700F992E0 /* UIEvent.cpp in Sources */,
93354A3C0B24F8C9003F6DEA /* UIEventWithKeyState.cpp in Sources */,
+ 514C762E0CE921F4007EF3CD /* UnicodeRange.cpp in Sources */,
D086FE9909D53AAB005BC74D /* UnlinkCommand.cpp in Sources */,
65DF326109D1E199000BE325 /* UserAgentStyleSheetsData.cpp in Sources */,
93309E1F099E64920056E581 /* VisiblePosition.cpp in Sources */,
BCB16C2C0979C3BD00467741 /* loader.cpp in Sources */,
93309DF7099E64920056E581 /* markup.cpp in Sources */,
93309E1D099E64920056E581 /* visible_units.cpp in Sources */,
- B287B22E0CE66A820054D390 /* UnicodeRange.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
+++ /dev/null
-/*
- * Copyright (C) 2007 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.
- */
-
-#include "config.h"
-#include "JSCustomSQLCallback.h"
-
-#include "CString.h"
-#include "Frame.h"
-#include "kjs_proxy.h"
-#include "JSSQLResultSet.h"
-#include "Page.h"
-
-namespace WebCore {
-
-using namespace KJS;
-
-JSCustomSQLCallback::JSCustomSQLCallback(JSObject* callback, Frame* frame)
- : m_callback(callback)
- , m_frame(frame)
-{
-
-}
-
-void JSCustomSQLCallback::handleEvent(SQLResultSet* resultSet)
-{
- ASSERT(m_callback);
- ASSERT(m_frame);
-
- KJSProxy* proxy = m_frame->scriptProxy();
- if (!proxy)
- return;
-
- ScriptInterpreter* interpreter = proxy->interpreter();
- ExecState* exec = interpreter->globalExec();
-
- KJS::JSLock lock;
-
- JSValue* handleEventFuncValue = m_callback->get(exec, "handleEvent");
- JSObject* handleEventFunc = 0;
- if (handleEventFuncValue->isObject()) {
- handleEventFunc = static_cast<JSObject*>(handleEventFuncValue);
- if (!handleEventFunc->implementsCall())
- handleEventFunc = 0;
- }
-
- if (!handleEventFunc && !m_callback->implementsCall()) {
- // FIXME: Should an exception be thrown here?
- return;
- }
-
- RefPtr<JSCustomSQLCallback> protect(this);
-
- List args;
- args.append(toJS(exec, resultSet));
-
- interpreter->startTimeoutCheck();
- if (handleEventFunc)
- handleEventFunc->call(exec, m_callback, args);
- else
- m_callback->call(exec, m_callback, args);
- interpreter->stopTimeoutCheck();
-
- if (exec->hadException()) {
- JSObject* exception = exec->exception()->toObject(exec);
- String message = exception->get(exec, exec->propertyNames().message)->toString(exec);
- int lineNumber = exception->get(exec, "line")->toInt32(exec);
- String sourceURL = exception->get(exec, "sourceURL")->toString(exec);
- if (Interpreter::shouldPrintExceptions())
- printf("SQLCallback: %s\n", message.utf8().data());
- if (Page* page = m_frame->page())
- page->chrome()->addMessageToConsole(JSMessageSource, ErrorMessageLevel, message, lineNumber, sourceURL);
- exec->clearException();
- }
-
- Document::updateDocumentsRendering();
-}
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007 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.
- */
-
-#include "SQLCallback.h"
-
-#include <kjs/object.h>
-#include <kjs/protect.h>
-#include <wtf/Forward.h>
-
-namespace KJS {
- class JSObject;
-}
-
-namespace WebCore {
-
-class Frame;
-class SQLResultSet;
-
-class JSCustomSQLCallback : public SQLCallback {
-public:
- JSCustomSQLCallback(KJS::JSObject* callback, Frame*);
-
- virtual void handleEvent(SQLResultSet*);
-private:
- KJS::ProtectedPtr<KJS::JSObject> m_callback;
- RefPtr<Frame> m_frame;
-};
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007 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.
- */
-
-#include "config.h"
-#include "JSCustomVersionChangeCallback.h"
-
-#include "CString.h"
-#include "Frame.h"
-#include "kjs_proxy.h"
-#include "kjs_binding.h"
-#include "Page.h"
-
-namespace WebCore {
-
-using namespace KJS;
-
-JSCustomVersionChangeCallback::JSCustomVersionChangeCallback(JSObject* callback, Frame* frame)
- : m_callback(callback)
- , m_frame(frame)
-{
-
-}
-
-void JSCustomVersionChangeCallback::handleEvent(bool versionChanged)
-{
- ASSERT(m_callback);
- ASSERT(m_frame);
-
- KJSProxy* proxy = m_frame->scriptProxy();
- if (!proxy)
- return;
-
- ScriptInterpreter* interpreter = proxy->interpreter();
- ExecState* exec = interpreter->globalExec();
-
- KJS::JSLock lock;
-
- JSValue* handleEventFuncValue = m_callback->get(exec, "handleEvent");
- JSObject* handleEventFunc = 0;
- if (handleEventFuncValue->isObject()) {
- handleEventFunc = static_cast<JSObject*>(handleEventFuncValue);
- if (!handleEventFunc->implementsCall())
- handleEventFunc = 0;
- }
-
- if (!handleEventFunc && !m_callback->implementsCall()) {
- // FIXME: Should an exception be thrown here?
- return;
- }
-
- RefPtr<JSCustomVersionChangeCallback> protect(this);
-
- List args;
- args.append(jsBoolean(versionChanged));
-
- interpreter->startTimeoutCheck();
- if (handleEventFunc)
- handleEventFunc->call(exec, m_callback, args);
- else
- m_callback->call(exec, m_callback, args);
- interpreter->stopTimeoutCheck();
-
- if (exec->hadException()) {
- JSObject* exception = exec->exception()->toObject(exec);
- String message = exception->get(exec, exec->propertyNames().message)->toString(exec);
- int lineNumber = exception->get(exec, "line")->toInt32(exec);
- String sourceURL = exception->get(exec, "sourceURL")->toString(exec);
- if (Interpreter::shouldPrintExceptions())
- printf("VersionChangeCallback: %s\n", message.utf8().data());
- if (Page* page = m_frame->page())
- page->chrome()->addMessageToConsole(JSMessageSource, ErrorMessageLevel, message, lineNumber, sourceURL);
- exec->clearException();
- }
-
- Document::updateDocumentsRendering();
-}
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007 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.
- */
-
-#include "VersionChangeCallback.h"
-
-#include <kjs/object.h>
-#include <kjs/protect.h>
-#include <wtf/Forward.h>
-
-namespace KJS {
- class JSObject;
-}
-
-namespace WebCore {
-
- class Frame;
- class SQLResultSet;
-
- class JSCustomVersionChangeCallback : public VersionChangeCallback {
- public:
- JSCustomVersionChangeCallback(KJS::JSObject* callback, Frame*);
-
- virtual void handleEvent(bool versionChanges);
- private:
- KJS::ProtectedPtr<KJS::JSObject> m_callback;
- RefPtr<Frame> m_frame;
- };
-
-}
#include "DOMWindow.h"
#include "ExceptionCode.h"
#include "kjs_window.h"
-#include "JSCustomSQLCallback.h"
-#include "JSCustomVersionChangeCallback.h"
+#include "JSCustomSQLTransactionCallback.h"
+#include "JSCustomSQLTransactionErrorCallback.h"
#include "PlatformString.h"
#include "SQLValue.h"
#include <kjs/array_instance.h>
using namespace KJS;
-JSValue* JSDatabase::executeSql(ExecState* exec, const List& args)
+JSValue* JSDatabase::changeVersion(ExecState* exec, const List& args)
{
- String sqlStatement = args[0]->toString(exec);
-
- // Now assemble the list of SQL arguments
- Vector<SQLValue> SQLValues;
+ String oldVersion = args[0]->toString(exec);
+ String newVersion = args[1]->toString(exec);
- if (!args[1]->isObject() ||
- !static_cast<JSObject*>(args[1])->inherits(&ArrayInstance::info)) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
+ Frame* frame = Window::retrieveActive(exec)->impl()->frame();
+ if (!frame)
return jsUndefined();
- }
- ArrayInstance* array = static_cast<ArrayInstance*>(args[1]);
-
- for (unsigned i = 0 ; i < array->getLength(); i++) {
- JSValue* value = array->getItem(i);
-
- if (value->isNull()) {
- SQLValues.append(SQLValue());
- } else if (value->isNumber()) {
- SQLValues.append(value->getNumber());
- } else {
- // Convert the argument to a string and append it
- SQLValues.append(value->toString(exec));
- }
- }
-
- JSObject* callback = args[2]->getObject();
- if (!callback) {
+ JSObject *object;
+ if (!(object = args[2]->getObject())) {
setDOMException(exec, TYPE_MISMATCH_ERR);
return jsUndefined();
}
-
- if (Frame* frame = m_impl->document()->frame()) {
- ExceptionCode ec = 0;
- RefPtr<SQLCallback> sqlCallback(new JSCustomSQLCallback(callback, frame));
- m_impl->executeSql(sqlStatement, SQLValues, sqlCallback, ec);
- setDOMException(exec, ec);
+
+ RefPtr<SQLTransactionCallback> callback(new JSCustomSQLTransactionCallback(object, frame));
+ RefPtr<SQLTransactionErrorCallback> errorCallback;
+
+ if (!args[3]->isNull()) {
+ if (!(object = args[3]->getObject())) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ errorCallback = new JSCustomSQLTransactionErrorCallback(object, frame);
}
-
+
+ m_impl->changeVersion(oldVersion, newVersion, callback.release(), errorCallback.release());
+
return jsUndefined();
}
-JSValue* JSDatabase::changeVersion(ExecState* exec, const List& args)
+JSValue* JSDatabase::transaction(ExecState* exec, const List& args)
{
- String oldVersion = args[0]->toString(exec);
- String newVersion = args[1]->toString(exec);
-
- JSObject* callback = args[2]->getObject();
- if (!callback) {
+ JSObject* object;
+
+ if (!(object = args[0]->getObject())) {
setDOMException(exec, TYPE_MISMATCH_ERR);
return jsUndefined();
- }
+ }
+
+ Frame* frame = Window::retrieveActive(exec)->impl()->frame();
+ if (!frame)
+ return jsUndefined();
+
+ RefPtr<SQLTransactionCallback> callback(new JSCustomSQLTransactionCallback(object, frame));
+ RefPtr<SQLTransactionErrorCallback> errorCallback;
+
+ if (args.size() > 1 && !args[1]->isNull()) {
+ if (!(object = args[1]->getObject())) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
- if (Frame* frame = m_impl->document()->frame()) {
- RefPtr<VersionChangeCallback> changeCallback(new JSCustomVersionChangeCallback(callback, frame));
- m_impl->changeVersion(oldVersion, newVersion, changeCallback.release());
+ errorCallback = new JSCustomSQLTransactionErrorCallback(object, frame);
}
+
+ m_impl->transaction(callback.release(), errorCallback.release());
+
return jsUndefined();
}
-
+
}
--- /dev/null
+/*
+ * Copyright (C) 2007 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.
+ */
+#include "config.h"
+#include "JSSQLTransaction.h"
+
+#include "DOMWindow.h"
+#include "ExceptionCode.h"
+#include "JSCustomSQLStatementCallback.h"
+#include "JSCustomSQLStatementErrorCallback.h"
+#include "kjs_window.h"
+#include "PlatformString.h"
+#include "SQLTransaction.h"
+#include "SQLValue.h"
+#include <kjs/array_instance.h>
+
+using namespace KJS;
+
+namespace WebCore {
+
+JSValue* JSSQLTransaction::executeSql(ExecState* exec, const List& args)
+{
+ String sqlStatement = args[0]->toString(exec);
+
+ // Now assemble the list of SQL arguments
+ Vector<SQLValue> sqlValues;
+
+ if (!args[1]->isObject() ||
+ !static_cast<JSObject*>(args[1])->inherits(&ArrayInstance::info)) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ ArrayInstance* array = static_cast<ArrayInstance*>(args[1]);
+
+ for (unsigned i = 0 ; i < array->getLength(); i++) {
+ JSValue* value = array->getItem(i);
+
+ if (value->isNull()) {
+ sqlValues.append(SQLValue());
+ } else if (value->isNumber()) {
+ sqlValues.append(value->getNumber());
+ } else {
+ // Convert the argument to a string and append it
+ sqlValues.append(value->toString(exec));
+ }
+ }
+
+ RefPtr<SQLStatementCallback> callback;
+ if (args.size() > 2) {
+ JSObject* object;
+ if (!args[2]->isNull() && !(object = args[2]->getObject())) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ if (Frame* frame = Window::retrieveActive(exec)->impl()->frame())
+ callback = new JSCustomSQLStatementCallback(object, frame);
+ }
+
+ RefPtr<SQLStatementErrorCallback> errorCallback;
+ if (args.size() > 3) {
+ JSObject* object;
+ if (!args[3]->isNull() && !(object = args[3]->getObject())) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ if (Frame* frame = Window::retrieveActive(exec)->impl()->frame())
+ errorCallback = new JSCustomSQLStatementErrorCallback(object, frame);
+ }
+
+ ExceptionCode ec = 0;
+ m_impl->executeSQL(sqlStatement, sqlValues, callback.release(), errorCallback.release(), ec);
+ setDOMException(exec, ec);
+
+ return jsUndefined();
+}
+
+}
}
#if ENABLE(DATABASE)
-PassRefPtr<Database> DOMWindow::openDatabase(const String& name, const String& version, ExceptionCode& e)
+PassRefPtr<Database> DOMWindow::openDatabase(const String& name, const String& version, const String& displayName, unsigned long estimatedSize, ExceptionCode& ec)
{
if (!m_frame)
return 0;
if (!doc)
return 0;
- return Database::openDatabase(doc, name, version, e);
+ return Database::openDatabase(doc, name, version, displayName, estimatedSize, ec);
}
#endif
#if ENABLE(DATABASE)
// HTML 5 client-side database
- PassRefPtr<Database> openDatabase(const String& name, const String& version, ExceptionCode&);
+ PassRefPtr<Database> openDatabase(const String& name, const String& version, const String& displayName, unsigned long estimatedSize, ExceptionCode&);
#endif
Console* console() const;
readonly attribute double devicePixelRatio;
#if defined(ENABLE_DATABASE)
- Database openDatabase(in DOMString name, in DOMString version)
+ Database openDatabase(in DOMString name, in DOMString version, in DOMString displayName, in unsigned long estimatedSize)
raises(DOMException);
#endif
return;
}
- try {
- var panel = this;
- var query = "SELECT * FROM " + this.currentTable;
- this.resource.database.executeSql(query, [], function(result) { panel.browseQueryFinished(result) });
- } catch(e) {
- // FIXME: handle this error a better way.
- this.views.browse.contentElement.removeChildren();
- }
+ var panel = this;
+ var query = "SELECT * FROM " + this.currentTable;
+ this.resource.database.transaction(function(tx)
+ {
+ tx.executeSql(query, [], function(tx, result) { panel.browseQueryFinished(result) }, function(tx,err){ alert(err.message); });
+ });
},
browseQueryFinished: function(result)
if (!query.length)
return;
- try {
- var panel = this;
- this.resource.database.executeSql(query, [], function(result) { panel.queryFinished(query, result) });
+ var panel = this;
+ this.resource.database.transaction(function(tx)
+ {
+ tx.executeSql(query, [], function(tx, result) { panel.queryFinished(query, result) }, function(tx,err){ alert(err.message); });
+ });
- this.queryPromptHistory.push(query);
- this.queryPromptHistoryOffset = 0;
+ this.queryPromptHistory.push(query);
+ this.queryPromptHistoryOffset = 0;
- this.queryPromptElement.value = "";
+ this.queryPromptElement.value = "";
- if (query.match(/^select /i)) {
- if (this.currentView !== this.views.query)
- this.currentView = this.views.query;
- } else {
- if (query.match(/^create /i) || query.match(/^drop table /i))
- this.updateTableList();
+ if (query.match(/^select /i)) {
+ if (this.currentView !== this.views.query)
+ this.currentView = this.views.query;
+ } else {
+ if (query.match(/^create /i) || query.match(/^drop table /i))
+ this.updateTableList();
- // FIXME: we should only call updateTableBrowser() is we know the current table was modified
- this.updateTableBrowser();
- }
- } catch(e) {
- // FIXME: handle this error some way.
+ // FIXME: we should only call updateTableBrowser() is we know the current table was modified
+ this.updateTableBrowser();
}
},
_tableForResult: function(result)
{
- if (result.errorCode || !result.rows.length)
+ if (!result.rows.length)
return null;
var rows = result.rows;
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
-#include "DatabaseCallback.h"
+#include "ChangeVersionWrapper.h"
-#include "SQLCallback.h"
-#include "SQLResultSet.h"
-#include "VersionChangeCallback.h"
+#include "Database.h"
namespace WebCore {
-DatabaseChangeVersionCallback::DatabaseChangeVersionCallback(PassRefPtr<VersionChangeCallback> callback, bool versionChanged)
- : m_callback(callback)
- , m_versionChanged(versionChanged)
+ChangeVersionWrapper::ChangeVersionWrapper(const String& oldVersion, const String& newVersion)
+ : m_oldVersion(oldVersion.copy())
+ , m_newVersion(newVersion.copy())
{
- ASSERT(callback->isThreadSafe());
}
-void DatabaseChangeVersionCallback::performCallback()
+bool ChangeVersionWrapper::performPreflight(SQLTransaction* transaction)
{
- m_callback->handleEvent(m_versionChanged);
+ ASSERT(transaction && transaction->database());
+
+ String actualVersion;
+
+ if (!transaction->database()->getVersionFromDatabase(actualVersion)) {
+ LOG_ERROR("Unable to retrieve actual current version from database");
+ m_sqlError = new SQLError(0, "unable to verify current version of database");
+ return false;
+ }
+
+ if (actualVersion != m_oldVersion) {
+ LOG_ERROR("Old version doesn't match actual version");
+ m_sqlError = new SQLError(2, "current version of the database and `oldVersion` argument do not match");
+ return false;
+ }
+
+ return true;
}
-DatabaseExecuteSqlCallback::DatabaseExecuteSqlCallback(PassRefPtr<SQLCallback> callback, PassRefPtr<SQLResultSet> resultSet)
- : m_callback(callback)
- , m_resultSet(resultSet)
+bool ChangeVersionWrapper::performPostflight(SQLTransaction* transaction)
{
- ASSERT(callback->isThreadSafe());
- ASSERT(resultSet->isThreadSafe());
-}
+ ASSERT(transaction && transaction->database());
-void DatabaseExecuteSqlCallback::performCallback()
-{
- m_callback->handleEvent(m_resultSet.get());
-}
+ if (!transaction->database()->setVersionInDatabase(m_newVersion)) {
+ LOG_ERROR("Unable to set new version in database");
+ m_sqlError = new SQLError(0, "unable to set new version in database");
+ return false;
+ }
+ transaction->database()->setExpectedVersion(m_newVersion);
+
+ return true;
+}
+
} // namespace WebCore
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef ChangeVersionWrapper_h
+#define ChangeVersionWrapper_h
-#ifndef SQLCallback_h
-#define SQLCallback_h
-
-#include "Threading.h"
+#include "PlatformString.h"
+#include "SQLTransaction.h"
namespace WebCore {
-class SQLResultSet;
-
-class SQLCallback : public ThreadSafeShared<SQLCallback> {
+class ChangeVersionWrapper : public SQLTransactionWrapper {
public:
- virtual ~SQLCallback() { }
- virtual void handleEvent(SQLResultSet*) = 0;
+ ChangeVersionWrapper(const String& oldVersion, const String& newVersion);
+
+ virtual bool performPreflight(SQLTransaction*);
+ virtual bool performPostflight(SQLTransaction*);
+
+ virtual SQLError* sqlError() const { return m_sqlError.get(); }
+private:
+ String m_oldVersion;
+ String m_newVersion;
+ RefPtr<SQLError> m_sqlError;
};
} // namespace WebCore
-#endif // SQLCallback_h
+#endif // ChangeVersionWrapper_h
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
#include "config.h"
#include "Database.h"
+#include "ChangeVersionWrapper.h"
#include "CString.h"
#include "DatabaseAuthorizer.h"
-#include "DatabaseCallback.h"
#include "DatabaseTask.h"
#include "DatabaseThread.h"
#include "DatabaseTracker.h"
#include "Logging.h"
#include "NotImplemented.h"
#include "Page.h"
-#include "SQLCallback.h"
#include "SQLiteDatabase.h"
#include "SQLiteStatement.h"
#include "SQLResultSet.h"
-#include "VersionChangeCallback.h"
namespace WebCore {
return key;
}
-PassRefPtr<Database> Database::openDatabase(Document* document, const String& name, const String& expectedVersion, ExceptionCode& e)
+PassRefPtr<Database> Database::openDatabase(Document* document, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize, ExceptionCode& e)
{
RefPtr<Database> database = new Database(document, name, expectedVersion);
, m_databaseThread(0)
{
ASSERT(document);
-
- // FIXME: Right now, this is the entire domain of the document, when it really needs to be scheme/host/port only
m_securityOrigin = document->securityOrigin();
if (m_name.isNull())
hashSet->add(this);
}
- {
- MutexLocker locker(m_databaseThreadMutex);
- m_databaseThread = document->databaseThread();
- ASSERT(m_databaseThread);
- }
+ m_databaseThread = document->databaseThread();
+ ASSERT(m_databaseThread);
m_filename = DatabaseTracker::tracker().fullPathForDatabase(m_securityOrigin.toString(), m_name);
}
bool Database::openAndVerifyVersion(ExceptionCode& e)
{
- // Open the main thread connection to the database
- if (!m_mainSQLDatabase.open(m_filename)) {
- LOG_ERROR("Unable to open database at path %s", m_filename.ascii().data());
- e = INVALID_STATE_ERR;
- return false;
- }
-
m_databaseAuthorizer = new DatabaseAuthorizer();
- m_mainSQLDatabase.setAuthorizer(m_databaseAuthorizer);
- // Open the background thread connection
RefPtr<DatabaseOpenTask> task = new DatabaseOpenTask();
task->lockForSynchronousScheduling();
m_databaseAuthorizer->disable();
- bool result = retrieveTextResultFromDatabase(m_threadSQLDatabase, getVersionQuery.copy(), version);
+ bool result = retrieveTextResultFromDatabase(m_sqliteDatabase, getVersionQuery.copy(), version);
if (!result)
LOG_ERROR("Failed to retrieve version from database %s", databaseDebugName().ascii().data());
m_databaseAuthorizer->disable();
- bool result = setTextValueInDatabase(m_threadSQLDatabase, setVersionQuery.copy(), version);
+ bool result = setTextValueInDatabase(m_sqliteDatabase, setVersionQuery.copy(), version);
if (!result)
LOG_ERROR("Failed to set version %s in database (%s)", version.ascii().data(), setVersionQuery.ascii().data());
return result;
}
+bool Database::versionMatchesExpected() const
+{
+ if (!m_expectedVersion.isEmpty()) {
+ MutexLocker locker(guidMutex());
+ return m_expectedVersion == guidToVersionMap().get(m_guid);
+ }
+
+ return true;
+}
+
void Database::databaseThreadGoingAway()
{
// FIXME: We might not need this anymore
bool Database::performOpenAndVerify(ExceptionCode& e)
{
- if (!m_threadSQLDatabase.open(m_filename)) {
+ if (!m_sqliteDatabase.open(m_filename)) {
LOG_ERROR("Unable to open database at path %s", m_filename.ascii().data());
e = INVALID_STATE_ERR;
return false;
}
ASSERT(m_databaseAuthorizer);
- m_threadSQLDatabase.setAuthorizer(m_databaseAuthorizer);
+ m_sqliteDatabase.setAuthorizer(m_databaseAuthorizer);
- if (!m_threadSQLDatabase.tableExists(databaseInfoTableName())) {
- if (!m_threadSQLDatabase.executeCommand("CREATE TABLE " + databaseInfoTableName() + " (key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE,value TEXT NOT NULL ON CONFLICT FAIL);")) {
+ if (!m_sqliteDatabase.tableExists(databaseInfoTableName())) {
+ if (!m_sqliteDatabase.executeCommand("CREATE TABLE " + databaseInfoTableName() + " (key TEXT NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT REPLACE,value TEXT NOT NULL ON CONFLICT FAIL);")) {
LOG_ERROR("Unable to create table %s in database %s", databaseInfoTableName().ascii().data(), databaseDebugName().ascii().data());
e = INVALID_STATE_ERR;
return false;
MutexLocker locker(guidMutex());
currentVersion = guidToVersionMap().get(m_guid);
-
if (currentVersion.isNull())
LOG(StorageAPI, "Current cached version for guid %i is null", m_guid);
else
return true;
}
-void Database::scheduleDatabaseCallback(DatabaseCallback* callback)
+void Database::performTransactionStep()
{
- ASSERT(callback);
- MutexLocker locker(globalCallbackMutex());
{
- MutexLocker locker(m_callbackMutex);
- m_pendingCallbacks.append(callback);
- globalCallbackSet().add(this);
- if (!s_globalCallbackScheduled) {
- callOnMainThread(deliverAllPendingCallbacks);
- s_globalCallbackScheduled = true;
+ MutexLocker locker(m_transactionMutex);
+
+ if (!m_currentTransaction) {
+ ASSERT(m_transactionQueue.size());
+ m_currentTransaction = m_transactionQueue.first();
+ m_transactionQueue.removeFirst();
}
}
-}
-
-void Database::performChangeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback> callback)
-{
- // FIXME: "user agent must obtain a full lock of the database (waiting for all open transactions to be closed)"
- // Currently, not having implemented the implicit thread transaction, we're not all too worried about this.
- // Once the transaction is implemented, we'll have to find a way to reschedule the changeVersion over and over as long as
- // transactions are active. Keep on bumping it to second in line, or something!
-
- bool result = true;
-
- MutexLocker locker(guidMutex());
+
+ // If this step completes the entire transaction, clear the working transaction
+ // and schedule the next one if necessary
+ if (!m_currentTransaction->performNextStep())
+ return;
+
{
- // Run this code in a block to guarantee that actualVersion goes out of scope before the mutex
- // is released, so we can avoid copying the string when inserting but still avoid
- // string thread-safety issues
- String actualVersion;
- if (!getVersionFromDatabase(actualVersion)) {
- LOG_ERROR("Unable to retrieve actual current version from database");
- result = false;
- }
-
- if (result && actualVersion != oldVersion) {
- LOG_ERROR("Old version doesn't match actual version");
- result = false;
- }
-
- if (result && !setVersionInDatabase(newVersion)) {
- LOG_ERROR("Unable to set new version in database");
- result = false;
- }
-
- if (result)
- guidToVersionMap().set(m_guid, actualVersion);
+ MutexLocker locker(m_transactionMutex);
+ m_currentTransaction = 0;
+
+ if (m_transactionQueue.size())
+ m_databaseThread->scheduleTask(this, new DatabaseTransactionTask);
}
-
- scheduleDatabaseCallback(new DatabaseChangeVersionCallback(callback, result));
}
-void Database::performExecuteSql(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback)
+void Database::changeVersion(const String& oldVersion, const String& newVersion,
+ PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback)
{
- ASSERT(callback);
-
- RefPtr<SQLResultSet> resultSet = new SQLResultSet;
- bool succeeded = true;
-
- m_databaseAuthorizer->reset();
-
- SQLiteStatement statement(m_threadSQLDatabase, sqlStatement);
- int result = statement.prepare();
- if (result != SQLResultOk) {
- LOG(StorageAPI, "Failed to prepare sql query '%s' - error was: %s", sqlStatement.ascii().data(), statement.lastErrorMsg());
- succeeded = false;
- resultSet->setErrorCode(1);
- resultSet->setErrorMessage(m_threadSQLDatabase.lastErrorMsg());
- }
-
- if (succeeded) {
- for (unsigned i = 0; i < arguments.size(); ++i) {
- if (statement.bindValue(i + 1, arguments[i]) != SQLResultOk) {
- LOG(StorageAPI, "Failed to bind value index %i to statement for query '%s'", i + 1, sqlStatement.ascii().data());
- // FIXME: Mark the transaction invalid here once we implement the transaction part of the spec
- succeeded = false;
- resultSet->setErrorCode(1);
- resultSet->setErrorMessage(m_threadSQLDatabase.lastErrorMsg());
- break;
- }
- }
- }
-
- // Step so we can fetch the column names.
- result = statement.step();
- if (result == SQLResultRow && succeeded) {
- int columnCount = statement.columnCount();
- SQLResultSetRowList* rows = resultSet->rows();
+ scheduleTransaction(new SQLTransaction(this, callback, errorCallback, new ChangeVersionWrapper(oldVersion, newVersion)));
+}
- for (int i = 0; i < columnCount; i++)
- rows->addColumn(statement.getColumnName16(i));
+void Database::transaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback)
+{
+ scheduleTransaction(new SQLTransaction(this, callback, errorCallback, 0));
+}
- do {
- for (int i = 0; i < columnCount; i++) {
- // FIXME: Look at the column type
- rows->addResult(statement.getColumnText16(i));
- }
+void Database::scheduleTransaction(PassRefPtr<SQLTransaction> transaction)
+{
+ MutexLocker locker(m_transactionMutex);
+ m_transactionQueue.append(transaction);
+ if (!m_currentTransaction)
+ m_databaseThread->scheduleTask(this, new DatabaseTransactionTask);
+}
- result = statement.step();
- } while (result == SQLResultRow);
+void Database::scheduleTransactionStep()
+{
+ MutexLocker locker(m_transactionMutex);
+ m_databaseThread->scheduleTask(this, new DatabaseTransactionTask);
+}
- if (result != SQLResultDone) {
- resultSet->setErrorCode(1);
- resultSet->setErrorMessage(m_threadSQLDatabase.lastErrorMsg());
- succeeded = false;
+void Database::scheduleTransactionCallback(SQLTransaction* transaction)
+{
+ MutexLocker locker(globalCallbackMutex());
+ {
+ MutexLocker locker(m_callbackMutex);
+
+ ASSERT(!m_transactionPendingCallback);
+ m_transactionPendingCallback = transaction;
+ globalCallbackSet().add(this);
+ if (!s_globalCallbackScheduled) {
+ callOnMainThread(deliverAllPendingCallbacks);
+ s_globalCallbackScheduled = true;
}
- } else if (result == SQLResultDone && succeeded) {
- // Didn't find anything, or was an insert
- if (m_databaseAuthorizer->lastActionWasInsert())
- resultSet->setInsertId(m_threadSQLDatabase.lastInsertRowID());
- } else if (succeeded) {
- // A new error occured on the first step of the statement - record it here
- resultSet->setErrorCode(1);
- resultSet->setErrorMessage(m_threadSQLDatabase.lastErrorMsg());
- succeeded = false;
}
-
- // FIXME: If the spec allows triggers, and we want to be "accurate" in a different way, we'd use
- // sqlite3_total_changes() here instead of sqlite3_changed, because that includes rows modified from within a trigger
- // For now, this seems sufficient
- if (succeeded)
- resultSet->setRowsAffected(m_threadSQLDatabase.lastChanges());
-
- scheduleDatabaseCallback(new DatabaseExecuteSqlCallback(callback, resultSet.release()));
-}
-
-void Database::performCloseTransaction()
-{
- notImplemented();
}
Vector<String> Database::performGetTableNames()
{
disableAuthorizer();
- SQLiteStatement statement(m_threadSQLDatabase, "SELECT name FROM sqlite_master WHERE type='table';");
+ SQLiteStatement statement(m_sqliteDatabase, "SELECT name FROM sqlite_master WHERE type='table';");
if (statement.prepare() != SQLResultOk) {
LOG_ERROR("Unable to retrieve list of tables for database %s", databaseDebugName().ascii().data());
enableAuthorizer();
MutexLocker locker(guidMutex());
return guidToVersionMap().get(m_guid).copy();
}
-
-void Database::changeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback> callback)
-{
- ASSERT(m_databaseThread);
- m_databaseThread->scheduleTask(this, new DatabaseChangeVersionTask(oldVersion, newVersion, callback));
-}
-
-void Database::executeSql(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback, ExceptionCode& e)
-{
- // 4.11.3 Step 1 - Statement and argument validation
- // FIXME: Currently the best way we have to validate the statement is to create an actual SQLiteStatement and prepare it. We can't prepare on
- // the main thread and run on the worker thread, because the worker thread might be in the middle of database activity. So we have two options
- // 1 - Break up the executeSql task into two steps. Step 1 is prepare the statement on the background thread while the main thread waits. If
- // the statement is valid, the main thread can return and step 2 would continue asynchronously, actually running the statement and generating results
- // The synchronous step 1 could "cut in line", but the main thread could still block waiting for any currently running query to complete
- // 2 - Keep a main thread connection around, and keep a worker thread connection around. The main thread connection will be used solely to prepare
- // statements, checking them for validity. After a statement is clear, the work can be scheduled on the background thread. This way, if there is a
- // read-only query running on the background thread, the main thread can simultaneously do the prepare on the main thread and there will be no
- // contention. This is an advantage over #1. A disadvantage is that between the prepare on the main thread and actually performing the query on the
- // background thread, there is a time window where the schema could change and the statement is no longer valid.
- // 3 - A much more complex, less tested, but possibly premium solution is to do #1, but combine it with the use of the sqlite_busy_handler. This would allow
- // any long-running queries to periodically check and see if there's anything they need to do. The sqlite3 docs claim sqlite is theoretically reentrant,
- // and therefore a statement could be prepared inside a busy handler, if just to check for validation. But it is also likely untested, and is not recc.
- // Testing must be done on this possibility before going forward with it
- //
- // For now, I'm going with solution #2, as it is easiest to implement and the true badness of its "con" is dubious.
-
- SQLiteStatement statement(m_mainSQLDatabase, sqlStatement);
- int result = statement.prepare();
-
- // Workaround for <rdar://problem/5537019> - a prepare on 1 connection immediately after a statement that changes the schema on the second connection
- // can fail with a SQLResultSchema error. Trying to prepare it a second time will succeed, assuming it is actually a valid statement
- if (result == SQLResultSchema) {
- statement.finalize();
- result = statement.prepare();
- }
-
- if (result != SQLResultOk) {
- LOG(StorageAPI, "Unable to verify correctness of statement %s - error %i (%s)", sqlStatement.ascii().data(), result, statement.lastErrorMsg());
- e = SYNTAX_ERR;
- return;
- }
-
- // FIXME: If the statement uses the ?### syntax supported by sqlite, the bind parameter count is very likely off from the number of question marks.
- // If this is the case, they might be trying to do something fishy or malicious
- if (statement.bindParameterCount() != arguments.size()) {
- LOG(StorageAPI, "Bind parameter count doesn't match number of question marks - someone's trying to use the ?### format and this might be bad");
- e = SYNTAX_ERR;
- return;
- }
-
- statement.finalize();
-
- // FIXME: There is one remaining error with the above procedure. The statement might have ?### style binds in it that will still escape the above checks
- // For example, a statement with "?2 ?2" in it will have 2 question marks, a bind parameter count of 2, but bind number 1 will not be valid.
- // To catch this, we either need to do a dry run of bindings here (which might be expensive), or do some manual parsing to make sure ?### isn't used at all
-
- // FIXME: Haven't yet implemented the thread global transaction due to ambiguity/churn in the spec
- // 4.11.3 Step 2 - Assign existing transaction or begin a new one to "transaction" associated with this statement
-
- // FIXME: Haven't yet implemented the thread global transaction due to ambiguity/churn in the spec
- // 4.11.3 Step 3 - If "transaction" is marked as bad, throw "INVALID_STATE_ERR" exception
-
- ASSERT(m_databaseThread);
- m_databaseThread->scheduleTask(this, new DatabaseExecuteSqlTask(sqlStatement, arguments, callback));
-}
-
-void Database::closeTransaction()
-{
- // FIXME: Haven't yet implemented the thread global transaction due to ambiguity/churn in the spec
- notImplemented();
-}
-
+
void Database::deliverAllPendingCallbacks()
{
Vector<RefPtr<Database> > databases;
LOG(StorageAPI, "Having %u databases deliver their pending callbacks", databases.size());
for (unsigned i = 0; i < databases.size(); ++i)
- databases[i]->deliverPendingCallbacks();
+ databases[i]->deliverPendingCallback();
}
-void Database::deliverPendingCallbacks()
+void Database::deliverPendingCallback()
{
- Vector<RefPtr<DatabaseCallback> > callbacks;
+ RefPtr<SQLTransaction> transaction;
{
MutexLocker locker(m_callbackMutex);
- callbacks.swap(m_pendingCallbacks);
+
+ ASSERT(m_transactionPendingCallback);
+ transaction = m_transactionPendingCallback.release();
}
- LOG(StorageAPI, "Delivering %u callbacks for database %p", callbacks.size(), this);
- for (unsigned i = 0; i < callbacks.size(); ++i)
- callbacks[i]->performCallback();
+ transaction->performPendingCallback();
}
Vector<String> Database::tableNames()
return task->tableNames();
}
+void Database::setExpectedVersion(const String& version)
+{
+ m_expectedVersion = version.copy();
+}
+
+
}
#include "PlatformString.h"
#include "SecurityOrigin.h"
#include "SQLiteDatabase.h"
+#include "SQLTransaction.h"
#include "StringHash.h"
#include "Threading.h"
#include "Timer.h"
-#include "VersionChangeCallback.h"
#include <wtf/Forward.h>
#include <wtf/HashSet.h>
namespace WebCore {
class DatabaseAuthorizer;
-class DatabaseCallback;
class DatabaseThread;
class Document;
-class SQLCallback;
class SQLResultSet;
+class SQLTransactionCallback;
+class SQLTransactionErrorCallback;
class SQLValue;
-
+
typedef int ExceptionCode;
class Database : public ThreadSafeShared<Database> {
+ friend class SQLStatement;
+ friend class SQLTransaction;
public:
~Database();
// Direct support for the DOM API
- static PassRefPtr<Database> openDatabase(Document* document, const String& name, const String& expectedVersion, ExceptionCode&);
-
+ static PassRefPtr<Database> openDatabase(Document* document, const String& name, const String& expectedVersion, const String& displayName, unsigned long estimatedSize, ExceptionCode&);
String version() const;
- void changeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback> callback);
-
- void executeSql(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback, ExceptionCode&);
- void closeTransaction();
-
+ void changeVersion(const String& oldVersion, const String& newVersion,
+ PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback);
+ void transaction(PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback);
+
// Internal engine support
void databaseThreadGoingAway();
static const String& databaseInfoTableName();
Document* document() const { return m_document; }
+ bool getVersionFromDatabase(String&);
+ bool setVersionInDatabase(const String&);
+ void setExpectedVersion(const String&);
+ bool versionMatchesExpected() const;
+
// Called from DatabaseThread, must be prepared to work on the background thread
void resetAuthorizer();
void performPolicyChecks();
bool performOpenAndVerify(ExceptionCode&);
- void performChangeVersion(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback> callback);
- void performExecuteSql(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback);
- void performCloseTransaction();
+
+ void performTransactionStep();
+
Vector<String> performGetTableNames();
private:
Database(Document* document, const String& name, const String& expectedVersion);
bool openAndVerifyVersion(ExceptionCode&);
- bool getVersionFromDatabase(String&);
- bool setVersionInDatabase(const String&);
+ void scheduleTransaction(PassRefPtr<SQLTransaction>);
+ void scheduleTransactionCallback(SQLTransaction*);
+ void scheduleTransactionStep();
+
+ Mutex m_transactionMutex;
+ Deque<RefPtr<SQLTransaction> > m_transactionQueue;
+ RefPtr<SQLTransaction> m_currentTransaction;
+
static void scheduleFileSizeTimerOnMainThread(Database*);
static void performScheduleFileSizeTimers();
void scheduleFileSizeTimer();
OwnPtr<Timer<Database> > m_sizeTimer;
static void deliverAllPendingCallbacks();
- void deliverPendingCallbacks();
-
- void scheduleDatabaseCallback(DatabaseCallback*);
+ void deliverPendingCallback();
- // FIXME: Is it okay to reconcile hanging on to the raw pointer? We definitely have to rely on
- // Document telling DatabaseThread it's going away, and DatabaseThread telling Database its going away
Document* m_document;
SecurityOrigin m_securityOrigin;
String m_name;
String m_expectedVersion;
String m_filename;
- SQLiteDatabase m_mainSQLDatabase;
- SQLiteDatabase m_threadSQLDatabase;
+ SQLiteDatabase m_sqliteDatabase;
RefPtr<DatabaseAuthorizer> m_databaseAuthorizer;
- Mutex m_databaseThreadMutex;
DatabaseThread* m_databaseThread;
Mutex m_callbackMutex;
- Vector<RefPtr<DatabaseCallback> > m_pendingCallbacks;
+ RefPtr<SQLTransaction> m_transactionPendingCallback;
#ifndef NDEBUG
String databaseDebugName() const { return m_securityOrigin.toString() + "::" + m_name; }
interface Database {
readonly attribute DOMString version;
- [Custom] boolean changeVersion(in DOMString oldVersion, in DOMString newVersion, in VersionChangeCallback callback);
- [Custom] void executeSql(in DOMString sqlStatement, in ObjectArray arguments, in SQLCallback callback);
- void closeTransaction();
+ [Custom] void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback);
+ [Custom] void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback);
};
}
#include "Database.h"
#include "Logging.h"
#include "SQLValue.h"
-#include "SQLCallback.h"
namespace WebCore {
DatabaseTask::DatabaseTask()
: m_complete(false)
- , m_synchronous(false)
{
}
LOG(StorageAPI, "Performing DatabaseTask %p\n", this);
- if (m_synchronous)
- m_synchronousMutex.lock();
+ if (m_synchronousMutex)
+ m_synchronousMutex->lock();
+
db->resetAuthorizer();
doPerformTask(db);
m_complete = true;
- if (m_synchronous) {
- m_synchronousCondition.signal();
- m_synchronousMutex.unlock();
+ if (m_synchronousMutex) {
+ ASSERT(m_synchronousCondition);
+ m_synchronousCondition->signal();
+ m_synchronousMutex->unlock();
}
+
}
void DatabaseTask::lockForSynchronousScheduling()
{
- m_synchronousMutex.lock();
- m_synchronous = true;
+ ASSERT(!m_synchronousMutex);
+ m_synchronousMutex.set(new Mutex);
+ m_synchronousMutex->lock();
}
void DatabaseTask::waitForSynchronousCompletion()
{
// Caller of this method must lock this object beforehand
- ASSERT(m_synchronousMutex.tryLock() == false);
-
- m_synchronousCondition.wait(m_synchronousMutex);
- m_synchronous = false;
- m_synchronousMutex.unlock();
+ ASSERT(m_synchronousMutex && m_synchronousMutex->tryLock() == false);
+ m_synchronousCondition.set(new ThreadCondition);
+ m_synchronousCondition->wait(*m_synchronousMutex.get());
+ m_synchronousMutex->unlock();
}
// *** DatabaseOpenTask ***
// *** DatabaseExecuteSqlTask ***
// Runs the passed in sql query along with the arguments, and calls the callback with the results
-DatabaseExecuteSqlTask::DatabaseExecuteSqlTask(const String& query, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback)
+DatabaseTransactionTask::DatabaseTransactionTask()
: DatabaseTask()
- , m_query(query.copy())
- , m_arguments(arguments)
- , m_callback(callback)
-{
- ASSERT(callback->isThreadSafe());
-}
-
-void DatabaseExecuteSqlTask::doPerformTask(Database* db)
-{
- db->performExecuteSql(m_query, m_arguments, m_callback);
-}
-
-// *** DatabaseChangeVersionTask ***
-// Atomically verifies the current version is the same as the passed in "old version", and changes it to the new version
-
-DatabaseChangeVersionTask::DatabaseChangeVersionTask(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback> callback)
- : m_oldVersion(oldVersion.copy())
- , m_newVersion(newVersion.copy())
- , m_callback(callback)
{
- ASSERT(callback->isThreadSafe());
}
-void DatabaseChangeVersionTask::doPerformTask(Database* db)
+void DatabaseTransactionTask::doPerformTask(Database* db)
{
- db->performChangeVersion(m_oldVersion, m_newVersion, m_callback);
+ db->performTransactionStep();
}
// *** DatabaseTableNamesTask ***
#include "ExceptionCode.h"
#include "PlatformString.h"
#include "Threading.h"
+#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
class DatabaseThread;
class SQLValue;
class SQLCallback;
+class SQLTransaction;
class VersionChangeCallback;
class DatabaseTask : public ThreadSafeShared<DatabaseTask>
bool m_complete;
- Mutex m_synchronousMutex;
- bool m_synchronous;
- ThreadCondition m_synchronousCondition;
+ OwnPtr<Mutex> m_synchronousMutex;
+ OwnPtr<ThreadCondition> m_synchronousCondition;
};
class DatabaseOpenTask : public DatabaseTask
bool m_success;
};
-class DatabaseChangeVersionTask : public DatabaseTask
+class DatabaseTransactionTask : public DatabaseTask
{
public:
- DatabaseChangeVersionTask(const String& oldVersion, const String& newVersion, PassRefPtr<VersionChangeCallback>);
-
-protected:
- virtual void doPerformTask(Database* db);
-
-private:
- String m_oldVersion;
- String m_newVersion;
- RefPtr<VersionChangeCallback> m_callback;
-};
-
-class DatabaseExecuteSqlTask : public DatabaseTask
-{
-public:
- DatabaseExecuteSqlTask(const String& query, const Vector<SQLValue>& arguments, PassRefPtr<SQLCallback> callback);
-
-protected:
- virtual void doPerformTask(Database* db);
-
-private:
- String m_query;
- Vector<SQLValue> m_arguments;
- RefPtr<SQLCallback> m_callback;
-};
-
-class DatabaseCloseTransactionTask: public DatabaseTask
-{
-public:
- DatabaseCloseTransactionTask();
+ DatabaseTransactionTask();
protected:
virtual void doPerformTask(Database* db);
+++ /dev/null
-/*
- * Copyright (C) 2007 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 storage {
-
- interface SQLCallback {
- void handleEvent(in SQLResultSet resultSet);
- };
-
-}
class SQLError : public ThreadSafeShared<SQLError> {
public:
- SQLError(unsigned code, const String& message) : m_code(code), m_message(message) { }
+ SQLError(unsigned code, const String& message) : m_code(code), m_message(message.copy()) { }
unsigned code() const { return m_code; }
- const String& message() const { return m_message; }
+ String message() const { return m_message.copy(); }
private:
unsigned m_code;
, m_insertId(0)
, m_insertIdSet(false)
, m_rowsAffected(0)
- , m_errorCode(0)
- , m_error("")
{
}
return m_rowsAffected;
}
-unsigned SQLResultSet::errorCode() const
-{
- return m_errorCode;
-}
-
-String SQLResultSet::error() const
-{
- return m_error;
-}
-
SQLResultSetRowList* SQLResultSet::rows() const
{
- if (m_errorCode != 0)
- return 0;
-
return m_rows.get();
}
m_rowsAffected = count;
}
-void SQLResultSet::setErrorCode(unsigned code)
-{
- ASSERT(code <= MaxErrorCode);
- m_errorCode = code;
-}
-
-void SQLResultSet::setErrorMessage(const String& message)
-{
- // 4.11.4 - The error DOM attribute must return an error message...describing the error encountered by the last statement.
- // If there was no error, the attribute's value must be the empty string (not the null string)
-
- if (message.isNull())
- m_error = "";
- else
- m_error = message.copy();
-}
-
}
int64_t insertId(ExceptionCode&) const;
int rowsAffected() const;
- unsigned errorCode() const;
- String error() const;
-
// For internal (non-JS) use
void setInsertId(int64_t);
void setRowsAffected(int);
- void setErrorCode(unsigned);
- void setErrorMessage(const String&);
private:
RefPtr<SQLResultSetRowList> m_rows;
int64_t m_insertId;
bool m_insertIdSet;
int m_rowsAffected;
- unsigned m_errorCode;
- String m_error;
};
} // namespace WebCore
readonly attribute int insertId
getter raises(DOMException);
readonly attribute int rowsAffected;
- readonly attribute unsigned int errorCode;
- readonly attribute DOMString error;
};
}
--- /dev/null
+/*
+ * Copyright (C) 2007 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.
+ */
+#include "config.h"
+#include "SQLStatement.h"
+
+#include "Database.h"
+#include "DatabaseAuthorizer.h"
+#include "Logging.h"
+#include "SQLError.h"
+#include "SQLiteDatabase.h"
+#include "SQLiteStatement.h"
+#include "SQLResultSet.h"
+#include "SQLStatementCallback.h"
+#include "SQLStatementErrorCallback.h"
+#include "SQLTransaction.h"
+#include "SQLValue.h"
+
+namespace WebCore {
+
+SQLStatement::SQLStatement(const String& statement, const Vector<SQLValue>& arguments, PassRefPtr<SQLStatementCallback> callback, PassRefPtr<SQLStatementErrorCallback> errorCallback)
+ : m_statement(statement.copy())
+ , m_arguments(arguments)
+ , m_statementCallback(callback)
+ , m_statementErrorCallback(errorCallback)
+{
+}
+
+bool SQLStatement::execute(Database* db)
+{
+ ASSERT(!m_resultSet);
+
+ // This transaction might have been marked bad while it was being set up on the main thread
+ if (m_error)
+ return false;
+
+ SQLiteDatabase* database = &db->m_sqliteDatabase;
+
+ SQLiteStatement statement(*database, m_statement);
+ int result = statement.prepare();
+
+ if (result != SQLResultOk) {
+ LOG(StorageAPI, "Unable to verify correctness of statement %s - error %i (%s)", m_statement.ascii().data(), result, statement.lastErrorMsg());
+ m_error = new SQLError(1, database->lastErrorMsg());
+ return false;
+ }
+
+ // FIXME: If the statement uses the ?### syntax supported by sqlite, the bind parameter count is very likely off from the number of question marks.
+ // If this is the case, they might be trying to do something fishy or malicious
+ if (statement.bindParameterCount() != m_arguments.size()) {
+ LOG(StorageAPI, "Bind parameter count doesn't match number of question marks");
+ m_error = new SQLError(1, "number of '?'s in statement string does not match argument count");
+ return false;
+ }
+
+ for (unsigned i = 0; i < m_arguments.size(); ++i) {
+ if (statement.bindValue(i + 1, m_arguments[i]) != SQLResultOk) {
+ LOG(StorageAPI, "Failed to bind value index %i to statement for query '%s'", i + 1, m_statement.ascii().data());
+ m_error = new SQLError(1, database->lastErrorMsg());
+ return false;
+ }
+ }
+
+ RefPtr<SQLResultSet> resultSet = new SQLResultSet;
+
+ // Step so we can fetch the column names.
+ result = statement.step();
+ if (result == SQLResultRow) {
+ int columnCount = statement.columnCount();
+ SQLResultSetRowList* rows = resultSet->rows();
+
+ for (int i = 0; i < columnCount; i++)
+ rows->addColumn(statement.getColumnName16(i));
+
+ do {
+ for (int i = 0; i < columnCount; i++) {
+ // FIXME: Look at the column type?
+ rows->addResult(statement.getColumnText16(i));
+ }
+
+ result = statement.step();
+ } while (result == SQLResultRow);
+
+ if (result != SQLResultDone) {
+ m_error = new SQLError(1, database->lastErrorMsg());
+ return false;
+ }
+ } else if (result == SQLResultDone) {
+ // Didn't find anything, or was an insert
+ if (db->m_databaseAuthorizer->lastActionWasInsert())
+ resultSet->setInsertId(database->lastInsertRowID());
+ } else {
+ m_error = new SQLError(1, database->lastErrorMsg());
+ return false;
+ }
+
+ // FIXME: If the spec allows triggers, and we want to be "accurate" in a different way, we'd use
+ // sqlite3_total_changes() here instead of sqlite3_changed, because that includes rows modified from within a trigger
+ // For now, this seems sufficient
+ resultSet->setRowsAffected(database->lastChanges());
+
+ m_resultSet = resultSet;
+ return true;
+}
+
+void SQLStatement::setVersionMismatchedError()
+{
+ ASSERT(!m_error && !m_resultSet);
+ m_error = new SQLError(2, "current version of the database and `oldVersion` argument do not match");
+}
+
+bool SQLStatement::performCallback(SQLTransaction* transaction)
+{
+ ASSERT(transaction);
+
+ bool callbackError = false;
+
+ // Call the appropriate statement callback and track if it resulted in an error,
+ // because then we need to jump to the transaction error callback.
+ if (m_error) {
+ ASSERT(m_statementErrorCallback);
+ callbackError = m_statementErrorCallback->handleEvent(transaction, m_error.get());
+ } else if (m_statementCallback)
+ m_statementCallback->handleEvent(transaction, m_resultSet.get(), callbackError);
+
+ return callbackError;
+}
+
+} // namespace WebCore
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifndef SQLStatment_h
+#define SQLStatment_h
-#ifndef DatabaseCallback_h
-#define DatabaseCallback_h
-
+#include "PlatformString.h"
#include "Threading.h"
+
+#include "SQLError.h"
+#include "SQLResultSet.h"
+#include "SQLStatementCallback.h"
+#include "SQLStatementErrorCallback.h"
+#include "SQLValue.h"
+
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
namespace WebCore {
-class SQLCallback;
-class SQLResultSet;
-class VersionChangeCallback;
-
-class DatabaseCallback : public ThreadSafeShared<DatabaseCallback> {
-public:
- virtual ~DatabaseCallback() { }
- virtual void performCallback() = 0;
-};
+class Database;
+class SQLTransaction;
+class String;
-class DatabaseChangeVersionCallback : public DatabaseCallback {
+class SQLStatement : public ThreadSafeShared<SQLStatement> {
public:
- DatabaseChangeVersionCallback(PassRefPtr<VersionChangeCallback>, bool versionChanged);
- virtual ~DatabaseChangeVersionCallback() { }
- virtual void performCallback();
+ SQLStatement(const String& statement, const Vector<SQLValue>& arguments, PassRefPtr<SQLStatementCallback> callback, PassRefPtr<SQLStatementErrorCallback> errorCallback);
+
+ bool execute(Database*);
+ bool hasStatementCallback() const { return m_statementCallback; }
+ bool hasStatementErrorCallback() const { return m_statementErrorCallback; }
+ void setVersionMismatchedError();
+ bool performCallback(SQLTransaction*);
+
+ SQLError* sqlError() const { return m_error.get(); }
private:
- RefPtr<VersionChangeCallback> m_callback;
- bool m_versionChanged;
-};
-
-class DatabaseExecuteSqlCallback : public DatabaseCallback {
-public:
- DatabaseExecuteSqlCallback(PassRefPtr<SQLCallback>, PassRefPtr<SQLResultSet>);
- virtual ~DatabaseExecuteSqlCallback() { }
- virtual void performCallback();
-private:
- RefPtr<SQLCallback> m_callback;
+ String m_statement;
+ Vector<SQLValue> m_arguments;
+ RefPtr<SQLStatementCallback> m_statementCallback;
+ RefPtr<SQLStatementErrorCallback> m_statementErrorCallback;
+
+ RefPtr<SQLError> m_error;
RefPtr<SQLResultSet> m_resultSet;
};
} // namespace WebCore
-#endif // DatabaseCallback_h
+#endif // SQLStatment_h
--- /dev/null
+/*
+ * Copyright (C) 2007 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.
+ */
+#include "config.h"
+#include "SQLTransaction.h"
+
+#include "Database.h"
+#include "DatabaseAuthorizer.h"
+#include "ExceptionCode.h"
+#include "Logging.h"
+#include "PlatformString.h"
+#include "SQLError.h"
+#include "SQLiteTransaction.h"
+#include "SQLResultSet.h"
+#include "SQLStatement.h"
+#include "SQLStatementCallback.h"
+#include "SQLStatementErrorCallback.h"
+#include "SQLValue.h"
+
+namespace WebCore {
+
+SQLTransaction::SQLTransaction(Database* db, PassRefPtr<SQLTransactionCallback> callback, PassRefPtr<SQLTransactionErrorCallback> errorCallback, PassRefPtr<SQLTransactionWrapper> wrapper)
+ : m_nextStep(&SQLTransaction::openTransactionAndPreflight)
+ , m_executeSqlAllowed(false)
+ , m_database(db)
+ , m_wrapper(wrapper)
+ , m_callback(callback)
+ , m_errorCallback(errorCallback)
+ , m_shouldCommitAfterErrorCallback(true)
+{
+ ASSERT(m_database);
+}
+
+void SQLTransaction::executeSQL(const String& sqlStatement, const Vector<SQLValue>& arguments, PassRefPtr<SQLStatementCallback> callback, PassRefPtr<SQLStatementErrorCallback> callbackError, ExceptionCode& e)
+{
+ if (!m_executeSqlAllowed) {
+ e = INVALID_STATE_ERR;
+ return;
+ }
+
+ RefPtr<SQLStatement> statement = new SQLStatement(sqlStatement.copy(), arguments, callback, callbackError);
+
+ if (!m_database->versionMatchesExpected())
+ statement->setVersionMismatchedError();
+
+ enqueueStatement(statement);
+}
+
+void SQLTransaction::enqueueStatement(PassRefPtr<SQLStatement> statement)
+{
+ MutexLocker locker(m_statementMutex);
+ m_statementQueue.append(statement);
+}
+
+bool SQLTransaction::performNextStep()
+{
+ ASSERT(m_nextStep == &SQLTransaction::openTransactionAndPreflight ||
+ m_nextStep == &SQLTransaction::runStatements ||
+ m_nextStep == &SQLTransaction::postflightAndCommit ||
+ m_nextStep == &SQLTransaction::cleanupAfterTransactionErrorCallback);
+
+ (this->*m_nextStep)();
+
+ // If there is no nextStep after performing the above step, the transaction is complete
+ return !m_nextStep;
+}
+
+void SQLTransaction::performPendingCallback()
+{
+ ASSERT(m_nextStep == &SQLTransaction::deliverTransactionCallback ||
+ m_nextStep == &SQLTransaction::deliverTransactionErrorCallback ||
+ m_nextStep == &SQLTransaction::deliverStatementCallback);
+
+ (this->*m_nextStep)();
+}
+
+void SQLTransaction::openTransactionAndPreflight()
+{
+ LOG(StorageAPI, "Opening and preflighting transaction %p", this);
+
+ ASSERT(!m_sqliteTransaction);
+ m_sqliteTransaction.set(new SQLiteTransaction(m_database->m_sqliteDatabase));
+
+ m_database->m_databaseAuthorizer->disable();
+ m_sqliteTransaction->begin();
+ m_database->m_databaseAuthorizer->enable();
+
+ // Transaction Steps 1+2 - Open a transaction to the database, jumping to the error callback if that fails
+ if (!m_sqliteTransaction->inProgress()) {
+ m_sqliteTransaction.clear();
+ m_transactionError = new SQLError(0, "unable to open a transaction to the database");
+ handleTransactionError(false);
+ return;
+ }
+
+ // Transaction Steps 3 - Peform preflight steps, jumping to the error callback if they fail
+ if (m_wrapper && !m_wrapper->performPreflight(this)) {
+ m_sqliteTransaction.clear();
+ m_transactionError = m_wrapper->sqlError();
+ if (!m_transactionError)
+ m_transactionError = new SQLError(0, "unknown error occured setting up transaction");
+
+ handleTransactionError(false);
+ return;
+ }
+
+ // Transaction Step 4 - Invoke the transaction callback with the new SQLTransaction object
+ m_nextStep = &SQLTransaction::deliverTransactionCallback;
+ m_database->scheduleTransactionCallback(this);
+}
+
+void SQLTransaction::deliverTransactionCallback()
+{
+ bool shouldDeliverErrorCallback = false;
+
+ if (m_callback) {
+ m_executeSqlAllowed = true;
+ m_callback->handleEvent(this, shouldDeliverErrorCallback);
+ m_executeSqlAllowed = false;
+ } else
+ shouldDeliverErrorCallback = true;
+
+ // Transaction Step 5 - If the transaction callback was null or raised an exception, jump to the error callback
+ if (shouldDeliverErrorCallback)
+ deliverTransactionErrorCallback();
+ else
+ scheduleToRunStatements();
+}
+
+void SQLTransaction::scheduleToRunStatements()
+{
+ m_currentStatement = 0;
+ m_nextStep = &SQLTransaction::runStatements;
+ m_database->scheduleTransactionStep();
+}
+
+void SQLTransaction::runStatements()
+{
+ ASSERT(!m_currentStatement);
+
+ // If there is a series of statements queued up that are all successful and have no associated
+ // SQLStatementCallback objects, then we can burn through the queue
+ do {
+ getNextStatement();
+ } while (runCurrentStatement());
+
+ // If runCurrentStatement() returned false, that means either there was no current statement to run,
+ // or the current statement requires a callback to complete. In the later case, it also scheduled
+ // the callback or performed any other additional work so we can return
+ if (!m_currentStatement)
+ postflightAndCommit();
+}
+
+void SQLTransaction::getNextStatement()
+{
+ m_currentStatement = 0;
+
+ MutexLocker locker(m_statementMutex);
+ if (!m_statementQueue.isEmpty()) {
+ m_currentStatement = m_statementQueue.first();
+ m_statementQueue.removeFirst();
+ }
+}
+
+bool SQLTransaction::runCurrentStatement()
+{
+ if (!m_currentStatement)
+ return false;
+
+ m_database->m_databaseAuthorizer->reset();
+
+ if (m_currentStatement->execute(m_database)) {
+ if (m_currentStatement->hasStatementCallback()) {
+ m_nextStep = &SQLTransaction::deliverStatementCallback;
+ m_database->scheduleTransactionCallback(this);
+ return false;
+ }
+ return true;
+ }
+
+ // Transaction Steps 6.error - Call the statement's error callback, but if there was no error callback,
+ // jump to the transaction error callback
+ if (m_currentStatement->hasStatementErrorCallback()) {
+ m_nextStep = &SQLTransaction::deliverStatementCallback;
+ m_database->scheduleTransactionCallback(this);
+ } else {
+ m_transactionError = m_currentStatement->sqlError();
+ if (!m_transactionError)
+ m_transactionError = new SQLError(1, "the statement failed to execute");
+ handleTransactionError(false);
+ }
+
+ return false;
+}
+
+void SQLTransaction::deliverStatementCallback()
+{
+ ASSERT(m_currentStatement);
+
+ // Transaction Step 6.6 and 6.3(error) - If the statement callback went wrong, jump to the transaction error callback
+ // Otherwise, continue to loop through the statement queue
+ m_executeSqlAllowed = true;
+ bool result = m_currentStatement->performCallback(this);
+ m_executeSqlAllowed = false;
+
+ if (result) {
+ m_transactionError = new SQLError(0, "the statement callback raised an exception or statement error callback did not return false");
+ handleTransactionError(true);
+ } else
+ scheduleToRunStatements();
+}
+
+void SQLTransaction::postflightAndCommit()
+{
+ // Transaction Step 7 - Peform postflight steps, jumping to the error callback if they fail
+ if (m_wrapper && !m_wrapper->performPostflight(this)) {
+ m_transactionError = m_wrapper->sqlError();
+ if (!m_transactionError)
+ m_transactionError = new SQLError(0, "unknown error occured setting up transaction");
+ handleTransactionError(false);
+ return;
+ }
+
+ // Transacton Step 8+9 - Commit the transaction, jumping to the error callback if that fails
+ ASSERT(m_sqliteTransaction);
+
+ m_database->m_databaseAuthorizer->disable();
+ m_sqliteTransaction->commit();
+ m_database->m_databaseAuthorizer->enable();
+
+ // If the commit failed, the transaction will still be marked as "in progress"
+ if (m_sqliteTransaction->inProgress()) {
+ m_shouldCommitAfterErrorCallback = false;
+ m_transactionError = new SQLError(0, "failed to commit the transaction");
+ handleTransactionError(false);
+ return;
+ }
+
+ // Transaction Step 10 - End transaction steps
+ // There is no next step
+ m_nextStep = 0;
+}
+
+void SQLTransaction::handleTransactionError(bool inCallback)
+{
+ if (m_errorCallback) {
+ if (inCallback)
+ deliverTransactionErrorCallback();
+ else {
+ m_nextStep = &SQLTransaction::deliverTransactionErrorCallback;
+ m_database->scheduleTransactionCallback(this);
+ }
+ return;
+ }
+
+ // Transaction Step 11 - If the callback couldn't be called, then rollback the transaction.
+ m_shouldCommitAfterErrorCallback = false;
+ if (inCallback) {
+ m_nextStep = &SQLTransaction::cleanupAfterTransactionErrorCallback;
+ m_database->scheduleTransactionStep();
+ } else {
+ cleanupAfterTransactionErrorCallback();
+ }
+}
+
+void SQLTransaction::deliverTransactionErrorCallback()
+{
+ ASSERT(m_errorCallback);
+ ASSERT(m_transactionError);
+
+ // Transaction Step 11 - If the callback didn't return false, then rollback the transaction.
+ if (m_errorCallback->handleEvent(m_transactionError.get()))
+ m_shouldCommitAfterErrorCallback = false;
+
+ m_nextStep = &SQLTransaction::cleanupAfterTransactionErrorCallback;
+ m_database->scheduleTransactionStep();
+}
+
+void SQLTransaction::cleanupAfterTransactionErrorCallback()
+{
+ m_database->m_databaseAuthorizer->disable();
+ if (m_sqliteTransaction) {
+ // Transaction Step 11 -If the error callback returned false, and the last error wasn't itself a
+ // failure when committing the transaction, then try to commit the transaction
+ if (m_shouldCommitAfterErrorCallback)
+ m_sqliteTransaction->commit();
+
+ // Transaction Step 11 - If that fails, or if the callback couldn't be called
+ // or if it didn't return false, then rollback the transaction.
+ if (m_sqliteTransaction->inProgress())
+ m_sqliteTransaction->rollback();
+
+ m_sqliteTransaction.clear();
+ }
+ m_database->m_databaseAuthorizer->enable();
+
+ // Transaction Step 11 - Any still-pending statements in the transaction are discarded.
+ {
+ MutexLocker locker(m_statementMutex);
+ m_statementQueue.clear();
+ }
+
+ // Transaction is complete! There is no next step
+ m_nextStep = 0;
+}
+
+} // namespace WebCore
+
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
#ifndef SQLTransaction_h
#define SQLTransaction_h
#include "Threading.h"
+#include "SQLiteTransaction.h"
+#include "SQLStatement.h"
+#include "SQLTransactionCallback.h"
+#include "SQLTransactionErrorCallback.h"
+#include <wtf/Deque.h>
+#include <wtf/Forward.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/RefPtr.h>
+#include <wtf/Vector.h>
+
namespace WebCore {
+typedef int ExceptionCode;
+
+class Database;
+class SQLError;
+class SQLStatementCallback;
+class SQLStatementErrorCallback;
+class SQLTransaction;
+class SQLValue;
+class String;
+
+class SQLTransactionWrapper : public ThreadSafeShared<SQLTransactionWrapper> {
+public:
+ virtual ~SQLTransactionWrapper() { }
+ virtual bool performPreflight(SQLTransaction*) = 0;
+ virtual bool performPostflight(SQLTransaction*) = 0;
+
+ virtual SQLError* sqlError() const = 0;
+};
+
class SQLTransaction : public ThreadSafeShared<SQLTransaction> {
+public:
+ SQLTransaction(Database*, PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>, PassRefPtr<SQLTransactionWrapper>);
+
+ void executeSQL(const String& sqlStatement, const Vector<SQLValue>& arguments,
+ PassRefPtr<SQLStatementCallback> callback, PassRefPtr<SQLStatementErrorCallback> callbackError, ExceptionCode& e);
+
+ bool performNextStep();
+ void performPendingCallback();
+
+ Database* database() { return m_database; }
+
+private:
+ typedef void (SQLTransaction::*TransactionStepMethod)();
+ TransactionStepMethod m_nextStep;
+
+ void enqueueStatement(PassRefPtr<SQLStatement>);
+
+ void openTransactionAndPreflight();
+ void deliverTransactionCallback();
+ void scheduleToRunStatements();
+ void runStatements();
+ void getNextStatement();
+ bool runCurrentStatement();
+ void deliverStatementCallback();
+ void postflightAndCommit();
+ void handleTransactionError(bool inCallback);
+ void deliverTransactionErrorCallback();
+ void cleanupAfterTransactionErrorCallback();
+
+ RefPtr<SQLStatement> m_currentStatement;
+
+ bool m_executeSqlAllowed;
+
+ Database* m_database;
+ RefPtr<SQLTransactionWrapper> m_wrapper;
+ RefPtr<SQLTransactionCallback> m_callback;
+ RefPtr<SQLTransactionErrorCallback> m_errorCallback;
+ RefPtr<SQLError> m_transactionError;
+ bool m_shouldCommitAfterErrorCallback;
+
+ Mutex m_statementMutex;
+ Deque<RefPtr<SQLStatement> > m_statementQueue;
+
+ OwnPtr<SQLiteTransaction> m_sqliteTransaction;
};
} // namespace WebCore
#endif // SQLTransaction_h
-
module storage {
interface SQLTransaction {
+ [Custom] void executeSql(in DOMString sqlStatement, in ObjectArray arguments, in SQLStatementCallback callback, in SQLStatementErrorCallback errorCallback);
};
}
+++ /dev/null
-/*
- * Copyright (C) 2007 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.
- */
-
-#ifndef VersionChangeCallback_h
-#define VersionChangeCallback_h
-
-#include "Threading.h"
-
-namespace WebCore {
-
- class SQLResultSet;
-
- class VersionChangeCallback : public ThreadSafeShared<VersionChangeCallback> {
- public:
- virtual ~VersionChangeCallback() { }
- virtual void handleEvent(bool) = 0;
- };
-
-} // namespace WebCore
-
-#endif // VersionChangeCallback_h
+++ /dev/null
-/*
- * Copyright (C) 2007 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 storage {
-
- interface VersionChangeCallback {
- void handleEvent(in boolean resultSet);
- };
-
-}
DD7CDEE70A23BA9E00069928 /* WebTypesInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = DD7CDEE60A23BA9E00069928 /* WebTypesInternal.h */; };
DD89682009AA87240097E7F0 /* WebElementDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = DD89681E09AA87240097E7F0 /* WebElementDictionary.h */; };
DD89682109AA87240097E7F0 /* WebElementDictionary.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD89681F09AA87240097E7F0 /* WebElementDictionary.mm */; };
- ED3B48DF0CC51F7E00DFF1EB /* StringsNotToBeLocalized.txt in Resources */ = {isa = PBXBuildFile; fileRef = ED3B48DE0CC51F7E00DFF1EB /* StringsNotToBeLocalized.txt */; };
+ ED3B48DF0CC51F7E00DFF1EB /* ../StringsNotToBeLocalized.txt in Resources */ = {isa = PBXBuildFile; fileRef = ED3B48DE0CC51F7E00DFF1EB /* ../StringsNotToBeLocalized.txt */; };
ED6BE2E7088C32B50044DEDC /* WebNSAttributedStringExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = ED6BE2E5088C32B50044DEDC /* WebNSAttributedStringExtras.h */; };
ED6BE2E8088C32B50044DEDC /* WebNSAttributedStringExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED6BE2E6088C32B50044DEDC /* WebNSAttributedStringExtras.mm */; };
ED7F6D8B0980683500C235ED /* WebNSDataExtrasPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7F6D8A0980683500C235ED /* WebNSDataExtrasPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
ED21B9810528F7AA003299AC /* WebDocumentInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebDocumentInternal.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
ED2B2474033A2DA800C1A526 /* WebNSPasteboardExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebNSPasteboardExtras.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
ED2B2475033A2DA800C1A526 /* WebNSPasteboardExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNSPasteboardExtras.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
- ED3B48DE0CC51F7E00DFF1EB /* StringsNotToBeLocalized.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ../StringsNotToBeLocalized.txt; sourceTree = "<group>"; };
+ ED3B48DE0CC51F7E00DFF1EB /* ../StringsNotToBeLocalized.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ../StringsNotToBeLocalized.txt; sourceTree = "<group>"; };
ED6BE2E5088C32B50044DEDC /* WebNSAttributedStringExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebNSAttributedStringExtras.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
ED6BE2E6088C32B50044DEDC /* WebNSAttributedStringExtras.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNSAttributedStringExtras.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
ED7F6D8A0980683500C235ED /* WebNSDataExtrasPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNSDataExtrasPrivate.h; sourceTree = "<group>"; };
isa = PBXGroup;
children = (
939811320824BF01008DF038 /* Info.plist */,
- ED3B48DE0CC51F7E00DFF1EB /* StringsNotToBeLocalized.txt */,
+ ED3B48DE0CC51F7E00DFF1EB /* ../StringsNotToBeLocalized.txt */,
35F3577E0198AAB80ACA1520 /* Localizable.strings */,
F5883BDE025E5C6A01000102 /* nullplugin.tiff */,
F5B67130023EDF8901C1A525 /* url_icon.tiff */,
files = (
939810BA0824BF01008DF038 /* IDNScriptWhiteList.txt in Resources */,
939810B30824BF01008DF038 /* Localizable.strings in Resources */,
- ED3B48DF0CC51F7E00DFF1EB /* StringsNotToBeLocalized.txt in Resources */,
+ ED3B48DF0CC51F7E00DFF1EB /* ../StringsNotToBeLocalized.txt in Resources */,
939810B50824BF01008DF038 /* WebAuthenticationPanel.nib in Resources */,
939810B40824BF01008DF038 /* WebJavaScriptTextInputPanel.nib in Resources */,
939810B90824BF01008DF038 /* WebViewEditingContextMenu.nib in Resources */,
+2007-11-12 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Tim
+
+ Update the DatabaseExample to use the new API
+
+ * misc/DatabaseExample.html:
+
2007-11-12 Mark Rowe <mrowe@apple.com>
* building/tools.html: Remove extra >.
- removed a workaround for the bug fixed in the WebCore part of this
patch
- * misc/DatabaseExample.html:
-
2007-11-04 Timothy Hatcher <timothy@apple.com>
Land the HTML Editing Toolbar demo from WWDC 2007.
<script>
var db;
try {
- db = openDatabase("NoteTest", "1.0");
+ db = openDatabase("NoteTest", "1.0", "HTML5 Database API example", 200000);
} catch(err) { }
if (!db) {
{
this.cancelPendingSave();
- db.executeSql("DELETE FROM WebKitStickyNotes WHERE id = ?", [this.id], function(result) {});
-
+ var note = this;
+ db.transaction(function(tx)
+ {
+ tx.executeSql("DELETE FROM WebKitStickyNotes WHERE id = ?", [note.id]);
+ });
+
var duration = event.shiftKey ? 2 : .25;
this.note.style.webkitTransition = '-webkit-transform ' + duration + 's ease-in, opacity ' + duration + 's ease-in';
this.note.offsetTop; // Force style recalc
delete this.dirty;
}
- db.executeSql("UPDATE WebKitStickyNotes SET note = ?, timestamp = ?, left = ?, top = ?, zindex = ? WHERE id = ?", [this.text, this.timestamp, this.left, this.top, this.zIndex, this.id], function(result) {});
+ var note = this;
+ db.transaction(function (tx)
+ {
+ tx.executeSql("UPDATE WebKitStickyNotes SET note = ?, timestamp = ?, left = ?, top = ?, zindex = ? WHERE id = ?", [note.text, note.timestamp, note.left, note.top, note.zIndex, note.id]);
+ });
},
saveAsNew: function()
{
this.timestamp = new Date().getTime();
- db.executeSql("INSERT INTO WebKitStickyNotes (id, note, timestamp, left, top, zindex) VALUES (?, ?, ?, ?, ?, ?)", [this.id, this.text, this.timestamp, this.left, this.top, this.zIndex], function(result) {});
+
+ var note = this;
+ db.transaction(function (tx)
+ {
+ tx.executeSql("INSERT INTO WebKitStickyNotes (id, note, timestamp, left, top, zindex) VALUES (?, ?, ?, ?, ?, ?)", [note.id, note.text, note.timestamp, note.left, note.top, note.zIndex]);
+ });
},
onMouseDown: function(e)
function loaded()
{
- try {
- db.executeSql("SELECT COUNT(*) FROM WebKitStickyNotes", [], function(result) { loadNotes(); });
- } catch(err) {
- db.executeSql("CREATE TABLE WebKitStickyNotes (id REAL UNIQUE, note TEXT, timestamp REAL, left TEXT, top TEXT, zindex REAL)", [], function(result) { loadNotes(); });
- }
+ db.transaction(function(tx) {
+ tx.executeSql("SELECT COUNT(*) FROM WebkitStickyNotes", [], function(result) {
+ loadNotes();
+ }, function(tx, error) {
+ tx.executeSql("CREATE TABLE WebKitStickyNotes (id REAL UNIQUE, note TEXT, timestamp REAL, left TEXT, top TEXT, zindex REAL)", [], function(result) {
+ loadNotes();
+ });
+ });
+ });
}
function loadNotes()
{
- db.executeSql("SELECT id, note, timestamp, left, top, zindex FROM WebKitStickyNotes", [], function(result) {
- if (result.errorCode) {
- alert('Failed to retrieve notes from database');
+ db.transaction(function(tx) {
+ tx.executeSql("SELECT id, note, timestamp, left, top, zindex FROM WebKitStickyNotes", [], function(tx, result) {
+ for (var i = 0; i < result.rows.length; ++i) {
+ var row = result.rows.item(i);
+ var note = new Note();
+ note.id = row['id'];
+ note.text = row['note'];
+ note.timestamp = row['timestamp'];
+ note.left = row['left'];
+ note.top = row['top'];
+ note.zIndex = row['zindex'];
+
+ if (row['id'] > highestId)
+ highestId = row['id'];
+ if (row['zindex'] > highestZ)
+ highestZ = row['zindex'];
+ }
+
+ if (!result.rows.length)
+ newNote();
+ }, function(tx, error) {
+ alert('Failed to retrieve notes from database - ' + error.message);
return;
- }
-
- for (var i = 0; i < result.rows.length; ++i) {
- var row = result.rows.item(i);
- var note = new Note();
- note.id = row['id'];
- note.text = row['note'];
- note.timestamp = row['timestamp'];
- note.left = row['left'];
- note.top = row['top'];
- note.zIndex = row['zindex'];
-
- if (row['id'] > highestId)
- highestId = row['id'];
- if (row['zindex'] > highestZ)
- highestZ = row['zindex'];
- }
-
- if (!result.rows.length)
- newNote();
+ });
});
}