summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp')
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp64
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