However, this also reduces the usefulness of the API as a long-term Storage Sydney mechanism. It can also put the user’s data at risk, if the user does not fully understand the implications of data expiration. To this end, user agents should ensure that when deleting data, it is promptly deleted from the underlying Storage Sydney.. The user agent may raise a SECURITY_ERR exception instead of returning a object if the request violates a policy decision (e.g. if the user agent is configured to not allow the page to open databases). For the method on the Window object: let origin be the origin of the active document of the browsing context of the Window object on which the method was invoked. For the methods on the WorkerUtils object: let origin be the origin of the scripts in the worker. If origin is not a scheme/host/port tuple, then throw a SECURITY_ERR exception and abort these steps. If the database version provided is not the empty string, and there is already a database with the given name from the origin origin , but the database has a different version than the version provided, then throw an INVALID_STATE_ERR exception and abort these steps. If no database with the given name from the origin origin exists, then create the database and let created be true. If a callback was passed to the method, then set the new database’s version to the empty string. Otherwise, set the new database’s version to the given database version. Otherwise, if a database with the given name already exists, let created be false. For the methods: let result be a newly constructed object representing the database with the given database name from the origin origin . For the method: let result be a newly constructed object representing the database with the given database name from the origin origin . If created is false or if no callback was passed to the method, skip this step. Otherwise: For the methods: queue a task to to invoke the callback with result as its only argument. For the method: invoke the callback with result as its only argument. If the callback throws an exception, rethrow that exception and abort these steps. Return result ..