Bug 228577

Summary: Make it possible to cancel an EventLoopTask and use in HTMLDetailsElement
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: DOMAssignee: Ryosuke Niwa <rniwa>
Status: RESOLVED LATER    
Severity: Normal CC: cdumez, changseok, esprehn+autocc, ews-watchlist, gyuyoung.kim, kangil.han, ntim, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=228863
Bug Depends on:    
Bug Blocks: 202843    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch ews-feeder: commit-queue-

Description Ryosuke Niwa 2021-07-28 22:02:57 PDT
Add an identifier for each task so that we can use it to cancel the task later.
Migrate HTMLDetailsElement's toggle event to the event loop using that.
Comment 1 Ryosuke Niwa 2021-07-28 22:18:44 PDT
Created attachment 434494 [details]
Patch
Comment 2 Ryosuke Niwa 2021-07-28 22:52:55 PDT
Created attachment 434496 [details]
Patch
Comment 3 Ryosuke Niwa 2021-07-29 02:04:12 PDT
Created attachment 434504 [details]
Patch
Comment 4 Ryosuke Niwa 2021-07-29 03:15:02 PDT
Created attachment 434509 [details]
Patch
Comment 5 Simon Fraser (smfr) 2021-07-29 09:47:25 PDT
Comment on attachment 434509 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=434509&action=review

> Source/WebCore/dom/EventLoop.h:76
> +    enum class TaskIdentifier : uint64_t { Invalid = 0 };

Is there a reason not to use ObjectIdentifier<> ?
Comment 6 Ryosuke Niwa 2021-07-29 14:49:56 PDT
(In reply to Simon Fraser (smfr) from comment #5)
> Comment on attachment 434509 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=434509&action=review
> 
> > Source/WebCore/dom/EventLoop.h:76
> > +    enum class TaskIdentifier : uint64_t { Invalid = 0 };
> 
> Is there a reason not to use ObjectIdentifier<> ?

ObjectIdentifier will increase the size of EventLoopTask by 8 bytes. I'm avoiding that by using the combination of the pointer value & 16-bit salting.
Comment 7 Radar WebKit Bug Importer 2021-08-04 22:03:18 PDT
<rdar://problem/81549670>
Comment 8 Tim Nguyen (:ntim) 2022-01-19 05:19:52 PST
Does bug 228863 somewhat solve this?
Comment 9 Ryosuke Niwa 2022-01-19 21:21:06 PST
(In reply to Tim Nguyen (:ntim) from comment #8)
> Does bug 228863 somewhat solve this?

It doesn't since the main point of this patch is to add the ability to cancel a task in the event loop but Chris sort of fixed that by adding CancelableTask in https://trac.webkit.org/r278543.

Let's defer this to later.