Changeset 85806 in webkit


Ignore:
Timestamp:
May 4, 2011 4:42:02 PM (13 years ago)
Author:
andersca@apple.com
Message:

2011-05-04 Anders Carlsson <andersca@apple.com>

Reviewed by Darin Adler.

Add bundle API for making a page paint as the background of another page
https://bugs.webkit.org/show_bug.cgi?id=60227

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageSetUnderlayPage): Call WebPage::setUnderlayPage.
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::close): Null out the underlay page.

(WebKit::WebPage::layoutIfNeeded):
Layout the underlay page if necessary.

(WebKit::WebPage::drawRect):
Draw the underlay page.

Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r85803 r85806  
     12011-05-04  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add bundle API for making a page paint as the background of another page
     6        https://bugs.webkit.org/show_bug.cgi?id=60227
     7
     8        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
     9        (WKBundlePageSetUnderlayPage):
     10        Call WebPage::setUnderlayPage.
     11
     12        * WebProcess/WebPage/WebPage.cpp:
     13        (WebKit::WebPage::close):
     14        Null out the underlay page.
     15
     16        (WebKit::WebPage::layoutIfNeeded):
     17        Layout the underlay page if necessary.
     18
     19        (WebKit::WebPage::drawRect):
     20        Draw the underlay page.
     21
    1222011-05-04  Siddharth Mathur  <siddharth.mathur@nokia.com>
    223
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp

    r84206 r85806  
    208208}
    209209
     210void WKBundlePageSetUnderlayPage(WKBundlePageRef pageRef, WKBundlePageRef pageUnderlayRef)
     211{
     212    toImpl(pageRef)->setUnderlayPage(toImpl(pageUnderlayRef));
     213}
     214
    210215void WKBundlePageInstallPageOverlay(WKBundlePageRef pageRef, WKBundlePageOverlayRef pageOverlayRef)
    211216{
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h

    r84206 r85806  
    286286WK_EXPORT WKBundleBackForwardListRef WKBundlePageGetBackForwardList(WKBundlePageRef page);
    287287
     288WK_EXPORT void WKBundlePageSetUnderlayPage(WKBundlePageRef page, WKBundlePageRef pageUnderlay);
     289
    288290WK_EXPORT void WKBundlePageInstallPageOverlay(WKBundlePageRef page, WKBundlePageOverlayRef pageOverlay);
    289291WK_EXPORT void WKBundlePageUninstallPageOverlay(WKBundlePageRef page, WKBundlePageOverlayRef pageOverlay);
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r85783 r85806  
    424424    m_sandboxExtensionTracker.invalidate();
    425425
     426    m_underlayPage = nullptr;
    426427    m_printContext = nullptr;
    427 
    428428    m_mainFrame->coreFrame()->loader()->detachFromParent();
    429     m_page.clear();
    430 
    431     m_drawingArea.clear();
     429    m_page = nullptr;
     430    m_drawingArea = nullptr;
    432431
    433432    bool isRunningModal = m_isRunningModal;
     
    584583    if (m_mainFrame->coreFrame()->view())
    585584        m_mainFrame->coreFrame()->view()->updateLayoutAndStyleIfNeededRecursive();
     585
     586    if (m_underlayPage) {
     587        if (FrameView *frameView = m_underlayPage->mainFrame()->coreFrame()->view())
     588            frameView->updateLayoutAndStyleIfNeededRecursive();
     589    }
    586590}
    587591
     
    677681    GraphicsContextStateSaver stateSaver(graphicsContext);
    678682    graphicsContext.clip(rect);
     683
     684    if (m_underlayPage) {
     685        GraphicsContextStateSaver stateSaver(graphicsContext);
     686        m_underlayPage->drawRect(graphicsContext, rect);
     687    }
     688
    679689    m_mainFrame->coreFrame()->view()->paint(&graphicsContext, rect);
    680690}
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r85795 r85806  
    213213#endif
    214214
     215    void setUnderlayPage(PassRefPtr<WebPage> underlayPage) { m_underlayPage = underlayPage; }
     216
    215217    bool findStringFromInjectedBundle(const String&, FindOptions);
    216218
     
    631633    RefPtr<PageOverlay> m_pageOverlay;
    632634
     635    RefPtr<WebPage> m_underlayPage;
     636
    633637#if ENABLE(INSPECTOR)
    634638    RefPtr<WebInspector> m_inspector;
Note: See TracChangeset for help on using the changeset viewer.