cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Braden Shepherdson <bra...@chromium.org>
Subject Re: Media API, DataResource, and empty URLs
Date Thu, 20 Jun 2013 13:49:47 GMT
So the current state of handling URLs in DataResource is: if it has a
scheme, all good; if it doesn't and is absolute, also good; if it is
relative and has no scheme, throw new IllegalArgumentException.

I agree that this behavior is dumb and there should be a sane default for
relative URLs, and DataResource should rewrite them. The tricky bit is what
they should be relative to. file:///android_asset/www? The currently loaded
page in the WebView? Can we reliably check that in the presence of
CordovaView and InAppBrowser?

Braden


On Thu, Jun 20, 2013 at 12:34 AM, Andrew Grieve <agrieve@chromium.org>wrote:

> Agree that we should make Media() an error, but we don't want to change the
> semantics of relative URLs for APIs without proper deprecation.
>
>
> On Thu, Jun 20, 2013 at 12:00 AM, Ian Clelland <iclelland@google.com>
> wrote:
>
> > On Wed, Jun 19, 2013 at 7:41 PM, Andrew Grieve <agrieve@chromium.org>
> > wrote:
> >
> > > "null" could be interpreted as a relative URL I think. The current
> > handling
> > > of relative URLs by plugins is sadly plugin-specific.
> > >
> >
> > Isn't that one of the things that DataResource is supposed to
> standardize?
> >
> >
> > The string "null" is certainly a relative URL, and all plugins should
> > interpret that as one. The empty string is a relative url as well. (See
> the
> > 'image src=""' problem). DataResource should probably handle relative
> URLs;
> > that seems like a deficiency if it can't.
> >
> > We shouldn't be representing the JavaScript null value as "null", or as
> "",
> > though. I don't think there's any rational reason to support new Media()
> as
> > a construct. Media is fairly clearly documented as taking two required
> > parameters, and two optional ones. I don't think Media() makes sense --
> it
> > doesn't give you a useful object. The calls to Media() are likely just in
> > mobile-spec, and we should clean those up.
> >
> >
> >
> >
> > >
> > > On Wed, Jun 19, 2013 at 4:04 PM, Braden Shepherdson <
> braden@chromium.org
> > > >wrote:
> > >
> > > > The automated tests for Media frequently call new Media() with no
> URL,
> > > > which sends a null to the "create" action. In the past, this got
> turned
> > > > into the string "null" in Java, which was handled as a file named
> > "null"
> > > > that didn't exist, and nothing crashed.
> > > >
> > > > DataResource is fine with the files not existing, but it's not fine
> > with
> > > > "null" as a filename since it neither has a URL scheme nor is it an
> > > > absolute path.
> > > >
> > > > Is there a reason why new Media() should work rather than throwing
> > > > IllegalArgumentExceptions for trying to read files with relative
> paths?
> > > > Should I detect and gracefully handle null being given as the media
> URL
> > > in
> > > > Javascript? In Java? Should I instead change the mobile-spec tests to
> > use
> > > > "file:///dummy" or similar?
> > > >
> > > > Braden
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message