off antialiasing for lines that aren't
exactly vertical or horizontal. I suspect that would cause odd issues; for
example, seams at the boundary between a horizontal line and a rounded
edge, or a rounded edge being dimmer than the hard edges it connects. (I
also don't know enough about paths and their implementations to know how
feasible this is.)
It sounds complex and with its own problems, and the only case where it
might help is if you want to draw hard lines after calling
canvas.scale(0.9, 0.9), which seems uncommon to me. In all typical cases,
being able to set strokes to inside or outside seem to handle the rest (if
that's something that fits in Canvas's path design; I don't know the
algorithm).
--
Glenn Maynard
re.
> Basically, if you turn it on and the stroke doesn't fill the entire pixel,
> that pixel isn't drawn.
> Apple has a Core Graphics function called "CGGStateSetStrokeAdjust" so at
> least they would be able to implement this easily. :-)
>
Isn't this simply disabling antialiasing? That's what the illustration
seems to show.
That'll work in certain cases, with the caveats that have been mentioned:
you don't want it when animating lines, for diagonals, if you have rounded
corners, etc.
--
Glenn Maynard
al (I'm not sure there is, for an API with Canvas's
functionality), it's much too late to change this.
--
Glenn Maynard
browser window: "best viewed in 800x600" (so
we'll force it), "best viewed in portrait" (so we'll force it).
--
Glenn Maynard
be able to
> prevent it.
>
In practice, game developers are rarely willing to spend the time to make
their games work well in both portrait and landscape. The Web solution is
probably not to lock the display, though, but to letterbox the display if
the window's aspect ratio is too far off, as with videos.
--
Glenn Maynard
label is.
(FWIW, I wouldn't change a server to say windows-1252. The ISO spec is so
far out of touch with reality that it's hard to consider it authoritative;
in reality, ISO-8859-1 is 1252.)
--
Glenn Maynard
Selector exclusively for quite some time, and I find
arguments that querySelector isn't readable or "the wrong tool" to simply
not hold up. I find it more readable, actually, since I don't have to
change interfaces depending on whether I'm searching for an ID or a class.)
--
Glenn Maynard
to do that.
>
CSS uses selectors, not the other way around. querySelector() has nothing
to do with styles.
--
Glenn Maynard
On Tue, Jun 25, 2013 at 6:48 PM, Simon Pieters wrote:
> On Wed, 26 Jun 2013 01:39:01 +0200, Glenn Maynard wrote:
>
> This is done if the feature is being disabled completely at page load
>> time,
>> with no chance of it coming back: you simply don't put the interfa
x27;t provide any way to query arguments to getContext, eg. to
see if null would be returned if a particular option is provided, which
supportsContext allows. (I don't know if there are any cases where this
actually happens, since most options are "best effort" and don't cause
context creation to fail if they're not available.)
--
Glenn Maynard
rface appears and disappears from window over the life of
the page, as WebGL support comes and goes (eg. the driver blacklist or
system graphics drivers are updated).
Also, supportsContext() takes arguments, so you can find out if context
creation would fail with a particular set of options. You c
. :)
Your question is valid, of course, and I'd add another: What's the track
record for adding features directly to browsers, without open cross-browser
discussion and design?
--
Glenn Maynard
lgorithm must
always complete after any later invocations.
Does this hold even in the face of multiple nested invocations of "spin the
event loop" algorithm? That algorithm doesn't seem to try to guarantee any
kind of stack-like behavior.
--
Glenn Maynard
gt;.
>
Web APIs have to deal with how things are actually used, not how you wish
they were. Storing state in the hash is a reality.
Additionally, pushState does not replace storing state in the hash, nor was
it intended to.
--
Glenn Maynard
gt; The "self-contained" keyword makes me think that you really want Caja
> or some lighter version of it.
>
Good web APIs don't require the use of wrapper libraries (or script
postprocessing tools--sorry, that's gross) to use in a clean,
self-contained way.
(Sorry for some heavy snipping, but let's slow down discussing what the API
should look like for a bit, so we don't drown out the discussions about use
cases, the need for this feature, where it should live, etc.)
--
Glenn Maynard
e used in FirefoxOS, then
expecting other browser vendors to invest time implementing it wouldn't
make sense.
--
Glenn Maynard
the code that's actually using the feature, not
messing about with document-global attributes. This is equivalent to why
we use addEventListener in modules, rather than event handlers.
On Sun, Apr 28, 2013 at 5:08 PM, Robert O'Callahan wrote:
> On Mon, Apr 29, 2013 at 5:47 AM, Glenn Maynard
rite idea on the topic. We don't need
> anything more.
>
As soon as two bits of code try to use this, each unaware of the other,
chaos will ensue as they stomp on the attribute set by the other. This is
more or less a global variable.
--
Glenn Maynard
need to
send a request to a server to figure out what to display. The approach I
suggested handles this, and could easily fire an event on the document
automatically.
I have to wonder whether authors would really use this, though, regardless
of what the API looks like.
--
Glenn Maynard
sed to script, but
it's still not great since it would require that GC always happen in finite
time.)
Both of these APIs are effectively manual resource collection, though,
which makes me nervous. It's not something the platform is designed for
(hence all the difficulty with blob URLs).
n to
> vertical with the attribute.
>
If an auto mode is wanted later, "vertical=auto" isn't too bad, either.
--
Glenn Maynard
On Fri, Mar 22, 2013 at 5:59 PM, Tim Streater wrote:
> On 22 Mar 2013 at 22:32, Glenn Maynard wrote:
>
> > I start typing after I read the placeholder. Hiding placeholder text
> just
> > because I focused the input is wrong; I may not have read it yet.
>
> You shoul
irefox and Chrome put the placeholder text in grey to distinguish it
from user-entered text. The subject line says "Hide placeholder on input
controls on focus", and that's not a good idea.
In any case, how placeholders are styled should remain up to the
implementation. This isn't a spec issue.
--
Glenn Maynard
r will almost
> always bite back. I think we're making the same mistake here (and in
> several other areas, too).
>
Content sniffing is something else entirely: it's software automatically
ignoring what the server says and doing something else. This is an
explicit override by authors, not second-guessing.
--
Glenn Maynard
n order to see the placeholder text. If placeholders
are meant to be useful and not just eyecandy, they need to remain visible
until the user enters something.
--
Glenn Maynard
right?
>
The point isn't that browsers should have a big UI showing the page where
you clicked the link. The point is that links are judged based on whether
you trust the site linking the file, and whether the page endorses the link
(which search results don't).
--
Glenn Maynard
zonaws.com, they didn't come from Amazon; they came from your
page.
The origin of downloads should probably not be displayed in a prominent
location, since to typical users it's useless and potentially misleading;
it should be hidden in something like a "details" button.
--
Glenn Maynard
ecific filename. Making a C-D: inline header
override @download might alleviate that. I agree that if it's actually a
problem, then this doesn't seem like a good solution.
I can't recall any compelling arguments that a security issue exists,
though.
--
Glenn Maynard
as "inline", and don't change
behavior just because a header states the default.
I don't know if it should be able to override a C-D filename parameter. I
can't think of any case where this is useful, so if it helps get this
feature available cross-origin then that's fine. (Half of the point of
this feature is to allow adjusting filenames on external content servers
which you don't have much control over.)
--
Glenn Maynard
is
definitely weird. There definitely shouldn't be prompting for anything
taking place in a worker.
--
Glenn Maynard
On Wed, Mar 13, 2013 at 10:15 AM, Anne van Kesteren wrote:
> On Wed, Mar 13, 2013 at 3:00 PM, Glenn Maynard wrote:
> > It doesn't matter how many network tasks there are, though. We can just
> say
> > that if the old state is (eg.) OPENED, and we're now in DONE, tha
how many network tasks there are, though. We can just
say that if the old state is (eg.) OPENED, and we're now in DONE, that we
iterate through all of the intermediary states, setting readyState and
firing onreadystatecomplete.
--
Glenn Maynard
the pixel ratio.
In other words, the blitter knows whether to scale or not based on whether
it was putImageData or putImageDataHD that you called, not on something
inside the ImageData you passed in.
--
Glenn Maynard
it to putImageDataHD (which would
cause the image to be scaled on devices with a pixel ratio other than 1, of
course).
--
Glenn Maynard
ite, or to set up write-protection flags on the buffer to
receive a signal if a write happens.
(I suppose a simpler optimization is simply copy-on-access: make a copy of
the backing store if the .data property of ImageData is accessed. That's
not as nice, but it would optimize a lot of cases without needing anything
so low level.)
--
Glenn Maynard
py for data that just came in over the
network doesn't seem like much of an optimization (and it's probably
compressed anyway), and if copy semantics are wanted, unnecessary copies
can still be avoided with copy-on-write.
--
Glenn Maynard
web to
support non-Web tasks. For example, if there's something people want to do
in an iOS app using UIWebView, which doesn't come up on web pages, that
doesn't typically drive web APIs. Platforms can add their own APIs for
their platform-specific needs.
--
Glenn Maynard
ames, though, so my
> intuition could be wrong.
>
If so, we should be fixing the problems preventing workers from being used
fully, not to add workarounds to help people do computationally-expensive
work in the UI thread.
--
Glenn Maynard
needs conversions of JSON objects
> from/to Transferable objects. As it turns out, these conversions are
> just variants on JSON parse/stringify, so we have not simplified the issue.
>
(Not nitpicking, since I really wasn't sure what you meant at first, but I
think you mean a JavaScript object. There's no such thing as a "JSON
object".)
--
Glenn Maynard
bstraction than the core language, which doesn't know
anything about eg. DOM Events and doesn't typically define asynchronous
interfaces. If an API like this was to be exposed (which I believe is
unnecessary), it would belong here or webapps, not at the language level.
--
Glenn Maynard
represent that postMessage can't post
directly. Just postMessage the object itself.
--
Glenn Maynard
ts, just like
I can make changes to anything else inherited from other stylesheets. You
can already change fonts that are already defined (eg. you can redefine
"serif"), that isn't new to @scoped.
This just seems like an arbitrary exception, disabling one random piece of
CSS that's just as useful and natural to use with @scoped as everything
else.
--
Glenn Maynard
isk. Why
> not just do it?
It's still going to change something we nearly have interop on. I'd at
least wait for Ian's input before changing behavior, especially since
nobody seems to know what the zero-size exception is there for.
--
Glenn Maynard
s is what was intended it
would just omit the type check entirely.
But why does it throw this exception in the first place? It's a weird
special case. Blitting a zero-size image should do nothing, just like
drawImage(src, 0, 0, 0, 0).
--
Glenn Maynard
gree. As far as throwing or not throwing
based on the broken or loading state question, it seems like WebKit should
change to match FF and IE, since those two already agree, and WebKit also
agrees with one of the two drawImage overloads tested.)
--
Glenn Maynard
not fully
decodable, or if the image argument is an HTMLVideoElement object whose
readyState attribute is either HAVE_NOTHING or HAVE_METADATA, then return
bad and abort these steps.
3. (original step 2, unchanged)
in order to match Firefox/IE's behavior. (I don't know if that's
cause we already have interop (at least in the cases I
tested) between Firefox and IE, and we already have interop during loads in
all three. Changing WebKit to throw after loading will get everyone doing
the same thing--changing Firefox will still leave IE out.
(I haven't tested with IE10, FWIW, only IE9.)
--
Glenn Maynard
o be completed synchronously. Also, even if you happen
to be able to safely get the image synchronously (eg. if it's in memory
cache or something), the draw is would still be required to not happen,
since img.complete was false.
--
Glenn Maynard
in, since we have additional
information now (this feature), though it's not high up on my list.
On Mon, Feb 18, 2013 at 3:37 AM, Anne van Kesteren wrote:
> On Sat, Feb 16, 2013 at 7:43 PM, Glenn Maynard wrote:
> > Since we have a real URL parser now, I think we have a reasonab
family by that name elsewhere (including other instances of the same
template or elsewhere in the document).
I don't know about implementation complexity (though I don't know why
creating a stack of font-face dictionaries would be any more complex than
creating a stack of style rules), but I don't think this is any more
complex for authors than the rest of @scoped.
--
Glenn Maynard
On Fri, Feb 15, 2013 at 2:10 PM, Robert O'Callahan wrote:
> On Sat, Feb 16, 2013 at 3:46 AM, Glenn Maynard wrote:
>
>> a) This isn't the case. The tricky bit was defining precisely when
>> autorevocation happens; this has been resolved (the "global script cl
different
defaults, but it's much less evil than adding a whole separate mechanism.
In any case, explicitly saying img.src = URL.createObjectURL(blob,
{autoRevoke: true}) isn't actually that painful.
--
Glenn Maynard
Mondays, but this might lead to localization
bugs.
--
Glenn Maynard
it, by reading all a
list of changes made since the last event, without trying to poll at 1kHz
in script. (I have a vague recollection of proposing exactly this, but I
don't think it went anywhere and I haven't seen any discussion about the
gamepad API here or on -webapps in a long time.)
--
Glenn Maynard
On Fri, Feb 8, 2013 at 10:09 AM, Anne van Kesteren wrote:
> On Fri, Feb 8, 2013 at 3:03 PM, Glenn Maynard wrote:
> > A compare method is probably useful, since you'd also want
> case-insensitive
> > comparisons for some parts and not others (eg. lowercase protoco
}
if(get_url_path(url1).toString() == get_url_path(url2).toString())
;
--
Glenn Maynard
ut if it's finished.
>
Actually, there is. Changing "img.onload = onload" to "setInterval(onload,
100)" (and adding a clearInterval in the appropriate place) in the above
sample turns it into a poll.
--
Glenn Maynard
my card. Any month picker for credit card expiry dates should
always have month numbers (of course, names *in addition* to numbers are
fine, though probably pointless).
--
Glenn Maynard
es stuff.
I disagree.
Unless you give arguments rather than assertions, there's nothing to argue
against, so all I can do is state my disagreement. Constructors are
essentially nothing but a different syntax for a function that returns an
object of the same type. Some languages, like Python, don't even
differentiate the syntax. There's no implication about side-effects one
way or the other.
--
Glenn Maynard
not a useful optimization
(in my experience), so not supporting it also simplifies things a bit.
Reducing the number of different-but-equivalent ways of doing the same
thing is also generally good API design.
--
Glenn Maynard
ed workers for that, not Web Messaging.
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#shared-workers-introduction
--
Glenn Maynard
zed
> delimiter (perhaps declared via a pragma at the top of the file), but
> then we would have just re-invented multipart/mixed.
>
The suggestion was the comment /*@BREAK*/, which the string literal
"/*@BREAK*/" wouldn't match, being a string token, not a comment, right?
--
Glenn Maynard
agree. It is
> ugly.
>
The IE "onetimeonly" feature has very serious issues, but it was an
important step towards the autoRevoke idea.
--
Glenn Maynard
, since you'll no longer need to carefully
call revokeObjectURL. (I've come to the conclusion that
URL.revokeObjectURL was a very badly flawed idea, since it introduces
manual resource management in a platform not designed for it.)
--
Glenn Maynard
o every
video, since the page might be going through a playlist and you surely
don't want "t=30" to cause every song or video in the playlist to start at
30s.
--
Glenn Maynard
, size 22):
https://zewt.org/~glenn/canvas-glow.png.
(I'm testing against inner shadow instead of inner glow; inner glow seems
to do something a little more complex at the blur step than a gaussian
blur. Tested in Chrome 21; output in Firefox is different, but I probably
need to update.)
--
Glenn Maynard
th an inner shadow, you draw the shape first followed by the blur image.
> Importantly, the blur image also needs to clipped by the shape before it is
> composited.
>
Also, the blurred image's alpha is inverted.
--
Glenn Maynard
go.
>
Surely nothing prevents adding a CSS property, eg. "shown: no", which takes
precedence over display when set to "no" and does nothing when set to
"yes". It's probably too late to change @hidden to use it, though maybe
not; it would probably break a roughly
very page to behave nicely.
This (from Dean, the OP) seems to be an argument *against* supportsContext,
since supportsContext is precisely "expecting every page to behave
nicely". Something-at-the-browser-level is what I described above (in
reply).
And if the nicer above fix is implementable, supportsContext seems
unnecessary.
--
Glenn Maynard
use
other encodings. (It's probably questionable to not support other
encodings, too, eg. filenames in ZIP file headers, but starting out with
Unicode is fine.)
--
Glenn Maynard
e ordered behind the scenes.
>
> If it is reusable that would be great. I guess Web IDL then needs to
> be updated somehow to give us some hooks.
>
FWIW, map apparently doesn't yet have iteration (according to
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Obj
nterface.
We're throwing away a ton if we suddenly decide not to take advantage of
JavaScript's native syntax for dictionary-like object access.
--
Glenn Maynard
(Actually, key/value pairs appended like this would
still be accessible with Tab's suggestion, it's just the resulting key
order that it doesn't expose.)
--
Glenn Maynard
On Fri, Oct 5, 2012 at 5:51 PM, Boris Zbarsky wrote:
> The question is what it is when a.ownerDocument has no defaultView. The
> "not in a document" case is a different issue.
>
(See my last post.)
--
Glenn Maynard
told when I'm doing
something obviously bad, so you'll have to pick which group to annoy:
people who want to write reliable webpages, or those who don't.
--
Glenn Maynard
e nice to do this in validators, but that's not very
practical with static analysis.)
--
Glenn Maynard
opped it.
>
That's unfortunate. It's one of the most pathologically broken behaviors
on the platform; now there will be nothing discouraging people from using
it. I think this was a net win despite the cost to interoperability.
--
Glenn Maynard
, I think these are also necessary features:
> ...
> + have the new page be in a new browsing context
It doesn't seem like you need a new browsing context to achieve both of the
above. (Maybe it's easier to implement in today's multi-process browsers,
if you happen to be opening a new tab at the same time you start a new
process, but that seems like an implementation detail.)
--
Glenn Maynard
that the user didn't ask for. (If there are security issues
with opening links in the same tab in the first place, I'm interested in
knowing what they are.)
--
Glenn Maynard
On Tue, Sep 25, 2012 at 9:53 PM, Boris Zbarsky wrote:
> On 9/25/12 10:36 PM, Glenn Maynard wrote:
>
>> You usually don't care about the resulting order in that case, right?
>>
>
> It's not uncommon for servers to depend on a particular order of
> parameters
On Tue, Sep 25, 2012 at 9:27 PM, Boris Zbarsky wrote:
> On 9/25/12 10:13 PM, Glenn Maynard wrote:
>
>> The obvious use case is constructing a URI with a given query by
>> hand, right?
>>
>> If you already have the "a=1&b=2" string, you can
On Tue, Sep 25, 2012 at 8:36 PM, Boris Zbarsky wrote:
> On 9/25/12 6:53 PM, Glenn Maynard wrote:
>
>> (Of course, a separate method could exist to get access to the underlying
>> order, if and when real use cases turn up that actually need it, and it's
>> not unli
re both pretty much equivalent
here.
This is a use case for parsing without composed relative resolution.
>
Maybe, but that's a pretty complicated approach for this use case.
(To summarize the mechanism he's referring to, as I understand it: the
ability to use this API to parse, modify and output relative URLs without
resolving them to a base URL at all.)
--
Glenn Maynard
?a=b&c=d"); query.query["a"] = "x";
> query.toString() == "?a=x&c=d";
>
> Why is a new interface necessary?
>
That won't work, since "?a=b&c=d" isn't a valid URL. The invalid flag will
be set, so the change to .query will be a no-op, and .href (presumably what
toString will invoke) would return the original URL, "?a=b&c=d", not
"?a=x&c=d". You'd need to do something like:
var query = new URL("http://example.com?"; + url.hash);
query.query.a = "x";
url.hash = query.search.slice(1); // remove the leading "?"
That's awkward, but maybe it's good enough.
--
Glenn Maynard
ing for readability without knowing in advance
whether the event was already fired or not, which would be important eg. if
you just received the ArrayBuffer in a message. (An attribute could do this
as well, but that might be more prone to developer error.)
--
Glenn Maynard
in URLs like "
http://example.com/server/side/path?server-side-query=1#client/side/path?client-side-query=1";,
and it would be nice to be able to work with both of these with the same
interface. That is, query = new URLQuery("a=b&c=d"); query["a"] = "x";
query.toString() == "a=x&c=d";
--
Glenn Maynard
t algorithm always allows UTF-16, even when you explicitly say UTF-8.
That would cause everyone using this API for UTF-8 to inadvertently
perpetuate UTF-16 support.
I hope we wouldn't want to apply the heuristic (#8) or user-locale steps
(#9), and the rest (user overrides, prescanning) is HTML-specific.
--
Glenn Maynard
is closer to hasFeature, which is a pattern now avoided.
--
Glenn Maynard
GLActiveInfo
interface itself into an object. It sounds like you want something like
interface WebGL {
interface WebGLActiveInfo {
...
}
}
interface WebGLRenderingContext {
WebGL.WebGLActiveInfo? getActiveAttrib(WebGLProgram? program, GLuint
index);
}
--
Glenn Maynard
7;s too late; WebGL is a shipping, widely-used API. (This isn't a WebGL
problem, either; it's just doing what every other API on the platform does.
I don't think WebIDL even has a mechanism to put interfaces inside other
objects.)
--
Glenn Maynard
e reading software on Android, but I don't think
there's an API to hook it up to existing input methods. I think you'd have
to release a whole standalone input method to implement it. I could be
wrong, I'm not up to date on newer Android APIs.)
--
Glenn Maynard
"number of times someone
writes a parser". There are an inconceivably larger number of people
authoring HTML than writing HTML parsers.
--
Glenn Maynard
bvious mapping for such fractal complexity.
>
"Fractal complexity"? Please don't be dramatic; this is embarrassingly
simple.
--
Glenn Maynard
e adopted. How exactly this is implemented is a
> > > quality of implementation issue.
>
> > There are ways to make it work without forgoing acceleration, e.g. taking
> > regular "backups" of the canvas contents, remembering every instruction
> > that was sen
vas just once are a minority.
> and we're already talking about a very rare occurrence in the first place
>
That's another big assumption. From what I understand, this is a regular
occurance on mobile.
--
Glenn Maynard
> > reasonable to keep the canvas bitmap around.
>
> This is an interesting idea... do other vendors want to provide something
> like this?
>
Also, would vendors actually be willing to shift existing content to this
slower path? This is only a partial solution if implementations don't do
that part.
--
Glenn Maynard
xt mid-script, at least in
theory), but it would avoid most breakage while still allowing
GPU-acceleration, so I wouldn't be surprised if implementations compromised
on something like this.
--
Glenn Maynard
canvas, not textures, shaders,
and so on), but it would still be a major source of interop issues.
--
Glenn Maynard
On Wed, Aug 29, 2012 at 3:01 PM, Charlie Reis wrote:
> On Tue, Aug 28, 2012 at 9:39 AM, Glenn Maynard wrote:
> > I had to do this recently (a script-initiated rel=noreferrer
> navigation). FYI, I worked around it by creating a temporary
> HTMLAnchorElement, setting its href and
calling click(). A way to do this directly
with window.open would be nice, but it's orthogonal to noreferrer vs.
unrelated.
--
Glenn Maynard
101 - 200 of 534 matches
Mail list logo