diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp')
-rw-r--r-- | Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp | 64 |
1 files changed, 49 insertions, 15 deletions
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp index da02c8866..38e6c23ae 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp +++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp @@ -26,17 +26,25 @@ #include "config.h" #include "InjectedBundlePageUIClient.h" +#include "APISecurityOrigin.h" #include "InjectedBundleHitTestResult.h" +#include "InjectedBundleNodeHandle.h" #include "WKAPICast.h" #include "WKBundleAPICast.h" -#include "WebSecurityOrigin.h" +#include "WebFrame.h" +#include "WebPage.h" #include <wtf/text/WTFString.h> using namespace WebCore; namespace WebKit { -void InjectedBundlePageUIClient::willAddMessageToConsole(WebPage* page, const String& message, int32_t lineNumber) +InjectedBundlePageUIClient::InjectedBundlePageUIClient(const WKBundlePageUIClientBase* client) +{ + initialize(client); +} + +void InjectedBundlePageUIClient::willAddMessageToConsole(WebPage* page, MessageSource, MessageLevel, const String& message, unsigned lineNumber, unsigned /*columnNumber*/, const String& /*sourceID*/) { if (m_client.willAddMessageToConsole) m_client.willAddMessageToConsole(toAPI(page), toAPI(message.impl()), lineNumber, m_client.base.clientInfo); @@ -96,45 +104,61 @@ String InjectedBundlePageUIClient::shouldGenerateFileForUpload(WebPage* page, co String InjectedBundlePageUIClient::generateFileForUpload(WebPage* page, const String& originalFilePath) { - if (!m_client.shouldGenerateFileForUpload) + if (!m_client.generateFileForUpload) return String(); RefPtr<API::String> generatedFilePath = adoptRef(toImpl(m_client.generateFileForUpload(toAPI(page), toAPI(originalFilePath.impl()), m_client.base.clientInfo))); return generatedFilePath ? generatedFilePath->string() : String(); } -WKBundlePageUIElementVisibility InjectedBundlePageUIClient::statusBarIsVisible(WebPage* page) +static API::InjectedBundle::PageUIClient::UIElementVisibility toUIElementVisibility(WKBundlePageUIElementVisibility visibility) +{ + switch (visibility) { + case WKBundlePageUIElementVisibilityUnknown: + return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; + case WKBundlePageUIElementVisible: + return API::InjectedBundle::PageUIClient::UIElementVisibility::Visible; + case WKBundlePageUIElementHidden: + return API::InjectedBundle::PageUIClient::UIElementVisibility::Hidden; + } + + ASSERT_NOT_REACHED(); + return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; +} + +API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::statusBarIsVisible(WebPage* page) { if (!m_client.statusBarIsVisible) - return WKBundlePageUIElementVisibilityUnknown; + return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; - return m_client.statusBarIsVisible(toAPI(page), m_client.base.clientInfo); + return toUIElementVisibility(m_client.statusBarIsVisible(toAPI(page), m_client.base.clientInfo)); } -WKBundlePageUIElementVisibility InjectedBundlePageUIClient::menuBarIsVisible(WebPage* page) +API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::menuBarIsVisible(WebPage* page) { if (!m_client.menuBarIsVisible) - return WKBundlePageUIElementVisibilityUnknown; + return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; - return m_client.menuBarIsVisible(toAPI(page), m_client.base.clientInfo); + return toUIElementVisibility(m_client.menuBarIsVisible(toAPI(page), m_client.base.clientInfo)); } -WKBundlePageUIElementVisibility InjectedBundlePageUIClient::toolbarsAreVisible(WebPage* page) +API::InjectedBundle::PageUIClient::UIElementVisibility InjectedBundlePageUIClient::toolbarsAreVisible(WebPage* page) { if (!m_client.toolbarsAreVisible) - return WKBundlePageUIElementVisibilityUnknown; + return API::InjectedBundle::PageUIClient::UIElementVisibility::Unknown; - return m_client.toolbarsAreVisible(toAPI(page), m_client.base.clientInfo); + return toUIElementVisibility(m_client.toolbarsAreVisible(toAPI(page), m_client.base.clientInfo)); } -void InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota(WebPage* page, WebSecurityOrigin* origin, int64_t totalBytesNeeded) +bool InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota(WebPage* page, API::SecurityOrigin* origin, int64_t totalBytesNeeded) { if (!m_client.didReachApplicationCacheOriginQuota) - return; + return false; m_client.didReachApplicationCacheOriginQuota(toAPI(page), toAPI(origin), totalBytesNeeded, m_client.base.clientInfo); + return true; } -uint64_t InjectedBundlePageUIClient::didExceedDatabaseQuota(WebPage* page, WebSecurityOrigin* origin, const String& databaseName, const String& databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes) +uint64_t InjectedBundlePageUIClient::didExceedDatabaseQuota(WebPage* page, API::SecurityOrigin* origin, const String& databaseName, const String& databaseDisplayName, uint64_t currentQuotaBytes, uint64_t currentOriginUsageBytes, uint64_t currentDatabaseUsageBytes, uint64_t expectedUsageBytes) { if (!m_client.didExceedDatabaseQuota) return 0; @@ -178,4 +202,14 @@ String InjectedBundlePageUIClient::plugInExtraScript() const return script ? script->string() : String(); } +void InjectedBundlePageUIClient::didClickAutoFillButton(WebPage& page, InjectedBundleNodeHandle& nodeHandle, RefPtr<API::Object>& userData) +{ + if (!m_client.didClickAutoFillButton) + return; + + WKTypeRef userDataToPass = nullptr; + m_client.didClickAutoFillButton(toAPI(&page), toAPI(&nodeHandle), &userDataToPass, m_client.base.clientInfo); + userData = adoptRef(toImpl(userDataToPass)); +} + } // namespace WebKit |