Changeset 261781 in webkit


Ignore:
Timestamp:
May 16, 2020 2:21:33 AM (4 years ago)
Author:
yurys@chromium.org
Message:

[GTK] Do not leak pages created by window.open
https://bugs.webkit.org/show_bug.cgi?id=211970

Reviewed by Carlos Garcia Campos.

Previously webkitWebViewCreateNewPage created unbalanced refence to WebPageProxy and returned
it as a raw pointer. That raw pointer was later wrapped in a RefPtr in WebKitUIClient.
This change ensures that all refs are balanced by returnin RefPtr instead of
a raw pointer.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewCreateNewPage):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r261776 r261781  
     12020-05-16  Yury Semikhatsky  <yurys@chromium.org>
     2
     3        [GTK] Do not leak pages created by window.open
     4        https://bugs.webkit.org/show_bug.cgi?id=211970
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Previously webkitWebViewCreateNewPage created unbalanced refence to WebPageProxy and returned
     9        it as a raw pointer. That raw pointer was later wrapped in a RefPtr in WebKitUIClient.
     10        This change ensures that all refs are balanced by returnin RefPtr instead of
     11        a raw pointer.
     12
     13        * UIProcess/API/glib/WebKitWebView.cpp:
     14        (webkitWebViewCreateNewPage):
     15        * UIProcess/API/glib/WebKitWebViewPrivate.h:
     16
    1172020-05-15  Alex Christensen  <achristensen@webkit.org>
    218
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp

    r261735 r261781  
    23212321#endif
    23222322
    2323 WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView* webView, const WindowFeatures& windowFeatures, WebKitNavigationAction* navigationAction)
     2323RefPtr<WebPageProxy> webkitWebViewCreateNewPage(WebKitWebView* webView, const WindowFeatures& windowFeatures, WebKitNavigationAction* navigationAction)
    23242324{
    23252325    WebKitWebView* newWebView;
     
    23352335    webkitWindowPropertiesUpdateFromWebWindowFeatures(newWebView->priv->windowProperties.get(), windowFeatures);
    23362336
    2337     RefPtr<WebPageProxy> newPage = &getPage(newWebView);
    2338     return newPage.leakRef();
     2337    return makeRefPtr(getPage(newWebView));
    23392338}
    23402339
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h

    r254828 r261781  
    5353void webkitWebViewSetIcon(WebKitWebView*, const WebCore::LinkIcon&, API::Data&);
    5454#endif
    55 WebKit::WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView*, const WebCore::WindowFeatures&, WebKitNavigationAction*);
     55RefPtr<WebKit::WebPageProxy> webkitWebViewCreateNewPage(WebKitWebView*, const WebCore::WindowFeatures&, WebKitNavigationAction*);
    5656void webkitWebViewReadyToShowPage(WebKitWebView*);
    5757void webkitWebViewRunAsModal(WebKitWebView*);
Note: See TracChangeset for help on using the changeset viewer.