- From: Yoshifumi Inoue <yosin@chromium.org>
- Date: Mon, 9 Jun 2014 10:26:04 +0900
- To: Ryosuke Niwa <rniwa@apple.com>
- Cc: Ben Peters <Ben.Peters@microsoft.com>, "public-webapps@w3.org" <public-webapps@w3.org>
- Message-ID: <CABJ-EHOQFY-hJbwOh7W6=sHDq1B9euUCsz82-yYGefxr+Uzovw@mail.gmail.com>
Implementation of Blink/WebKit checks whether anchor node is null or not.
If anchor node is null, Blink/WebKit sets both anchor and focus positions.
Not sure the reason why Blink/WebKit does so. The implementation is created
at least 6+ years ago.
I'm not sure which implementation is better for web devs, FireFox (error
for empty selection) or Blink/WebKit (collapse to specified position). It
seems the spec is written based on FireFox behavior.
If Selection.extend doesn't throw exception when selection is empty, we can
write:
if (event.buttons == 1 && event.shiftKey) {
// We don't care selection is empty or not.
getSelection().extend(positionFromPoint(event.location));
}
Anyway, it is bad for making web devs confusing, I file a bug for Blink.
We'll fix Selection.extend to follow current spec.
-yosi
On Sat, Jun 7, 2014 at 5:22 AM, Ryosuke Niwa <rniwa@apple.com> wrote:
> It's probably a bug in WebKit/Blink. Since we're already throwing other
> exceptions in some cases (e.g. INDEX_SIZE_ERR), we can probably change our
> engine behavior.
>
> yoshin: any opinions for blink?
>
> On Jun 6, 2014, at 11:31 AM, Ben Peters <Ben.Peters@microsoft.com> wrote:
>
> > I just filed this bug. Do we know of reasons why Chrome (Webkit?)
> doesn't throw an exception for this scenario? It seems confusing to web
> devs.
> >
> > Ben
> >
> >> -----Original Message-----
> >> From: bugzilla@jessica.w3.org [mailto:bugzilla@jessica.w3.org]
> >>
> >> https://www.w3.org/Bugs/Public/show_bug.cgi?id=26005
> >>
> >> Bug ID: 26005
> >> Summary: Selection.extend behavior when there is no range
> needs
> >> to be clarified
> >> Product: WebAppsWG
> >> Version: unspecified
> >> Hardware: PC
> >> OS: Windows NT
> >> Status: NEW
> >> Severity: normal
> >> Priority: P2
> >> Component: Selection API
> >> Assignee: rniwa@webkit.org
> >> Reporter: benjamp@microsoft.com
> >> QA Contact: public-webapps-bugzilla@w3.org
> >> CC: benjamp@microsoft.com, public-webapps@w3.org
> >>
> >> Today, the Selection API spec seems to say that if selection.rangeCount
> is 0,
> >> then selection.extend should throw an error and abort. This is true in
> Firefox,
> >> but not Chrome. In Chrome, it appears that a new collapsed range is
> created
> >> at the position specified in selection.extend. Without an error, it's
> possible a
> >> site might end up creating a selection when they think they're
> extending it.
> >> But errors in JS should be used sparingly. Not sure which of these makes
> >> more sense.
> >>
> >> --
> >> You are receiving this mail because:
> >> You are on the CC list for the bug.
> >
>
>
Received on Monday, 9 June 2014 01:26:32 UTC