Re: [WebIDL] mixins and [[Prototype]]s (and objects)

2009-09-03 Thread Andrew Oakley
Cameron McCormack wrote:
 * modifying the interface prototype objects for the mixins does not
 change the mixin prototype object (e.g. if you added a new property it
 would not be visible);
 
 True.  (We could make the prototype objects for the mixing interfaces
 special, such that e.g. doing ‘EventTarget.prototype.a = 1’ would cause
 a property ‘a’ to be created on the relevant mixin prototype objects.)

OK, but this could potentially change the (unspecified) resolution order
if it isn't implemented carefully.  What happens if we [[Delete]] a
member on the mixin prototype object? (That might be a somewhat academic
question as you should not be able to access it, but Gecko based
browsers give you a __proto__ property.)

 …
 * if you could access the mixin prototype object, and it was shared
 between two interfaces, modifying it would change both interfaces
 
 Right.  But that’s the same as if you modify Node.prototype, then you
 are changing Elements, Texts, Comments, etc.

OK, but it is awkward to implement.

 Is it not possible to simply change how [[Get]] (and friends) works on
 the interface prototype object so it attempts to look up properties on
 all of the relevant interface prototype objects?  This could be
 specified in a recursive manner to produce a depth first search of the
 interface hierarchy, or it could be written using a more complex
 approach such as C3 ordering which seems to have become fashionable
 recently.
 
 Something similar to this, but without the C3 ordering (which David
 Andersson suggested at one point), was in an earlier draft:
 
   http://www.w3.org/TR/2008/WD-WebIDL-20080829/#interface-prototype-object
 
 IIRC there were concerns raised about breaking the explicit prototype
 chain and it being more of a burden to walk this inheritance tree for
 property lookups.

I had seen the email that is linked to by that edition of the spec, and
agree that without a sensible MRO it was broken.  I don't see that
breaking the explicit prototype chain is more of a problem than making
[[Put]] cause the property to be created on more than one object though.
 Were there any mailing list threads that I could look at so I could
understand why this was a problem?  I've implemented the scheme I
proposed since writing my last mail, and I haven't found any significant
problems (currently testing), but I guess how easy this is to do depends
on how inheritance is currently implemented.

 …
 It also makes it much simpler to deal with object elements - if we
 load an nsplugin (we may change which nsplugin is used of the lifetime
 of the object) we can just add the object created by the npruntime
 API as another parent of the HTMLObjectElement host object. How would
 you implement sensible behavior using the method described in the
 WebIDL specification?
 
 I haven’t been taking the use case of allowing the set of interfaces an
 object implements to change into account.  Is treating the JS interface
 that NS plugins expose as an IDL interface that the HTMLObjectElement
 must then also implement the way to think about it?  Without looking at
 any code to see how it’s currently done, I would probably just change
 [[Get]], etc. on HTMLObjectElement such that it takes the plugin’s
 interface into account.
 
 Admittedly that would violate the requirement that the [[Get]] of a host
 object operate in a particular way.

I'm not sure how the major vendors handle the nsruntime object, the
documentation doesn't seem clear.  I guess it is possible to handle it
in the way you suggested.  This (ab)use of [[Get]] seems similar to how
the WindowProxy object works in HTML5, so it wouldn't be the first time
its been done (and we change the prototype objects rather than actually
implementing the HTML5 behavior here).

CE-HTML allows audio and video to be embedded using object, and gives
interfaces for these cases.  The implication seems to be that there
should be interface prototype objects for these.  I *believe* Opera has
support for CE-HTML (but perhaps not on the standard versions, a quick
google shows that someone has spotted one in a User-Agent header), so it
would be interesting to find out how that behaves.

-- 
Andrew Oakley




RE: [Widget URI] Internationalization, widget IRI?

2009-09-03 Thread Marcin Hanclik
Hi Robin,

Thanks for your comments.

I believe the terminology could be clarified once the IRI/URI issue from PC 
gets solved in I18N, hopefully together with HREF and all related stuff.

+1 for simplification.

Thanks,
Marcin

Marcin Hanclik
ACCESS Systems Germany GmbH
Tel: +49-208-8290-6452  |  Fax: +49-208-8290-6465
Mobile: +49-163-8290-646
E-Mail: marcin.hanc...@access-company.com

-Original Message-
From: Robin Berjon [mailto:ro...@berjon.com]
Sent: Wednesday, September 02, 2009 11:17 PM
To: Marcin Hanclik
Cc: public-webapps WG
Subject: Re: [Widget URI] Internationalization, widget IRI?

Hi Marcin,

On Jul 24, 2009, at 18:36 , Marcin Hanclik wrote:
 Why is the Widgets 1.0: URI Scheme about URI and not IRI?

Because it was written quickly :) And also because I'm sick and tired
of the level of terminology needed to address (no pun intended) what
should be a simple field - I'd like to just say URI and since this
isn't a legacy context obviously it means IRI with the added advantage
that it doesn't hurt the brains of the majority of readers... Anyway,
no point in ranting over spilt beer I guess.

Based on the follow-up discussion what I've done is that I've used IRI
throughout the specification except when discussing URI schemes. I've
also updated the reference to be to RFC 3987 and the syntax to
reference iauthority, iquery, and ifragment - which is indeed more
correct.

Thanks!

--
Robin Berjon - http://berjon.com/






Access Systems Germany GmbH
Essener Strasse 5  |  D-46047 Oberhausen
HRB 13548 Amtsgericht Duisburg
Geschaeftsfuehrer: Michel Piquemal, Tomonori Watanabe, Yusuke Kanda

www.access-company.com

CONFIDENTIALITY NOTICE
This e-mail and any attachments hereto may contain information that is 
privileged or confidential, and is intended for use only by the
individual or entity to which it is addressed. Any disclosure, copying or 
distribution of the information by anyone else is strictly prohibited.
If you have received this document in error, please notify us promptly by 
responding to this e-mail. Thank you.



Re: DnD vs CnP (was Copy/Paste Events)

2009-09-03 Thread Ian Hickson
On Mon, 31 Aug 2009, Paul Libbrecht wrote:
 Le 31-ao�t-09 � 04:44, Ian Hickson a �crit :
 
   Honestly, I find the whole DnD and CnP treatment in HTML5 quite much 
   ad-hoc. It's welcome to have such an addition but it makes too many 
   arrangements and still is hard to read.
  
  Yes, it's a horrible model. It's one that had been implemented 
  multiple times before the spec existed, and implementations trump 
  pretty much everything except security problems when it comes to 
  deciding what the spec should say.
 
 could I request a pointer to implementations or, even better, test-cases 
 ?

This is where I'd like my test cases to be:

   http://hixie.ch/tests/adhoc/dom/web-apps/drag-and-drop/

...but I have very few so far.

Currently, Safari and IE support this API to some extent in their 
respective shipping products, and Firefox either supports it in the 
shipping version or in the next version, I don't recall (it's in the 
nightlies, either way).

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

[webdatabase] Minor Clarification Needed in Processing Model

2009-09-03 Thread Lachlan Hunt

Hi,
  In step 10 of the processing model, it states:

  Queue a task to invoke the error callback, if it is not null, with a
   newly constructed SQLError  object that represents the last error to
   have occurred in this transaction. Rollback the transaction. Any
   still-pending statements in the transaction are discarded.

Can you clarify this statement so that it's clearer that it's referring 
to the transaction's error callback, and not a statement error callback 
in executeSql.


--
Lachlan Hunt - Opera Software
http://lachy.id.au/
http://www.opera.com/



Re: (no subject)

2009-09-03 Thread Marcos Caceres

Hi Robin,

Here is a pre-publication review of Widgets 1.0: Widget URIs 08 
September 2009.


My main beef is that this spec does not clearly tell me how to construct 
a WURI UA... all the bits are there, however, just need a few editorial 
changes, IMHO.



Widgets 1.0: Widget URIs
W3C Working Draft 08 September 2009

Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
liability, trademark and document use rules apply.
Abstract
Many specifications in the Web stack depend on a context being defined
that includes a current IRI. This is easily provided for documents
retrieved over HTTP, or from the local file system, but is currently
undefined for documents extracted from within a widget package.


I don't like the above. Why are you starting this as an argument?


Such a
limitation has a number of implications which this document intends to
address.


Just say what the tech is, IMO. Requirements section covers this better. 
Besides, once the spec is out, then the above is not a problem any more, 
so it's a tautology to have this line of reasoning here.



Status of This Document

This section describes the status of this document at the time of its
publication. Other documents may supersede this document. A list of
current W3C publications and the latest revision of this technical
report can be found in the W3C technical reports index at
http://www.w3.org/TR/.

This document was published by the Web Applications WG as a Last Call
Working Draft. This document is intended to become a W3C Recommendation.
If you wish to make comments regarding this document, please send them
to public-webapps@w3.org (subscribe, archives). The Last Call period
ends 10 November 2009. All feedback is welcome.


This LC period is too long. Make it 10th of October or mid October. This 
is to facilitate two LCs.


snip


1. Introduction

This section is non-normative.

This specification defines the widget URI scheme that is used to address
resources inside a widget [WIDGETS].


change to inside a widget package


2. Conformance

As well as sections marked as non-normative, all authoring guidelines,
diagrams, examples, and notes in this specification are non-normative.
Everything else in this specification is normative.

The key words must, must not, required, should, should not, recommended,
may, and optional in this specification are to be interpreted as
described in [RFC2119].
3. Not in this specification

This section is non-normative.

There are many different efforts that have specified URI schemes to
access the content of Zip archives, or endeavour to do so. While these


endeavour  endeavor


efforts have merit, and while W3C Widgets rely on Zip as a packaging
format, the use cases that this specification addresses are radically
different.


radically is unnecessary. You make grand statements, but then don't 
back them. What is so radical about what we are doing? Don't tell me (I 
know how awesome we are!), put in the spec :)



In fact, it is possible that both this scheme and another
defined to access Zip archive content would be used jointly, with little
or no overlap in functionality.

The scheme defined in this specification could be used to implement
inter-widget communication, but that is outside the scope of this
current document.


This is not proven. I would just say that cross-widget is out of scope 
and, may be future work, but not that it could be used for that.



4. Requirements


All this should be moved to the widgets requirements doc.


This section is non-normative.

Must allow addressing resources inside a widget
The scheme must be able to address Zip relative paths as defined in the
Widgets: Packaging and Configuration [WIDGETS] specification.


yep


Must allow resolving relative URL references inside a widget
It must be possible for a document inside a widget to use a relative
reference to another without any specific knowledge of the scheme being
used. For instance, if a document located at dahuts/dextrogyrous.html
features a link to levrogyrous.html that link must resolve to
dahuts/levrogyrous.html.


yep


Must not allow addressing resources outside a widget
There is no requirement on how widgets are stored and potentially
unpacked within a given user agent, but irrespective of how that is
performed, including for instance by storing the unpacked widget on the
local file system, it must be impossible to address resources outside of
the widget using this scheme.


yep


Must provide an origin IRI for widget-contained documents
Many mechanisms in widgets (e.g. cookies, local storage, XMLHttpRequest)
key off the IRI or part thereof from which they are used. Since widgets
are for all intents and purposes local applications that do not have an
origin, this scheme must provide integration with these mechanisms.


double yep!


Must be independent of any file system
Addressing based on this scheme must only map onto Zip relative paths
and remain independent of any file system on which the 

[widgets] Draft Minutes for 3 September 2009 Voice Conference

2009-09-03 Thread Arthur Barstow
The draft minutes from the September 3 Widgets voice conference are  
available at the following and copied below:


 http://www.w3.org/2009/09/03-wam-minutes.html

WG Members - if you have any comments, corrections, etc., please send  
them to the public-webapps mail list before 10 September 2009 (the  
next Widgets voice conference); otherwise these minutes will be  
considered Approved.


-Regards, Art Barstow

   [1]W3C

  [1] http://www.w3.org/

   - DRAFT -

   Widgets Voice Conference

03 Sep 2009

   [2]Agenda

  [2] http://lists.w3.org/Archives/Public/public-webapps/ 
2009JulSep/0935.html


   See also: [3]IRC log

  [3] http://www.w3.org/2009/09/03-wam-irc

Attendees

   Present
  Marcin, Art, Marcos, Arve, Steven, Bryan, Benoit

   Regrets
  Robin, AndyB, Frederick

   Chair
  Art

   Scribe
  Art

Contents

 * [4]Topics
 1. [5]Review and tweak agenda
 2. [6]Announcements
 3. [7]PC spec: comments from PFWG
 4. [8]PC spec: IRI/URI normalization
 5. [9]PC spec: Conformance Checker (CC) requirements
 6. [10]Introduction by Steven Pemberton
 7. [11]widget Interface spec: storage
 8. [12]WARP spec: LC comments from Marcin Hanclik
 9. [13]Widget URIs spec: proposal to publish LCWD
10. [14]View Modes spec: status
11. [15]AOB
 * [16]Summary of Action Items
 _



   scribe ScribeNick: ArtB

   scribe Scribe: Art

   Date 3 September 2009

Review and tweak agenda

   AB: the draft agenda was posted on September 2 (
   [17]http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/09
   35.html ). I propose adding View Modes before AOB. Any objections to
   that?
   ... any change requests?

 [17] http://lists.w3.org/Archives/Public/public-webapps/ 
2009JulSep/0935.html


   [ None ]

Announcements

   AB: Reminders on upcoming deadlines: 1) Sep 14 is deadline to
   register for Widgets Testing event (
   [18]http://www.w3.org/2008/webapps/wiki/TestWorkshop2009 ); 2) Sep
   15 comment deadline for APIs and Events LCWD; 3) Sep 20 comment
   deadline for WARP LCWD
   ... Does anyone have any other short announcements?

 [18] http://www.w3.org/2008/webapps/wiki/TestWorkshop2009

   [ None ]

PC spec: comments from PFWG

   AB: on August 27, WAI's Protocols and Formats WG submitted comments
   against the PC LCWD (
   [19]http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/08
   43.html ). Although these comments are late, we should still respond
   to them. Note these comments have been added to the PC post-LCWD
   comment tracker (
   [20]http://www.w3.org/2008/webapps/wiki/Widgets/PandC-LCWD-28May2009
   ).
   ... Marcos, have you had a chance to review these?

 [19] http://lists.w3.org/Archives/Public/public-webapps/ 
2009JulSep/0843.html
 [20] http://www.w3.org/2008/webapps/wiki/Widgets/PandC- 
LCWD-28May2009


   MC: just briefly
   ... most related to Conformance Checker

   AB: let's make sure we respond

   MC: OK, will do

   scribe ACTION: caceres respond to PFWG's comments on the P+C LCWD
   [recorded in
   [21]http://www.w3.org/2009/09/03-wam-minutes.html#action01]

   trackbot Created ACTION-399 - Respond to PFWG's comments on the
   P+C LCWD [on Marcos Caceres - due 2009-09-10].

   AB: ok thanks Marcos; I don't consider this urgent

   arve sorry for late IRC arrival

PC spec: IRI/URI normalization

   AB: this topic is continued from our 27 August Voice Conf (
   [22]http://www.w3.org/2009/08/27-wam-minutes.html#item03 ). Has
   anyone received feedback from the I18N WG on this issue (
   [23]http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/06
   44.html )?
   ... I checked their public mail list and it appears they did not
   meet on Sept 2
   ... but I don't know if they meet weekly or not

 [22] http://www.w3.org/2009/08/27-wam-minutes.html#item03
 [23] http://lists.w3.org/Archives/Public/public-webapps/ 
2009JulSep/0644.html


   MH: they meet later in the day, Europe time

   AB: Marcos, Marcin - have you received any feedback from them?

   MC: no

   MH: no

   AB: OK, I'll ping Addison

   scribe ACTION: barstow follow-up with Addisson and Richard and
   I18N Core WG re the URI/IRI normalization issue for the P+C spec
   [recorded in
   [24]http://www.w3.org/2009/09/03-wam-minutes.html#action02]

   trackbot Created ACTION-400 - Follow-up with Addisson and Richard
   and I18N Core WG re the URI/IRI normalization issue for the P+C spec
   [on Arthur Barstow - due 2009-09-10].

   AB: anything else on that topic today?

   [ No ]

PC spec: Conformance Checker (CC) requirements

   AB: on IRC yesterday, Marcos raised the question What are we going
   to do if no one implements the Conformance Checker (CC)
   requirements?.

   MC: a question is how to we progress the spec if no one implements
   

Re: [widgets] WURI Review pre-LC review

2009-09-03 Thread Marcos Caceres
(additional typo found, at bottom of email)

On Thu, Sep 3, 2009 at 2:25 PM, Marcos Caceresmarc...@opera.com wrote:
 (Apologies for sending this twice, screwed up the subject on the last one...
 email is hard!:) )

 Hi Robin,

 Here is a pre-publication review of Widgets 1.0: Widget URIs 08
 September 2009.

 My main beef is that this spec does not clearly tell me how to construct
 a WURI UA... all the bits are there, however, just need a few editorial
 changes, IMHO.

 Widgets 1.0: Widget URIs
 W3C Working Draft 08 September 2009
 
 Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
 liability, trademark and document use rules apply.
 Abstract
 Many specifications in the Web stack depend on a context being defined
 that includes a current IRI. This is easily provided for documents
 retrieved over HTTP, or from the local file system, but is currently
 undefined for documents extracted from within a widget package.

 I don't like the above. Why are you starting this as an argument?

 Such a
 limitation has a number of implications which this document intends to
 address.

 Just say what the tech is, IMO. Requirements section covers this better.
 Besides, once the spec is out, then the above is not a problem any more,
 so it's a tautology to have this line of reasoning here.

 Status of This Document

 This section describes the status of this document at the time of its
 publication. Other documents may supersede this document. A list of
 current W3C publications and the latest revision of this technical
 report can be found in the W3C technical reports index at
 http://www.w3.org/TR/.

 This document was published by the Web Applications WG as a Last Call
 Working Draft. This document is intended to become a W3C Recommendation.
 If you wish to make comments regarding this document, please send them
 to public-webapps@w3.org (subscribe, archives). The Last Call period
 ends 10 November 2009. All feedback is welcome.

 This LC period is too long. Make it 10th of October or mid October. This
 is to facilitate two LCs.

 snip

 1. Introduction

 This section is non-normative.

 This specification defines the widget URI scheme that is used to address
 resources inside a widget [WIDGETS].

 change to inside a widget package

 2. Conformance

 As well as sections marked as non-normative, all authoring guidelines,
 diagrams, examples, and notes in this specification are non-normative.
 Everything else in this specification is normative.

 The key words must, must not, required, should, should not, recommended,
 may, and optional in this specification are to be interpreted as
 described in [RFC2119].
 3. Not in this specification

 This section is non-normative.

 There are many different efforts that have specified URI schemes to
 access the content of Zip archives, or endeavour to do so. While these

 endeavour  endeavor

 efforts have merit, and while W3C Widgets rely on Zip as a packaging
 format, the use cases that this specification addresses are radically
 different.

 radically is unnecessary. You make grand statements, but then don't
 back them. What is so radical about what we are doing? Don't tell me (I
 know how awesome we are!), put in the spec :)

 In fact, it is possible that both this scheme and another
 defined to access Zip archive content would be used jointly, with little
 or no overlap in functionality.

 The scheme defined in this specification could be used to implement
 inter-widget communication, but that is outside the scope of this
 current document.

 This is not proven. I would just say that cross-widget is out of scope
 and, may be future work, but not that it could be used for that.

 4. Requirements

 All this should be moved to the widgets requirements doc.

 This section is non-normative.

 Must allow addressing resources inside a widget
 The scheme must be able to address Zip relative paths as defined in the
 Widgets: Packaging and Configuration [WIDGETS] specification.

 yep

 Must allow resolving relative URL references inside a widget
 It must be possible for a document inside a widget to use a relative
 reference to another without any specific knowledge of the scheme being
 used. For instance, if a document located at dahuts/dextrogyrous.html
 features a link to levrogyrous.html that link must resolve to
 dahuts/levrogyrous.html.

 yep

 Must not allow addressing resources outside a widget
 There is no requirement on how widgets are stored and potentially
 unpacked within a given user agent, but irrespective of how that is
 performed, including for instance by storing the unpacked widget on the
 local file system, it must be impossible to address resources outside of
 the widget using this scheme.

 yep

 Must provide an origin IRI for widget-contained documents
 Many mechanisms in widgets (e.g. cookies, local storage, XMLHttpRequest)
 key off the IRI or part thereof from which they are used. Since widgets
 are for all intents and purposes local applications 

RE: to publish the First Public Working Draft of Web Database spec; deadline 7 September

2009-09-03 Thread Ennals, Robert
I support this.

-Original Message-
From: public-webapps-requ...@w3.org [mailto:public-webapps-requ...@w3.org] On 
Behalf Of Arthur Barstow
Sent: Monday, August 31, 2009 11:01 AM
To: public-webapps
Subject: CfC: to publish the First Public Working Draft of Web Database spec; 
deadline 7 September

This is a Call for Consensus (CfC) to publish the First Public  
Working Draft (FPWD) of the Web Database spec:

  http://dev.w3.org/html5/webdatabase/

Note that at one point in time, the Web Database spec's functionality  
was included in the Web Storage spec.

As with all of our CfCs, positive response is preferred and  
encouraged and silence will be assumed to be assent. The deadline for  
comments is September 7.

-Regards, Art Barstow






Re: DnD vs CnP (was Copy/Paste Events)

2009-09-03 Thread Ian Hickson
On Thu, 3 Sep 2009, Paul Libbrecht wrote:

 Which of them supports to transfer arbitrary flavours?
 Generic image formats along of markup?

I do not recall off-hand.

-- 
Ian Hickson   U+1047E)\._.,--,'``.fL
http://ln.hixie.ch/   U+263A/,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



[web databases] changeVersion error reporting

2009-09-03 Thread João Eiras

Hi!

Database.changeVersion expects oldVersion and newVersion arguments. The  
Database also specifies a version attribute.
The transaction steps tell to fail the transaction due to the failed  
preflight condition if oldVersion does not match the current database  
version.

Meanwhile, the callbacks have been made optional, and rightly so.

So:
 - if the author does not use the callbacks, there no error reporting that  
the preflight condition failed
 - the version check can be done synchronously when changeVersion is  
called because the Database object has immediate access to that value, and  
it's much more convenient for the author to just get an exception (like  
INVALID_STATE_ERR) than to have to go through the entire callback process  
just to realize later that the transaction failed due to the mismatched  
version. It also spares the user agent from creating and executing a  
transaction that WILL fail.


To solve these issues, I would suggest doing immediate synchronous  
validation of the version when changeVersion is called, throwing an  
exception on error, and drop that step from the preflight operations.


Thank you.





Re: [web databases] changeVersion error reporting

2009-09-03 Thread Michael Nordman
If the version is stored in the database file itself, as is with webkit's
impl for example, the database object does not have immediate access to that
value.
On Thu, Sep 3, 2009 at 5:57 PM, João Eiras jo...@opera.com wrote:

 Hi!

 Database.changeVersion expects oldVersion and newVersion arguments. The
 Database also specifies a version attribute.
 The transaction steps tell to fail the transaction due to the failed
 preflight condition if oldVersion does not match the current database
 version.
 Meanwhile, the callbacks have been made optional, and rightly so.

 So:
  - if the author does not use the callbacks, there no error reporting that
 the preflight condition failed
  - the version check can be done synchronously when changeVersion is called
 because the Database object has immediate access to that value, and it's
 much more convenient for the author to just get an exception (like
 INVALID_STATE_ERR) than to have to go through the entire callback process
 just to realize later that the transaction failed due to the mismatched
 version. It also spares the user agent from creating and executing a
 transaction that WILL fail.

 To solve these issues, I would suggest doing immediate synchronous
 validation of the version when changeVersion is called, throwing an
 exception on error, and drop that step from the preflight operations.

 Thank you.






Re: [web databases] changeVersion error reporting

2009-09-03 Thread João Eiras


So that was one of the motives to add the creation callback on  
openDatabase I presume.


In either case, before the script gets a Database object, a version check  
needs to be made during openDatabase, so the value can be cached inside  
the Database object, to be used for changeVersion, the version property  
and subsequent transactions.



On Fri, 04 Sep 2009 03:06:37 +0200, Michael Nordman micha...@google.com  
wrote:



If the version is stored in the database file itself, as is with webkit's
impl for example, the database object does not have immediate access to  
that

value.
On Thu, Sep 3, 2009 at 5:57 PM, João Eiras jo...@opera.com wrote:


Hi!

Database.changeVersion expects oldVersion and newVersion arguments. The
Database also specifies a version attribute.
The transaction steps tell to fail the transaction due to the failed
preflight condition if oldVersion does not match the current database
version.
Meanwhile, the callbacks have been made optional, and rightly so.

So:
 - if the author does not use the callbacks, there no error reporting  
that

the preflight condition failed
 - the version check can be done synchronously when changeVersion is  
called

because the Database object has immediate access to that value, and it's
much more convenient for the author to just get an exception (like
INVALID_STATE_ERR) than to have to go through the entire callback  
process

just to realize later that the transaction failed due to the mismatched
version. It also spares the user agent from creating and executing a
transaction that WILL fail.

To solve these issues, I would suggest doing immediate synchronous
validation of the version when changeVersion is called, throwing an
exception on error, and drop that step from the preflight operations.

Thank you.