Version 2.0.1 will be available probably later this month. The IE bug
is gone, which is nice since it makes it possible to use the
AjaxLoader module, which eliminates the need for a script tag and
simplifies loading packages individually.

The samples for 2.0.1 dynamically load packages as needed:
http://gwt-gdata.appspot.com/v2.0.1/HelloGData.html

By the way, even though i've used static initializers for constants,
i'm not seeing any initialization cost. I think maybe GWT is inlining
the initializers, since the initializers are native methods on overlay
types.

Bobby

On Aug 24, 3:36 am, Bobby <[email protected]> wrote:
> Version 1.10.1 is available 
> here:http://code.google.com/p/gwt-gdata/downloads/list
>
> Bobby
>
> On Aug 14, 4:53 am, Bobby <[email protected]> wrote:
>
> > I may not be able to correct this IE bug, and it may not be desirable
> > either since it isn't a good idea to have the GWT version introduce
> > hacks onto the JS library in order to fix a bug - stuff like this is
> > better off being corrected in the JS version directly. I'll add this
> > as a defect and deal with it later, the workaround being to use a
> > script reference to load the API.
>
> > I'm starting to think about how to detach the GWT library from the JS
> > api in the future. Here's what i'm seeing, in the JS API all GData
> > operations (POST, PUT, DELETE) are sent as POST commands. A POST
> > variable called HTTP-Method-Override can be used to specify the actual
> > operation. Cross-domain POSTS aren't a problem, we can just create and
> > submit a hidden form using some JavaScript.
>
> > Since GData supports retrieving data in JSON format, we can use a
> > JSONP approach to do cross domain reads - this is what the current JS
> > API does.
>
> > This means that in order to detach the GWT version from the JS
> > libraries we have to:
> > 1. identify the Atom schema for each data type, there are a few
> > hundred classes.
> > 2. provide a base implementation that can perform cross-domain POSTS
> > and JSONP reads.
>
> > I think #1 can be automated and #2 is sensitive but small.
>
> > The end result will be a more GWT-optimizable API which can then grow
> > at its own pace. The samples and unit tests wouldn't change
> > significantly, if at all. We can still use overlay types to wrap
> > around the JSON objects returned from GData. I've taken a closer look
> > at the GData Java library and i don't think that the GWT and Java APIs
> > will ever match because the GWT version will need to be callback-based
> > whereas Java doesn't have this limitation.
>
> > Anyway, just some thoughts.
>
> > Bobby
>
> > On Aug 14, 2:53 am, Bobby <[email protected]> wrote:
>
> > > There are some quirks which are making it difficult to narrow down the
> > > reason why AuthSub fails in IE. So far i know it only happens when
> > > google.load is used with a callback, even when google.load is called
> > > while the page is being loaded.
>
> > > So something like the following:
> > > <body>
> > > <script>
> > >     google.load("gdata", "1.10", myCallback);
> > > </script>
> > > <input type="button" value="login" onclick="google.accounts.user.login
> > > ('scope-here')" />
> > > </body>
>
> > > Will always see the following behavior:
> > > 1. User clicks to login.
> > > 2. User is redirect to authorization page and clicks to authorize.
> > > 3. User is redirected back to the original page, with a token appended
> > > in the URL.
> > > 4. Page doesn't consume the token in the URL (the correct behavior is
> > > for the page to place the token in a cookie and remove the token from
> > > the url).
> > > 5. User clicks to login again.
> > > 6. User gets redirected to authorization page again, and steps 3-6 are
> > > repeated an arbitrary number of times.
> > > 7. If, after reaching the authorization page a second time, the user
> > > clicks the browser's back button, causing the browser to go back to
> > > the page that contains the token in the url, the token is successfully
> > > consumed and the user is successfully logged in. Go figure.
>
> > > Why "backing" into the page causes GData to successfully consume the
> > > token i have no idea - especially since refreshing the page at step 4
> > > has no effect.
>
> > > My guess is that when backing into the page IE will use a cached
> > > version of the GData script, which is processed immediately and may
> > > make the difference.
>
> > > Bobby
>
> > > On Aug 14, 1:37 am, Bobby <[email protected]> wrote:
>
> > > > This was outside GWT. I'm trying to find the cause of the IE AuthSub
> > > > issue outside of GWT first. Basically, when google.load() is called
> > > > after the page has finished loading - such as from a button click,
> > > > AuthSub doesn't succeed.
>
> > > > Bobby
>
> > > > On Aug 14, 12:17 am, Eric Ayers <[email protected]> wrote:
>
> > > > > If you are calling JavaScript inside of a GWT JSNI function, you
> > > > > should be using $wnd.google.load(...)
>
> > > > > On Thu, Aug 13, 2009 at 11:55 PM, Bobby<[email protected]> wrote:
>
> > > > > > This IE AuthSub issue is not because of the IFrame, the 
> > > > > > transferToken
> > > > > > approach didn't make a difference.
>
> > > > > > I tried placing the google.load('gdata', '1.10'); call in a button
> > > > > > click event. Here's the code:
> > > > > > <html>
> > > > > > <body>
> > > > > >    <img src="logo-small.png" />
> > > > > >    <script type="text/javascript" 
> > > > > > src="http://www.google.com/jsapi";></
> > > > > > script>
> > > > > >    <script type="text/javascript">
> > > > > >        function loadGData() {
> > > > > >                google.load('gdata', '1.10');
> > > > > >        }
> > > > > >    </script>
> > > > > >    <input type="button" value="Load GData" onclick="loadGData();" />
> > > > > > </body>
> > > > > > </html>
>
> > > > > > If you try this, when you click "Load GData", the page is cleared 
> > > > > > and
> > > > > > nothing really happens. If you look at the page source after 
> > > > > > clicking
> > > > > > the button you see the following:
> > > > > > <script src="http://www.google.com/uds/?file=gdata&v=1.10"; 
> > > > > > type="text/
> > > > > > javascript"></script>
>
> > > > > > This is what would happen if document.write was being used and would
> > > > > > explain a few things.
>
> > > > > > Eric, does your AjaxLoader module use google.load() from the jsapi?
>
> > > > > > Bobby
>
> > > > > > On Aug 13, 10:20 pm, Bobby <[email protected]> wrote:
> > > > > >> By the way, i've finished porting the samples (70 of them) i'm
> > > > > >> currently polishing and commenting the samples code.
>
> > > > > >> I've added specialized Callbacks into the API, for example
> > > > > >> BlogEntryCallback (extending AsyncCallback<BlogEntry>) - this meant
> > > > > >> adding specialized methods for insert/update/delete, but makes for 
> > > > > >> a
> > > > > >> better API. There have been other changes and design choices as 
> > > > > >> well.
>
> > > > > >> In the Maps samples, the create/update features are not working
> > > > > >> because of a KML-related defect which i might try to get around 
> > > > > >> with
> > > > > >> GWT:http://code.google.com/p/gmaps-api-issues/issues/detail?id=1585
>
> > > > > >> Other than that i have a small list of items to wrap up (including
> > > > > >> this IE issue) and some documentation to write, but nothing major 
> > > > > >> and
> > > > > >> i'm counting on having a download by the end of this week or next 
> > > > > >> week
> > > > > >> at the latest.
>
> > > > > >> Bobby
>
> > > > > >> On Aug 13, 9:46 pm, Bobby <[email protected]> wrote:
>
> > > > > >> > The onModuleLoad is within an iframe, that's probably the cause. 
> > > > > >> > I
> > > > > >> > think i can find a way around this. For example, i can add the
> > > > > >> > following method to the GData module:
> > > > > >> > GData.transferTokenOrSomething();
>
> > > > > >> > This function would check the top frame for a token and append 
> > > > > >> > it to
> > > > > >> > the IFrame's location. I'll play around with this.
>
> > > > > >> > Bobby
>
> > > > > >> > On Aug 13, 9:29 pm, Bobby <[email protected]> wrote:
>
> > > > > >> > > Another possible cause could be for example if, in the 
> > > > > >> > > compiled GWT
> > > > > >> > > app, the google.load call happens inside an IFrame.
>
> > > > > >> > > Currently, with google.load being called from onModuleLoad,
> > > > > >> > > google.accounts.user.login() causes the redirect to the Google
> > > > > >> > > Accounts authorization page, but when it redirects back, with 
> > > > > >> > > the
> > > > > >> > > token in the URL (for example /HelloGData.html#tokenhere), the 
> > > > > >> > > token
> > > > > >> > > doesn't get consumed (in IE), and the authentication doesn't 
> > > > > >> > > succeed.
>
> > > > > >> > > If GWT is placing the onModuleLoad code inside an IFrame, then 
> > > > > >> > > it may
> > > > > >> > > cause the GData library to look for the token on the IFrame
> > > > > >> > > window.location, instead of the top's window.location.
>
> > > > > >> > > Bobby
>
> > > > > >> > > On Aug 13, 9:16 pm, Eric Ayers <[email protected]> wrote:
>
> > > > > >> > > > The gdata init shouldn't use document.write() - you should 
> > > > > >> > > > be able to
> > > > > >> > > > call it at any time.
>
> > > > > >> > > > There is a tradeoff of using the AjaxLoader module - it does 
> > > > > >> > > > add more
> > > > > >> > > > delay than using the script version.  Fortunately, you can 
> > > > > >> > > > code your
> > > > > >> > > > app using AjaxLoader and then if you need the speedup, just 
> > > > > >> > > > add the
> > > > > >> > > > logic in your host page.  AjaxLoader will detect that the 
> > > > > >> > > > jsapi is
> > > > > >> > > > already there and bypass it.  You can add that check in your 
> > > > > >> > > > version
> > > > > >> > > > of GData.loadGDataApi() if you like.
>
> > > > > >> > > > On Thu, Aug 13, 2009 at 9:11 PM, 
> > > > > >> > > > Bobby<[email protected]> wrote:
>
> > > > > >> > > > > In the GData JS library, in IE, AuthSub fails if 
> > > > > >> > > > > google.load("gdata",
> > > > > >> > > > > "1.10"); is asynchronous, after the page has finished 
> > > > > >> > > > > processing. For
> > > > > >> > > > > example, if i place the google.load("gdata", "1.10"); call 
> > > > > >> > > > > within the
> > > > > >> > > > > GWT onModuleLoad method, then AuthSub stops halfway.
>
> > > > > >> > > > > To avoid this we can directly add the following at the top 
> > > > > >> > > > > of the GWT
> > > > > >> > > > > html page:
> > > > > >> > > > >        <script type="text/javascript" 
> > > > > >> > > > > src="http://www.google.com/jsapi";></
> > > > > >> > > > > script>
> > > > > >> > > > >        <script type="text/javascript">google.load("gdata", 
> > > > > >> > > > > "1.10");</
> > > > > >> > > > > script>
>
> > > > > >> > > > > Or just use the auto-load feature of the JS API to 
> > > > > >> > > > > collapse these two
> > > > > >> > > > > into a single script load.
>
> > > > > >> > > > > But this wouldn't make use of the AjaxLoader module and it 
> > > > > >> > > > > means that
> > > > > >> > > > > the GWT app will have to wait for the GData libraries to 
> > > > > >> > > > > load before
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to