⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 194078 in webkit


Ignore:
Timestamp:
Dec 14, 2015, 4:35:39 PM (11 years ago)
Author:
matthew_hanson@apple.com
Message:

Merge r192911. rdar://problem/23816165

Location:
branches/safari-601-branch
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-601-branch/Source/WebKit2/ChangeLog

    r194076 r194078  
     12015-12-08  Harris Papadopoulos  <cpapadopoulos@apple.com>
     2
     3        Merge r192911. rdar://problem/23816165
     4
     5    2015-12-01  Sam Weinig  <sam@webkit.org>
     6
     7            Need completionHandler-based WebKit C SPI for alert, confirm, and prompt
     8            <rdar://problem/23320863>
     9            https://bugs.webkit.org/show_bug.cgi?id=151708
     10
     11            Reviewed by Anders Carlsson.
     12
     13            Add listener based versions of alert, confirm and prompt.
     14
     15            * Shared/API/APIObject.h:
     16            * Shared/API/c/WKBase.h:
     17            * UIProcess/API/C/WKPage.cpp:
     18            (WebKit::RunJavaScriptAlertResultListener::create):
     19            (WebKit::RunJavaScriptAlertResultListener::~RunJavaScriptAlertResultListener):
     20            (WebKit::RunJavaScriptAlertResultListener::call):
     21            (WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener):
     22            (WebKit::RunJavaScriptConfirmResultListener::create):
     23            (WebKit::RunJavaScriptConfirmResultListener::~RunJavaScriptConfirmResultListener):
     24            (WebKit::RunJavaScriptConfirmResultListener::call):
     25            (WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener):
     26            (WebKit::RunJavaScriptPromptResultListener::create):
     27            (WebKit::RunJavaScriptPromptResultListener::~RunJavaScriptPromptResultListener):
     28            (WebKit::RunJavaScriptPromptResultListener::call):
     29            (WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener):
     30            (WKPageSetPageUIClient):
     31            * UIProcess/API/C/WKPageUIClient.h:
     32
    1332015-12-08  Harris Papadopoulos  <cpapadopoulos@apple.com>
    234
  • branches/safari-601-branch/Source/WebKit2/Shared/API/APIObject.h

    r194076 r194078  
    138138        PluginSiteDataManager,
    139139        Preferences,
     140        RunJavaScriptAlertResultListener,
     141        RunJavaScriptConfirmResultListener,
     142        RunJavaScriptPromptResultListener,
    140143        Session,
    141144        TextChecker,
  • branches/safari-601-branch/Source/WebKit2/Shared/API/c/WKBase.h

    r194076 r194078  
    131131typedef const struct OpaqueWKPreferences* WKPreferencesRef;
    132132typedef const struct OpaqueWKProtectionSpace* WKProtectionSpaceRef;
     133typedef const struct OpaqueWKPageRunJavaScriptAlertResultListener* WKPageRunJavaScriptAlertResultListenerRef;
     134typedef const struct OpaqueWKPageRunJavaScriptConfirmResultListener* WKPageRunJavaScriptConfirmResultListenerRef;
     135typedef const struct OpaqueWKPageRunJavaScriptPromptResultListener* WKPageRunJavaScriptPromptResultListenerRef;
    133136typedef const struct OpaqueWKTextChecker* WKTextCheckerRef;
    134137typedef const struct OpaqueWKSession* WKSessionRef;
  • branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r194076 r194078  
    13331333}
    13341334
     1335#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED <= 101000
     1336static void fixUpBotchedPageUIClient(WKPageRef pageRef, const WKPageUIClientBase& wkClient)
     1337{
     1338    struct BotchedWKPageUIClientV4 {
     1339        WKPageUIClientBase                                                  base;
     1340
     1341        // Version 0.
     1342        WKPageCreateNewPageCallback_deprecatedForUseWithV0                  createNewPage_deprecatedForUseWithV0;
     1343        WKPageUIClientCallback                                              showPage;
     1344        WKPageUIClientCallback                                              close;
     1345        WKPageTakeFocusCallback                                             takeFocus;
     1346        WKPageFocusCallback                                                 focus;
     1347        WKPageUnfocusCallback                                               unfocus;
     1348        WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV0             runJavaScriptAlert_deprecatedForUseWithV0;
     1349        WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV0           runJavaScriptConfirm_deprecatedForUseWithV0;
     1350        WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV0            runJavaScriptPrompt_deprecatedForUseWithV0;
     1351        WKPageSetStatusTextCallback                                         setStatusText;
     1352        WKPageMouseDidMoveOverElementCallback_deprecatedForUseWithV0        mouseDidMoveOverElement_deprecatedForUseWithV0;
     1353        WKPageMissingPluginButtonClickedCallback_deprecatedForUseWithV0     missingPluginButtonClicked_deprecatedForUseWithV0;
     1354        WKPageDidNotHandleKeyEventCallback                                  didNotHandleKeyEvent;
     1355        WKPageDidNotHandleWheelEventCallback                                didNotHandleWheelEvent;
     1356        WKPageGetToolbarsAreVisibleCallback                                 toolbarsAreVisible;
     1357        WKPageSetToolbarsAreVisibleCallback                                 setToolbarsAreVisible;
     1358        WKPageGetMenuBarIsVisibleCallback                                   menuBarIsVisible;
     1359        WKPageSetMenuBarIsVisibleCallback                                   setMenuBarIsVisible;
     1360        WKPageGetStatusBarIsVisibleCallback                                 statusBarIsVisible;
     1361        WKPageSetStatusBarIsVisibleCallback                                 setStatusBarIsVisible;
     1362        WKPageGetIsResizableCallback                                        isResizable;
     1363        WKPageSetIsResizableCallback                                        setIsResizable;
     1364        WKPageGetWindowFrameCallback                                        getWindowFrame;
     1365        WKPageSetWindowFrameCallback                                        setWindowFrame;
     1366        WKPageRunBeforeUnloadConfirmPanelCallback                           runBeforeUnloadConfirmPanel;
     1367        WKPageUIClientCallback                                              didDraw;
     1368        WKPageUIClientCallback                                              pageDidScroll;
     1369        WKPageExceededDatabaseQuotaCallback                                 exceededDatabaseQuota;
     1370        WKPageRunOpenPanelCallback                                          runOpenPanel;
     1371        WKPageDecidePolicyForGeolocationPermissionRequestCallback           decidePolicyForGeolocationPermissionRequest;
     1372        WKPageHeaderHeightCallback                                          headerHeight;
     1373        WKPageFooterHeightCallback                                          footerHeight;
     1374        WKPageDrawHeaderCallback                                            drawHeader;
     1375        WKPageDrawFooterCallback                                            drawFooter;
     1376        WKPagePrintFrameCallback                                            printFrame;
     1377        WKPageUIClientCallback                                              runModal;
     1378        void*                                                               unused1; // Used to be didCompleteRubberBandForMainFrame
     1379        WKPageSaveDataToFileInDownloadsFolderCallback                       saveDataToFileInDownloadsFolder;
     1380        void*                                                               shouldInterruptJavaScript_unavailable;
     1381
     1382        // Version 1.
     1383        WKPageCreateNewPageCallback_deprecatedForUseWithV1                  createNewPage;
     1384        WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
     1385        WKPageDecidePolicyForNotificationPermissionRequestCallback          decidePolicyForNotificationPermissionRequest;
     1386        WKPageUnavailablePluginButtonClickedCallback_deprecatedForUseWithV1 unavailablePluginButtonClicked_deprecatedForUseWithV1;
     1387
     1388        // Version 2.
     1389        WKPageShowColorPickerCallback                                       showColorPicker;
     1390        WKPageHideColorPickerCallback                                       hideColorPicker;
     1391        WKPageUnavailablePluginButtonClickedCallback                        unavailablePluginButtonClicked;
     1392
     1393        // Version 3.
     1394        WKPagePinnedStateDidChangeCallback                                  pinnedStateDidChange;
     1395
     1396        // Version 4.
     1397        WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV5             runJavaScriptAlert;
     1398        WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV5           runJavaScriptConfirm;
     1399        WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV5            runJavaScriptPrompt;
     1400    };
     1401
     1402    const auto& botchedPageUIClient = reinterpret_cast<const BotchedWKPageUIClientV4&>(wkClient);
     1403
     1404    WKPageUIClientV5 fixedPageUIClient = {
     1405        { 5, botchedPageUIClient.base.clientInfo },
     1406        botchedPageUIClient.createNewPage_deprecatedForUseWithV0,
     1407        botchedPageUIClient.showPage,
     1408        botchedPageUIClient.close,
     1409        botchedPageUIClient.takeFocus,
     1410        botchedPageUIClient.focus,
     1411        botchedPageUIClient.unfocus,
     1412        botchedPageUIClient.runJavaScriptAlert_deprecatedForUseWithV0,
     1413        botchedPageUIClient.runJavaScriptConfirm_deprecatedForUseWithV0,
     1414        botchedPageUIClient.runJavaScriptPrompt_deprecatedForUseWithV0,
     1415        botchedPageUIClient.setStatusText,
     1416        botchedPageUIClient.mouseDidMoveOverElement_deprecatedForUseWithV0,
     1417        botchedPageUIClient.missingPluginButtonClicked_deprecatedForUseWithV0,
     1418        botchedPageUIClient.didNotHandleKeyEvent,
     1419        botchedPageUIClient.didNotHandleWheelEvent,
     1420        botchedPageUIClient.toolbarsAreVisible,
     1421        botchedPageUIClient.setToolbarsAreVisible,
     1422        botchedPageUIClient.menuBarIsVisible,
     1423        botchedPageUIClient.setMenuBarIsVisible,
     1424        botchedPageUIClient.statusBarIsVisible,
     1425        botchedPageUIClient.setStatusBarIsVisible,
     1426        botchedPageUIClient.isResizable,
     1427        botchedPageUIClient.setIsResizable,
     1428        botchedPageUIClient.getWindowFrame,
     1429        botchedPageUIClient.setWindowFrame,
     1430        botchedPageUIClient.runBeforeUnloadConfirmPanel,
     1431        botchedPageUIClient.didDraw,
     1432        botchedPageUIClient.pageDidScroll,
     1433        botchedPageUIClient.exceededDatabaseQuota,
     1434        botchedPageUIClient.runOpenPanel,
     1435        botchedPageUIClient.decidePolicyForGeolocationPermissionRequest,
     1436        botchedPageUIClient.headerHeight,
     1437        botchedPageUIClient.footerHeight,
     1438        botchedPageUIClient.drawHeader,
     1439        botchedPageUIClient.drawFooter,
     1440        botchedPageUIClient.printFrame,
     1441        botchedPageUIClient.runModal,
     1442        botchedPageUIClient.unused1,
     1443        botchedPageUIClient.saveDataToFileInDownloadsFolder,
     1444        botchedPageUIClient.shouldInterruptJavaScript_unavailable,
     1445        botchedPageUIClient.createNewPage,
     1446        botchedPageUIClient.mouseDidMoveOverElement,
     1447        botchedPageUIClient.decidePolicyForNotificationPermissionRequest,
     1448        botchedPageUIClient.unavailablePluginButtonClicked_deprecatedForUseWithV1,
     1449        botchedPageUIClient.showColorPicker,
     1450        botchedPageUIClient.hideColorPicker,
     1451        botchedPageUIClient.unavailablePluginButtonClicked,
     1452        botchedPageUIClient.pinnedStateDidChange,
     1453        nullptr,
     1454        nullptr,
     1455        nullptr,
     1456        nullptr,
     1457        nullptr,
     1458        nullptr,
     1459        botchedPageUIClient.runJavaScriptAlert,
     1460        botchedPageUIClient.runJavaScriptConfirm,
     1461        botchedPageUIClient.runJavaScriptPrompt,
     1462        nullptr,
     1463    };
     1464
     1465    WKPageSetPageUIClient(pageRef, &fixedPageUIClient.base);
     1466}
     1467#endif
     1468
     1469namespace WebKit {
     1470
     1471class RunJavaScriptAlertResultListener : public API::ObjectImpl<API::Object::Type::RunJavaScriptAlertResultListener> {
     1472public:
     1473    static PassRefPtr<RunJavaScriptAlertResultListener> create(std::function<void ()>&& completionHandler)
     1474    {
     1475        return adoptRef(new RunJavaScriptAlertResultListener(WTF::move(completionHandler)));
     1476    }
     1477
     1478    virtual ~RunJavaScriptAlertResultListener()
     1479    {
     1480    }
     1481
     1482    void call()
     1483    {
     1484        m_completionHandler();
     1485    }
     1486
     1487private:
     1488    explicit RunJavaScriptAlertResultListener(std::function<void ()>&& completionHandler)
     1489        : m_completionHandler(WTF::move(completionHandler))
     1490    {
     1491    }
     1492   
     1493    std::function<void ()> m_completionHandler;
     1494};
     1495
     1496class RunJavaScriptConfirmResultListener : public API::ObjectImpl<API::Object::Type::RunJavaScriptConfirmResultListener> {
     1497public:
     1498    static PassRefPtr<RunJavaScriptConfirmResultListener> create(std::function<void (bool)>&& completionHandler)
     1499    {
     1500        return adoptRef(new RunJavaScriptConfirmResultListener(WTF::move(completionHandler)));
     1501    }
     1502
     1503    virtual ~RunJavaScriptConfirmResultListener()
     1504    {
     1505    }
     1506
     1507    void call(bool result)
     1508    {
     1509        m_completionHandler(result);
     1510    }
     1511
     1512private:
     1513    explicit RunJavaScriptConfirmResultListener(std::function<void (bool)>&& completionHandler)
     1514        : m_completionHandler(WTF::move(completionHandler))
     1515    {
     1516    }
     1517
     1518    std::function<void (bool)> m_completionHandler;
     1519};
     1520
     1521class RunJavaScriptPromptResultListener : public API::ObjectImpl<API::Object::Type::RunJavaScriptPromptResultListener> {
     1522public:
     1523    static PassRefPtr<RunJavaScriptPromptResultListener> create(std::function<void (const String&)>&& completionHandler)
     1524    {
     1525        return adoptRef(new RunJavaScriptPromptResultListener(WTF::move(completionHandler)));
     1526    }
     1527
     1528    virtual ~RunJavaScriptPromptResultListener()
     1529    {
     1530    }
     1531
     1532    void call(const String& result)
     1533    {
     1534        m_completionHandler(result);
     1535    }
     1536
     1537private:
     1538    explicit RunJavaScriptPromptResultListener(std::function<void (const String&)>&& completionHandler)
     1539        : m_completionHandler(WTF::move(completionHandler))
     1540    {
     1541    }
     1542
     1543    std::function<void (const String&)> m_completionHandler;
     1544};
     1545
     1546WK_ADD_API_MAPPING(WKPageRunJavaScriptAlertResultListenerRef, RunJavaScriptAlertResultListener)
     1547WK_ADD_API_MAPPING(WKPageRunJavaScriptConfirmResultListenerRef, RunJavaScriptConfirmResultListener)
     1548WK_ADD_API_MAPPING(WKPageRunJavaScriptPromptResultListenerRef, RunJavaScriptPromptResultListener)
     1549
     1550}
     1551
    13351552void WKPageSetPageUIClient(WKPageRef pageRef, const WKPageUIClientBase* wkClient)
    13361553{
     
    14361653        virtual void runJavaScriptAlert(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData& securityOriginData, std::function<void ()> completionHandler) override
    14371654        {
    1438             if (!m_client.runJavaScriptAlert && !m_client.runJavaScriptAlert_deprecatedForUseWithV0) {
     1655            if (m_client.runJavaScriptAlert) {
     1656                RefPtr<RunJavaScriptAlertResultListener> listener = RunJavaScriptAlertResultListener::create(WTF::move(completionHandler));
     1657                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
     1658                m_client.runJavaScriptAlert(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), toAPI(listener.get()), m_client.base.clientInfo);
     1659                return;
     1660            }
     1661
     1662            if (m_client.runJavaScriptAlert_deprecatedForUseWithV5) {
     1663                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
     1664                m_client.runJavaScriptAlert_deprecatedForUseWithV5(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo);
    14391665                completionHandler();
    14401666                return;
    14411667            }
    1442 
    1443             if (m_client.runJavaScriptAlert) {
     1668           
     1669            if (m_client.runJavaScriptAlert_deprecatedForUseWithV0) {
     1670                m_client.runJavaScriptAlert_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(frame), m_client.base.clientInfo);
     1671                completionHandler();
     1672                return;
     1673            }
     1674
     1675
     1676            completionHandler();
     1677        }
     1678
     1679        virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData& securityOriginData, std::function<void (bool)> completionHandler) override
     1680        {
     1681            if (m_client.runJavaScriptConfirm) {
     1682                RefPtr<RunJavaScriptConfirmResultListener> listener = RunJavaScriptConfirmResultListener::create(WTF::move(completionHandler));
    14441683                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
    1445                 m_client.runJavaScriptAlert(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo);
    1446             } else
    1447                 m_client.runJavaScriptAlert_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(frame), m_client.base.clientInfo);
    1448 
    1449             completionHandler();
    1450         }
    1451 
    1452         virtual void runJavaScriptConfirm(WebPageProxy* page, const String& message, WebFrameProxy* frame, const SecurityOriginData& securityOriginData, std::function<void (bool)> completionHandler) override
    1453         {
    1454             if (!m_client.runJavaScriptConfirm && !m_client.runJavaScriptConfirm_deprecatedForUseWithV0) {
    1455                 completionHandler(false);
     1684                m_client.runJavaScriptConfirm(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), toAPI(listener.get()), m_client.base.clientInfo);
    14561685                return;
    14571686            }
    14581687
    1459             bool result;
    1460             if (m_client.runJavaScriptConfirm) {
     1688            if (m_client.runJavaScriptConfirm_deprecatedForUseWithV5) {
    14611689                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
    1462                 result = m_client.runJavaScriptConfirm(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo);
    1463             } else
    1464                 result = m_client.runJavaScriptConfirm_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(frame), m_client.base.clientInfo);
    1465 
    1466             completionHandler(result);
     1690                bool result = m_client.runJavaScriptConfirm_deprecatedForUseWithV5(toAPI(page), toAPI(message.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo);
     1691               
     1692                completionHandler(result);
     1693                return;
     1694            }
     1695           
     1696            if (m_client.runJavaScriptConfirm_deprecatedForUseWithV0) {
     1697                bool result = m_client.runJavaScriptConfirm_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(frame), m_client.base.clientInfo);
     1698
     1699                completionHandler(result);
     1700                return;
     1701            }
     1702           
     1703            completionHandler(false);
    14671704        }
    14681705
    14691706        virtual void runJavaScriptPrompt(WebPageProxy* page, const String& message, const String& defaultValue, WebFrameProxy* frame, const SecurityOriginData& securityOriginData, std::function<void (const String&)> completionHandler) override
    14701707        {
    1471             if (!m_client.runJavaScriptPrompt && !m_client.runJavaScriptPrompt_deprecatedForUseWithV0) {
    1472                 completionHandler(String());
     1708            if (m_client.runJavaScriptPrompt) {
     1709                RefPtr<RunJavaScriptPromptResultListener> listener = RunJavaScriptPromptResultListener::create(WTF::move(completionHandler));
     1710                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
     1711                m_client.runJavaScriptPrompt(toAPI(page), toAPI(message.impl()), toAPI(defaultValue.impl()), toAPI(frame), toAPI(securityOrigin.get()), toAPI(listener.get()), m_client.base.clientInfo);
    14731712                return;
    14741713            }
    14751714
    1476             RefPtr<API::String> string;
    1477             if (m_client.runJavaScriptPrompt) {
     1715            if (m_client.runJavaScriptPrompt_deprecatedForUseWithV5) {
    14781716                RefPtr<API::SecurityOrigin> securityOrigin = API::SecurityOrigin::create(securityOriginData.protocol, securityOriginData.host, securityOriginData.port);
    1479                 string = adoptRef(toImpl(m_client.runJavaScriptPrompt(toAPI(page), toAPI(message.impl()), toAPI(defaultValue.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo)));
    1480             } else
    1481                 string = adoptRef(toImpl(m_client.runJavaScriptPrompt_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(defaultValue.impl()), toAPI(frame), m_client.base.clientInfo)));
    1482 
    1483             if (!string) {
    1484                 completionHandler(String());
     1717                RefPtr<API::String> string = adoptRef(toImpl(m_client.runJavaScriptPrompt_deprecatedForUseWithV5(toAPI(page), toAPI(message.impl()), toAPI(defaultValue.impl()), toAPI(frame), toAPI(securityOrigin.get()), m_client.base.clientInfo)));
     1718               
     1719                if (string)
     1720                    completionHandler(string->string());
     1721                else
     1722                    completionHandler(String());
    14851723                return;
    14861724            }
    1487 
    1488             completionHandler(string->string());
     1725           
     1726            if (m_client.runJavaScriptPrompt_deprecatedForUseWithV0) {
     1727                RefPtr<API::String> string = adoptRef(toImpl(m_client.runJavaScriptPrompt_deprecatedForUseWithV0(toAPI(page), toAPI(message.impl()), toAPI(defaultValue.impl()), toAPI(frame), m_client.base.clientInfo)));
     1728               
     1729                if (string)
     1730                    completionHandler(string->string());
     1731                else
     1732                    completionHandler(String());
     1733                return;
     1734            }
     1735
     1736            completionHandler(String());
    14891737        }
    14901738
  • branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageUIClient.h

    r194076 r194078  
    4949typedef uint32_t WKPluginUnavailabilityReason;
    5050
     51
     52WK_EXPORT WKTypeID WKPageRunJavaScriptAlertResultListenerGetTypeID();
     53WK_EXPORT void WKPageRunJavaScriptAlertResultListenerCall(WKPageRunJavaScriptAlertResultListenerRef listener);
     54
     55WK_EXPORT WKTypeID WKPageRunJavaScriptConfirmResultListenerGetTypeID();
     56WK_EXPORT void WKPageRunJavaScriptConfirmResultListenerCall(WKPageRunJavaScriptConfirmResultListenerRef listener, bool result);
     57
     58WK_EXPORT WKTypeID WKPageRunJavaScriptPromptResultListenerGetTypeID();
     59WK_EXPORT void WKPageRunJavaScriptPromptResultListenerCall(WKPageRunJavaScriptPromptResultListenerRef listener, WKStringRef result);
     60
    5161typedef void (*WKPageUIClientCallback)(WKPageRef page, const void* clientInfo);
    5262typedef WKPageRef (*WKPageCreateNewPageCallback)(WKPageRef page, WKPageConfigurationRef configuration, WKNavigationActionRef navigationAction, WKWindowFeaturesRef windowFeatures, const void *clientInfo);
    53 typedef void (*WKPageRunJavaScriptAlertCallback)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
    54 typedef bool (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef message, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
    55 typedef WKStringRef (*WKPageRunJavaScriptPromptCallback)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
     63typedef void (*WKPageRunJavaScriptAlertCallback)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, WKSecurityOriginRef securityOrigin, WKPageRunJavaScriptAlertResultListenerRef listener, const void *clientInfo);
     64typedef void (*WKPageRunJavaScriptConfirmCallback)(WKPageRef page, WKStringRef message, WKFrameRef frame, WKSecurityOriginRef securityOrigin, WKPageRunJavaScriptConfirmResultListenerRef listener, const void *clientInfo);
     65typedef void (*WKPageRunJavaScriptPromptCallback)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, WKSecurityOriginRef securityOrigin, WKPageRunJavaScriptPromptResultListenerRef listener, const void *clientInfo);
    5666typedef void (*WKPageTakeFocusCallback)(WKPageRef page, WKFocusDirection direction, const void *clientInfo);
    5767typedef void (*WKPageFocusCallback)(WKPageRef page, const void *clientInfo);
     
    103113typedef WKStringRef (*WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV0)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void *clientInfo);
    104114typedef WKPageRef (*WKPageCreateNewPageCallback_deprecatedForUseWithV1)(WKPageRef page, WKURLRequestRef urlRequest, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton mouseButton, const void *clientInfo);
     115typedef void (*WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV5)(WKPageRef page, WKStringRef alertText, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
     116typedef bool (*WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV5)(WKPageRef page, WKStringRef message, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
     117typedef WKStringRef (*WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV5)(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, WKSecurityOriginRef securityOrigin, const void *clientInfo);
     118
    105119
    106120typedef struct WKPageUIClientBase {
     
    452466    WKPageDecidePolicyForUserMediaPermissionRequestCallback             decidePolicyForUserMediaPermissionRequest;
    453467    WKPageDidClickAutoFillButtonCallback                                didClickAutoFillButton;
    454     WKPageRunJavaScriptAlertCallback                                    runJavaScriptAlert;
    455     WKPageRunJavaScriptConfirmCallback                                  runJavaScriptConfirm;
    456     WKPageRunJavaScriptPromptCallback                                   runJavaScriptPrompt;
     468    WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV5             runJavaScriptAlert;
     469    WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV5           runJavaScriptConfirm;
     470    WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV5            runJavaScriptPrompt;
    457471    WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
    458472} WKPageUIClientV5;
     
    525539    WKPageDecidePolicyForUserMediaPermissionRequestCallback             decidePolicyForUserMediaPermissionRequest;
    526540    WKPageDidClickAutoFillButtonCallback                                didClickAutoFillButton;
     541    WKPageRunJavaScriptAlertCallback_deprecatedForUseWithV5             runJavaScriptAlert_deprecatedForUseWithV5;
     542    WKPageRunJavaScriptConfirmCallback_deprecatedForUseWithV5           runJavaScriptConfirm_deprecatedForUseWithV5;
     543    WKPageRunJavaScriptPromptCallback_deprecatedForUseWithV5            runJavaScriptPrompt_deprecatedForUseWithV5;
     544    WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
     545
     546    // Version 6.
     547    WKPageCreateNewPageCallback                                         createNewPage;
    527548    WKPageRunJavaScriptAlertCallback                                    runJavaScriptAlert;
    528549    WKPageRunJavaScriptConfirmCallback                                  runJavaScriptConfirm;
    529550    WKPageRunJavaScriptPromptCallback                                   runJavaScriptPrompt;
    530     WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
    531 
    532     // Version 6.
    533     WKPageCreateNewPageCallback                                         createNewPage;
    534 
    535551} WKPageUIClientV6;
    536552
  • branches/safari-601-branch/Tools/ChangeLog

    r193581 r194078  
     12015-12-08  Harris Papadopoulos  <cpapadopoulos@apple.com>
     2
     3        Merge r192911. rdar://problem/23816165
     4
     5    2015-12-01  Sam Weinig  <sam@webkit.org>
     6
     7            Need completionHandler-based WebKit C SPI for alert, confirm, and prompt
     8            <rdar://problem/23320863>
     9            https://bugs.webkit.org/show_bug.cgi?id=151708
     10
     11            Reviewed by Anders Carlsson.
     12
     13            * WebKitTestRunner/TestController.cpp:
     14            (WTR::TestController::createOtherPage):
     15            (WTR::TestController::createWebViewWithOptions):
     16            Update for new WKPageUIClient.
     17
    1182015-12-06  Matthew Hanson  <matthew_hanson@apple.com>
    219
  • branches/safari-601-branch/Tools/WebKitTestRunner/TestController.cpp

    r190766 r194078  
    266266        0, // runJavaScriptPrompt
    267267        0, // mediaSessionMetadataDidChange
     268        createOtherPage,
     269        0, // runJavaScriptAlert
     270        0, // runJavaScriptConfirm
     271        0  // runJavaScriptPrompt
    268272    };
    269273    WKPageSetPageUIClient(newPage, &otherPageUIClient.base);
     
    517521        0, // runJavaScriptPrompt
    518522        0, // mediaSessionMetadataDidChange
     523        createOtherPage,
     524        0, // runJavaScriptAlert
     525        0, // runJavaScriptConfirm
     526        0, // runJavaScriptPrompt
    519527    };
    520528    WKPageSetPageUIClient(m_mainWebView->page(), &pageUIClient.base);
Note: See TracChangeset for help on using the changeset viewer.