On Sun, 10 Apr 2011 18:20:35 +0200, timeless <timel...@gmail.com> wrote:

 http://dev.w3.org/2006/webapi/clipops/clipops.html
Also, the XML source could be placed in the clipboard with the appropriate transformation occurring when pasting.

The XML source can also ...

Fixed.

I find "when pasting" problematic. "At paste time" might be better, or
some indication of which side is doing the transformation.

Not sure which is better but accepted your suggestion.

---
interface ClipboardEvent : Event {
void initClipboardEvent (in DOMString eventType, in boolean canBubble, in boolean cancelable, in DOMString dataType, in DOMString data);

doesn't seem to allow for multiple flavors.

It doesn't. I don't think the use case for a script sending multiple "flavours" of data to itself through a synthetic event is all that interesting. I guess we could do something like

evt.initClipboardEvent('paste', true, true, {'text/plain':'Hello world', 'text/html':'<b>Hello world</b>'} );

but I don't think we need the added complexity..

The associated drag data store is a live but filtered view of the system clipboard, exposing all data types the implementation knows the script can safely access.

"safely" seems underspecified, you probably should clarify that this
includes not exposing anything for synthetic events.

Improved ;-) There is that requirement for synthetic events elsewhere though, so I don't think it needs repeating here.

5.3 Determining the target property for clipboard events
In an editable context, the event object's target property must refer to the element that contains the start of the selection in document order, i.e. the end that is closer to the beginning of the document.

iirc DOMRanges can have start after end to indicate that the user has
made a selection in reverse. Is there a reason to ignore that
information and give different targets each time the user extends the
selection?

As far as I remember this is just based on current implementations.

Calling getData() too many or too few arguments should throw

calling foo() _with_ ....

Seems fixed.

Calling clearData() empties the system clipboard, or removes the specified type of data from the clipboard. See HTML5 for details [HTML5].

This has issues. If the user has inserted something the user cares
about into the system clipboard, then allowing a web page to stomp on
it is annoying.  Something needs to protect the user from such web
apps.

That's outside the realm of the spec. There is a section on nuisance potential, and I'd myself perhaps prefer a UA that implemented some limitations, but in general the spec tries to enable cool things rather than worrying about the few naughty sites that would cause nuisance.

Calling getData() from within a paste event handler will return the clipboard data in the specified format. See HTML5 for details [HTML5].

doesn't explain what should happen when the web app tries to paste a
content type the user agent has decided it shouldn't have access to.

That's up to HTML5 but AFAIK it will just return an empty string.

The event is asyncronous but must be dispatched before keyup events for the relevant keys.

asynchronous

Ops, thanks.

The user might paste hidden data which the user is not aware of.

".. not aware of" is kinda messy. Also, perhaps "hidden data" already
indicates the user doesn't know about it?

Improved.

The implementation must not download referenced online resources and expose their contents in the FileList.

s/and/or/

OK

Objects implementing the DataTransfer interface to return clipboard data must not be available outside the ClipboardEvent event handler. If a script stores a reference to an object implementing the DataTransfer interface to use from outside the ClipboardEvent event handler, all methods must be no-ops when called outside the expected context Implementations must not let scripts create synthetic clipboard events to get access to real clipboard data

the last two points are missing <period>s

Fixed.

Implementations must handle scripts that try to place excessive amounts of data on the clipboard gracefully.

I hope "gracefully" is flexible. If my impl wants to terminate the
page, it should be able to do so. (I don't expect it to do so, but I
reserve the right)

Certainly. "Gracefully" basically means something like "don't crash the OS, don't crash yourself, and don't make the computer run very, very slowly while you're busy".

Remove all of the following elements: SCRIPT, APPLET, OBJECT, FORM, INPUT, BUTTON, TEXTAREA, SELECT, OPTION, OPTGROUP and comment nodes. For all mentioned elements except FORM, also remove all child nodes.

I can imagine doing magical things with a <style> tag...

So you think STYLE should be added?

However, removing the active value from a select seems suboptimal.

If you see:

State: [ .... |v]

And use it to get:

State: [ Washington |v]

When you copy it, do you expect:

"State: " or "State: Washington"? I expect the latter, it's
considerably more useful.

Yes. I'm still considering removing the form elements from that list though.
--
Hallvord R. M. Steen, Core Tester, Opera Software
http://www.opera.com http://my.opera.com/hallvors/

Reply via email to