Changeset 93902 in webkit


Ignore:
Timestamp:
Aug 26, 2011 12:23:56 PM (13 years ago)
Author:
alice.liu@apple.com
Message:

https://bugs.webkit.org/show_bug.cgi?id=66823
Add the request info to the WebPageProxy::CreateNewPage message

Reviewed by Anders Carlsson.

Source/WebKit2:

Update function declarations with additional ResourceRequest parameter:

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebUIClient.cpp:

(WebKit::WebUIClient::createNewPage):

  • UIProcess/WebUIClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):
Pass the ResourceRequest within the FrameLoadRequest.

Tools:

Update function declarations with additional parameter:

  • MiniBrowser/gtk/BrowserWindow.c:

(createNewPage):

  • MiniBrowser/mac/BrowserWindowController.m:

(createNewPage):

  • MiniBrowser/win/BrowserView.cpp:

(createNewPage):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):

  • WebKitTestRunner/TestController.h:
Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r93897 r93902  
     12011-08-26  Alice Liu  <alice.liu@apple.com>
     2
     3        https://bugs.webkit.org/show_bug.cgi?id=66823
     4        Add the request info to the WebPageProxy::CreateNewPage message
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Update function declarations with additional ResourceRequest parameter:
     9        * UIProcess/API/C/WKPage.h:
     10        * UIProcess/WebPageProxy.cpp:
     11        (WebKit::WebPageProxy::createNewPage):
     12        * UIProcess/WebPageProxy.h:
     13        * UIProcess/WebPageProxy.messages.in:
     14        * UIProcess/WebUIClient.cpp:
     15        (WebKit::WebUIClient::createNewPage):
     16        * UIProcess/WebUIClient.h:
     17
     18        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     19        (WebKit::WebChromeClient::createWindow):
     20        Pass the ResourceRequest within the FrameLoadRequest.
     21
    1222011-08-26  Alexis Menard  <alexis.menard@openbossa.org>
    223
  • trunk/Source/WebKit2/Shared/APIClientTraits.cpp

    r90162 r93902  
    3636};
    3737
     38const size_t APIClientTraits<WKPageUIClient>::interfaceSizesByVersion[] = {
     39    offsetof(WKPageUIClient, createNewPage),
     40    sizeof(WKPageUIClient)
     41};
     42   
    3843} // namespace WebKit
  • trunk/Source/WebKit2/Shared/APIClientTraits.h

    r90162 r93902  
    2828
    2929#include "WKBundlePage.h"
     30#include "WKPage.h"
    3031
    3132namespace WebKit {
     
    4243};
    4344
     45template<> struct APIClientTraits<WKPageUIClient>
     46{
     47    static const size_t interfaceSizesByVersion[2];
     48};
     49
    4450} // namespace WebKit
    4551
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.h

    r91012 r93902  
    161161
    162162// UI Client
    163 typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
     163typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKURLRequestRef urlRequest, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
    164164typedef void (*WKPageRunJavaScriptAlertCallback)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, const void *clientInfo);
    165165typedef bool (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef message, WKFrameRef frame, const void *clientInfo);
     
    196196typedef bool (*WKPageShouldInterruptJavaScriptCallback)(WKPageRef page, const void *clientInfo);
    197197
     198// Deprecated   
     199typedef WKPageRef (*WKPageCreateNewPageCallback_deprecatedForUseWithV0)(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
     200   
    198201struct WKPageUIClient {
    199202    int                                                                 version;
    200203    const void *                                                        clientInfo;
    201     WKPageCreateNewPageCallback                                         createNewPage;
     204
     205    // Version 0
     206    WKPageCreateNewPageCallback_deprecatedForUseWithV0                  createNewPage_deprecatedForUseWithV0;
    202207    WKPageCallback                                                      showPage;
    203208    WKPageCallback                                                      close;
     
    237242    WKPageDidCompleteRubberBandForMainFrameCallback                     didCompleteRubberBandForMainFrame;
    238243    WKPageSaveDataToFileInDownloadsFolderCallback                       saveDataToFileInDownloadsFolder;
    239     WKPageShouldInterruptJavaScriptCallback                             shouldInterruptJavaScript;
     244    WKPageShouldInterruptJavaScriptCallback                             shouldInterruptJavaScript;   
     245
     246    // Version 1
     247    WKPageCreateNewPageCallback                                         createNewPage;
    240248};
    241249typedef struct WKPageUIClient WKPageUIClient;
    242250
    243 enum { kWKPageUIClientCurrentVersion = 0 };
     251enum { kWKPageUIClientCurrentVersion = 1 };
    244252
    245253// Find client.
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r93880 r93902  
    18941894// UIClient
    18951895
    1896 void WebPageProxy::createNewPage(const WindowFeatures& windowFeatures, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
    1897 {
    1898     RefPtr<WebPageProxy> newPage = m_uiClient.createNewPage(this, windowFeatures, static_cast<WebEvent::Modifiers>(opaqueModifiers), static_cast<WebMouseEvent::Button>(opaqueMouseButton));
     1896void WebPageProxy::createNewPage(const ResourceRequest& request, const WindowFeatures& windowFeatures, uint32_t opaqueModifiers, int32_t opaqueMouseButton, uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
     1897{
     1898    RefPtr<WebPageProxy> newPage = m_uiClient.createNewPage(this, request, windowFeatures, static_cast<WebEvent::Modifiers>(opaqueModifiers), static_cast<WebMouseEvent::Button>(opaqueMouseButton));
    18991899    if (newPage) {
    19001900        newPageID = newPage->pageID();
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r93880 r93902  
    615615
    616616    // UI client
    617     void createNewPage(const WebCore::WindowFeatures&, uint32_t modifiers, int32_t mouseButton, uint64_t& newPageID, WebPageCreationParameters&);
     617    void createNewPage(const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, uint32_t modifiers, int32_t mouseButton, uint64_t& newPageID, WebPageCreationParameters&);
    618618    void showPage();
    619619    void closePage(bool stopResponsivenessTimer);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r93543 r93902  
    2323messages -> WebPageProxy {
    2424    # UI messages
    25     CreateNewPage(WebCore::WindowFeatures windowFeatures, uint32_t modifiers, int32_t mouseButton) -> (uint64_t newPageID, WebKit::WebPageCreationParameters newPageParameters)
     25    CreateNewPage(WebCore::ResourceRequest request, WebCore::WindowFeatures windowFeatures, uint32_t modifiers, int32_t mouseButton) -> (uint64_t newPageID, WebKit::WebPageCreationParameters newPageParameters)
    2626    ShowPage()
    2727    ClosePage(bool stopResponsivenessTimer)
  • trunk/Source/WebKit2/UIProcess/WebUIClient.cpp

    r86231 r93902  
    4444namespace WebKit {
    4545
    46 PassRefPtr<WebPageProxy> WebUIClient::createNewPage(WebPageProxy* page, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button)
    47 {
    48     if (!m_client.createNewPage)
     46PassRefPtr<WebPageProxy> WebUIClient::createNewPage(WebPageProxy* page, const ResourceRequest& resourceRequest, const WindowFeatures& windowFeatures, WebEvent::Modifiers modifiers, WebMouseEvent::Button button)
     47{
     48    if (!m_client.version && !m_client.createNewPage_deprecatedForUseWithV0)
     49        return 0;
     50   
     51    if (m_client.version == kWKPageUIClientCurrentVersion && !m_client.createNewPage)
    4952        return 0;
    5053
     
    6770    RefPtr<ImmutableDictionary> featuresMap = ImmutableDictionary::adopt(map);
    6871
    69     return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
     72    if (!m_client.version)
     73        return adoptRef(toImpl(m_client.createNewPage_deprecatedForUseWithV0(toAPI(page), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
     74
     75    RefPtr<WebURLRequest> request = WebURLRequest::create(resourceRequest);   
     76    return adoptRef(toImpl(m_client.createNewPage(toAPI(page), toAPI(request.get()), toAPI(featuresMap.get()), toAPI(modifiers), toAPI(button), m_client.clientInfo)));
    7077}
    7178
  • trunk/Source/WebKit2/UIProcess/WebUIClient.h

    r90161 r93902  
    3737    class FloatRect;
    3838    class IntSize;
     39    class ResourceRequest;
    3940    struct WindowFeatures;
    4041}
     
    5455class WebUIClient : public APIClient<WKPageUIClient, kWKPageUIClientCurrentVersion> {
    5556public:
    56     PassRefPtr<WebPageProxy> createNewPage(WebPageProxy*, const WebCore::WindowFeatures&, WebEvent::Modifiers, WebMouseEvent::Button);
     57    PassRefPtr<WebPageProxy> createNewPage(WebPageProxy*, const WebCore::ResourceRequest&, const WebCore::WindowFeatures&, WebEvent::Modifiers, WebMouseEvent::Button);
    5758    void showPage(WebPageProxy*);
    5859    void close(WebPageProxy*);
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r93303 r93902  
    5050#include <WebCore/FileIconLoader.h>
    5151#include <WebCore/Frame.h>
     52#include <WebCore/FrameLoadRequest.h>
    5253#include <WebCore/FrameLoader.h>
    5354#include <WebCore/FrameView.h>
     
    157158}
    158159
    159 Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures& windowFeatures, const NavigationAction& navigationAction)
     160Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures& windowFeatures, const NavigationAction& navigationAction)
    160161{
    161162    uint32_t modifiers = static_cast<uint32_t>(InjectedBundleNavigationAction::modifiersForNavigationAction(navigationAction));
     
    164165    uint64_t newPageID = 0;
    165166    WebPageCreationParameters parameters;
    166     if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::CreateNewPage(windowFeatures, modifiers, mouseButton), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
     167    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::CreateNewPage(request.resourceRequest(), windowFeatures, modifiers, mouseButton), Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters), m_page->pageID()))
    167168        return 0;
    168169
  • trunk/Tools/ChangeLog

    r93857 r93902  
     12011-08-26  Alice Liu  <alice.liu@apple.com>
     2
     3        https://bugs.webkit.org/show_bug.cgi?id=66823
     4        Add the request info to the WebPageProxy::CreateNewPage message
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Update function declarations with additional parameter:
     9        * MiniBrowser/gtk/BrowserWindow.c:
     10        (createNewPage):
     11        * MiniBrowser/mac/BrowserWindowController.m:
     12        (createNewPage):
     13        * MiniBrowser/win/BrowserView.cpp:
     14        (createNewPage):
     15        * WebKitTestRunner/TestController.cpp:
     16        (WTR::TestController::createOtherPage):
     17        * WebKitTestRunner/TestController.h:
     18
    1192011-08-26  Noel Gordon  <noel.gordon@gmail.com>
    220
  • trunk/Tools/MiniBrowser/gtk/BrowserWindow.c

    r93338 r93902  
    523523
    524524// UI Client.
    525 static WKPageRef createNewPage(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void *clientInfo)
     525static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef request, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void *clientInfo)
    526526{
    527527    WKViewRef webView = WKViewCreate(WKPageGetContext(page), 0);
     
    614614        kWKPageUIClientCurrentVersion,
    615615        window, /* clientInfo */
    616         createNewPage,
     616        0,      /* createNewPage_deprecatedForUseWithV0 */
    617617        showPage,
    618618        closePage,
     
    652652        0,      /* didCompleteRubberBandForMainFrame */
    653653        0,      /* saveDataToFileInDownloadsFolder */
    654         0       /* shouldInterruptJavaScript */
     654        0,      /* shouldInterruptJavaScript */
     655        createNewPage
    655656    };
    656657    WKPageSetPageUIClient(WKViewGetPage(window->webView), &uiClient);
  • trunk/Tools/MiniBrowser/mac/BrowserWindowController.m

    r90163 r93902  
    378378// MARK: UI Client Callbacks
    379379
    380 static WKPageRef createNewPage(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void* clientInfo)
     380static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef request, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void* clientInfo)
    381381{
    382382    LOG(@"createNewPage");
     
    617617        kWKPageUIClientCurrentVersion,
    618618        self,       /* clientInfo */
    619         createNewPage,
     619        0,          /* createNewPage_deprecatedForUseWithV0 */
    620620        showPage,
    621621        closePage,
     
    656656        0, // saveDataToFileInDownloadsFolder
    657657        0, // shouldInterruptJavaScript
     658        createNewPage,
    658659    };
    659660    WKPageSetPageUIClient(_webView.pageRef, &uiClient);
  • trunk/Tools/MiniBrowser/win/BrowserView.cpp

    r90163 r93902  
    4040// UI Client Callbacks
    4141
    42 static WKPageRef createNewPage(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void* clientInfo)
     42static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef request, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void* clientInfo)
    4343{
    4444    BrowserWindow* browserWindow = BrowserWindow::create();
     
    9696        kWKPageUIClientCurrentVersion,
    9797        parentWindow,   /* clientInfo */
    98         createNewPage,
     98        0,          /* createNewPage_deprecatedForUseWithV0 */
    9999        showPage,
    100100        closePage,
     
    107107        setStatusText,
    108108        mouseDidMoveOverElement,
     109        0,          /* missingPluginButtonClicked */
    109110        0,          /* didNotHandleKeyEvent */
    110111        0,          /* didNotHandleWheelEvent */
     
    125126        0,          /* runOpenPanel */
    126127        0,          /* decidePolicyForGeolocationPermissionRequest */
     128        0,          /* headerHeight */
     129        0,          /* footerHeight */
     130        0,          /* drawHeader */
     131        0,          /* drawFooter */
     132        0,          /* printFrame */
     133        0,          /* runModal */
     134        0,          /* didCompleteRubberBandForMainFrame */
     135        0,          /* saveDataToFileInDownloadsFolder */
    127136        0,          /* shouldInterruptJavaScript */
     137        createNewPage,
    128138    };
    129139
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r92982 r93902  
    131131}
    132132
    133 WKPageRef TestController::createOtherPage(WKPageRef oldPage, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*)
     133WKPageRef TestController::createOtherPage(WKPageRef oldPage, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*)
    134134{
    135135    PlatformWebView* view = new PlatformWebView(WKPageGetContext(oldPage), WKPageGetPageGroup(oldPage));
     
    141141        kWKPageUIClientCurrentVersion,
    142142        view,
    143         createOtherPage,
     143        0, // createNewPage_deprecatedForUseWithV0
    144144        0, // showPage
    145145        closeOtherPage,
     
    180180        0, // saveDataToFileInDownloadsFolder
    181181        0, // shouldInterruptJavaScript
     182        createOtherPage,
    182183    };
    183184    WKPageSetPageUIClient(newPage, &otherPageUIClient);
     
    284285        kWKPageUIClientCurrentVersion,
    285286        this,
    286         createOtherPage,
     287        0, // createNewPage_deprecatedForUseWithV0
    287288        0, // showPage
    288289        0, // close
     
    323324        0, // saveDataToFileInDownloadsFolder
    324325        0, // shouldInterruptJavaScript
     326        createOtherPage,
    325327    };
    326328    WKPageSetPageUIClient(m_mainWebView->page(), &pageUIClient);
  • trunk/Tools/WebKitTestRunner/TestController.h

    r92982 r93902  
    8989    void processDidCrash();
    9090
    91     static WKPageRef createOtherPage(WKPageRef oldPage, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*);
     91    static WKPageRef createOtherPage(WKPageRef oldPage, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*);
    9292
    9393    static void runModal(WKPageRef, const void* clientInfo);
Note: See TracChangeset for help on using the changeset viewer.