<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Add an SPI to suppress all WKWebView interactions except scrolling or zooming"
   href="https://bugs.webkit.org/show_bug.cgi?id=200398#c9">Comment # 9</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Add an SPI to suppress all WKWebView interactions except scrolling or zooming"
   href="https://bugs.webkit.org/show_bug.cgi?id=200398">bug 200398</a>
              from <span class="vcard"><a class="email" href="mailto:ggaren@apple.com" title="Geoffrey Garen <ggaren@apple.com>"> <span class="fn">Geoffrey Garen</span></a>
</span></b>
        <pre><span class="quote">> It seems the SPI client invokes this when it wishes to begin temporarily
> begin suppressing certain types of interaction in the web view until the
> next user gesture — for instance, scrolling, pinching, tapping, or long
> pressing. When such a gesture happens, the completion handler passed in by
> the client is then invoked.

> This means the call to -_restoreAllInteractions is actually optional, and
> only allows the client to stop suppressing interactions prematurely.</span >

I missed this detail the first time around. It's nice that the implementation automatically restores interaction upon the first interaction. That helps.

Even so, it looks like long press and context menu will not automatically restore? So there is still some risk here.

<span class="quote">> > (2) Instead of accepting a BOOL argument, return a token object, which
> > offers a -cancel method, and which also calls -cancel automatically in its
> > -dealloc method;</span >

Looking at the described used case, and at the implementation here, I do still think that a token object that held a -cancel method and a completionHandler would be a nice way to model this behavior. (Specifically, I would have WebKit hold a weak reference to the token, and the client hold a strong reference.)

This suppression is associated with a specific object in the client, so that object can own the token object.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>