On Thu, Jul 25, 2013 at 2:34 PM, Brady Eidson <beid...@apple.com> wrote:
> > On Jul 25, 2013, at 10:10 AM, Thiago Lacerda <thiago.lace...@openbossa.org> > wrote: > > Hi Brady > > > On Thu, Jul 25, 2013 at 1:48 PM, Brady Eidson <beid...@apple.com> wrote: > >> >> On Jul 25, 2013, at 9:08 AM, Thiago Lacerda <thiago.lace...@openbossa.org> >> wrote: >> >> Hi, >> >> We in the Nix port team (which is going upstream), are facing an issue >> that we need our WebView to know when the page transition has begun. >> >> There was callback, in PageClient, that was making a similar job, called >> didCommitLoadForMainFrame, but it was removed recently. >> >> >> If by “PageClient” you mean the WKPageLoaderClient in WKPage.h, then >> didCommitLoadForFrame is there. >> >> I don’t even recall there ever being a didCommitLoadForMainFrame, but >> didCommitLoadForFrame combined with a quick call to WKPageGetMainFrame will >> do the exact same thing. >> > > By PageClient I mean the one in Source/WebKit2/UIProcess/PageClient.h > (which WebView inherits from) > > > I see. I misunderstood and thought you were talking about the API layer. > > PageClient is largely a platform abstraction and not all platforms inherit > a WebView from it. And since it’s a platform abstraction, I can’t tell you > how your platform should behave with it. > > But that’s probably neither here-nor-there… > > WebPage does have a callback that tells this (didStartPageTransition), >> but this is not forwarded to UIProcess, which is kind of weird, since its >> opposite (didCompletePageTransition) is fired to PageClient when a page has >> completed its transition. >> >> >> didStartPageTransition is about starting a provisional load, and >> didCompletePageTransition is *not* about committing a provisional load. >> Additionally, neither of these are actually sent to any API clients; They >> are internal to WebPage. >> >> If you think didCommitLoadForFrame() for the main frame was what you >> wanted, then both of these are irrelevant anyways. >> > > didCompletePageTransition is forwarded to the C API client. > > In WebPage it calls WebPageProxy::pageTransitionViewportReady -> > WebView(inheriting PageClient)::pageTransitionViewportReady -> > WebViewClient::didCompletePageTransition > > > > This is not true in general for the WK2 project. Cross platform WK2 API > is in terms of the WK* objects and their clients. What you’re describing > here is something very platform specific to your platform’s WebView > implementation. > Please take a look at WKViewClient code, you will see that there is a didCompletePageTransition callback > > Anyways, in your original message, you mentioned that you wanted to know > didCommitLoadForFrame for the main frame, and you intended to pipe > didStartPageTransition through to the UIProcess to approximate that. > > didStartPageTransition is more about tiled backing stores being set up > properly and not about loading transitions. It’s not remotely the same > thing as didCommitLoadForFrame was called for the main frame. > Hum... maybe I have misunderstood the concepts here, by looking at the name (didPageStartTransition) I though it was totally related with page transitions. Despite of that, I think we have an inconsistent API here, which tells when the transition is over but not when it has started. That is the main reason I think it would be good to put that callback in WKViewClient as well. > > Thanks, > ~Brady > Cheers -- Thiago de Barros Lacerda OpenBossa - INdT
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev