class WebEngineSettings;
class HoverEvent;
class WheelEvent;
+class WebEngineUserMediaPermissionRequest;
/**
* @brief WebEnginePlugin is an abstract interface, used by dali-adaptor to access WebEngine plugin.
*/
using PlainTextReceivedCallback = std::function<void(const std::string&)>;
+ /**
+ * @brief WebView callback informs browser app to display QB code popup for passkey scenario.
+ */
+ using WebEngineWebAuthDisplayQRCallback = std::function<void(const std::string&)>;
+
+ /**
+ * @brief WebView callback informs browser app that the passkey registration and authentication has been successful and app can close QR popup.
+ */
+ using WebEngineWebAuthResponseCallback = std::function<void(void)>;
+
+ /**
+ * @brief The callback to be called when the web engine received a user media permission reqeust from user application.
+ */
+ using WebEngineUserMediaPermissionRequestCallback = std::function<void(std::unique_ptr<Dali::WebEngineUserMediaPermissionRequest>, const std::string&)>;
+
/**
* @brief Enumeration for the scroll edge.
*/
* @param[in] callback The callback function called asynchronously.
*/
virtual void GetPlainTextAsynchronously(PlainTextReceivedCallback callback) = 0;
+
+ /**
+ * @brief Cancel WebAuthentication(cancel in progress passkey operation).
+ */
+ virtual void WebAuthenticationCancel() = 0;
+
+ /**
+ * @brief Register WebAuthDisplayQR callback.
+ *
+ * @param[in] callback The callback informs browser app to display QR code popup for passkey scenario.
+ */
+ virtual void RegisterWebAuthDisplayQRCallback(WebEngineWebAuthDisplayQRCallback callback) = 0;
+
+ /**
+ * @brief Register WebAuthResponse callback.
+ *
+ * @param[in] callback The callback informs browser app that the passkey registration and authentication has been successful and app can close QR popup.
+ */
+ virtual void RegisterWebAuthResponseCallback(WebEngineWebAuthResponseCallback callback) = 0;
+
+ /**
+ * @brief Register UserMediaPermissionRequest callback.
+ *
+ * @param[in] callback The callback to be called for handling user media permission.
+ */
+ virtual void RegisterUserMediaPermissionRequestCallback(WebEngineUserMediaPermissionRequestCallback callback) = 0;
+
};
// specialization has to be done in the same namespace
--- /dev/null
+#ifndef DALI_WEB_ENGINE_USER_MEDIA_PERMISSION_REQUEST_H
+#define DALI_WEB_ENGINE_USER_MEDIA_PERMISSION_REQUEST_H
+
+/*
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+
+namespace Dali
+{
+/**
+ * @brief A class WebEngineUserMediaPermissionRequest for handling user's media permission of web engine.
+ */
+class WebEngineUserMediaPermissionRequest
+{
+public:
+ /**
+ * @brief Constructor.
+ */
+ WebEngineUserMediaPermissionRequest() = default;
+
+ /**
+ * @brief Destructor.
+ */
+ virtual ~WebEngineUserMediaPermissionRequest() = default;
+
+ /**
+ * @brief Request to set user media permission of web engine.
+ *
+ * @param[in] allowed if true, allow to set, false, not allow to set.
+ */
+ virtual void Set(bool allowed) const = 0;
+
+ /**
+ * @brief Suspend user media permission request process of web engine.
+ * @return true if the suspension was successful, false otherwise.
+ */
+ virtual bool Suspend() const = 0;
+};
+} // namespace Dali
+
+#endif // DALI_WEB_ENGINE_USER_MEDIA_PERMISSION_REQUEST_H
GetImplementation(*this).GetPlainTextAsynchronously(callback);
}
+void WebEngine::WebAuthenticationCancel()
+{
+ GetImplementation(*this).WebAuthenticationCancel();
+}
+
+void WebEngine::RegisterWebAuthDisplayQRCallback(Dali::WebEnginePlugin::WebEngineWebAuthDisplayQRCallback callback)
+{
+ GetImplementation(*this).RegisterWebAuthDisplayQRCallback(callback);
+}
+
+void WebEngine::RegisterWebAuthResponseCallback(Dali::WebEnginePlugin::WebEngineWebAuthResponseCallback callback)
+{
+ GetImplementation(*this).RegisterWebAuthResponseCallback(callback);
+}
+
+void WebEngine::RegisterUserMediaPermissionRequestCallback(Dali::WebEnginePlugin::WebEngineUserMediaPermissionRequestCallback callback)
+{
+ GetImplementation(*this).RegisterUserMediaPermissionRequestCallback(callback);
+}
+
} // namespace Dali
*/
void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback);
+ /**
+ * @brief Cancel WebAuthentication(cancel in progress passkey operation).
+ */
+ void WebAuthenticationCancel();
+
+ /**
+ * @brief Get a plain text of current web page asynchronously.
+ *
+ * @param[in] callback The callback function called asynchronously.
+
+ */
+ void RegisterWebAuthDisplayQRCallback(Dali::WebEnginePlugin::WebEngineWebAuthDisplayQRCallback callback);
+
+ /**
+ * @brief Get a plain text of current web page asynchronously.
+ *
+ * @param[in] callback The callback function called asynchronously.
+
+ */
+ void RegisterWebAuthResponseCallback(Dali::WebEnginePlugin::WebEngineWebAuthResponseCallback callback);
+
+ /**
+ * @brief Register UserMediaPermissionRequest callback.
+ *
+ * @param[in] callback The callback to be called for handling user media permission.
+ */
+ void RegisterUserMediaPermissionRequestCallback(Dali::WebEnginePlugin::WebEngineUserMediaPermissionRequestCallback callback);
+
+
private: // Not intended for application developers
/**
* @brief Internal constructor
${adaptor_devel_api_dir}/adaptor-framework/web-engine/web-engine-request-interceptor.h
${adaptor_devel_api_dir}/adaptor-framework/web-engine/web-engine-security-origin.h
${adaptor_devel_api_dir}/adaptor-framework/web-engine/web-engine-settings.h
+ ${adaptor_devel_api_dir}/adaptor-framework/web-engine/web-engine-user-media-permission-request.h
)
mPlugin->GetPlainTextAsynchronously(callback);
}
+void WebEngine::WebAuthenticationCancel()
+{
+ mPlugin->WebAuthenticationCancel();
+}
+
+void WebEngine::RegisterWebAuthDisplayQRCallback(Dali::WebEnginePlugin::WebEngineWebAuthDisplayQRCallback callback)
+{
+ mPlugin->RegisterWebAuthDisplayQRCallback(callback);
+}
+
+void WebEngine::RegisterWebAuthResponseCallback(Dali::WebEnginePlugin::WebEngineWebAuthResponseCallback callback)
+{
+ mPlugin->RegisterWebAuthResponseCallback(callback);
+}
+
+void WebEngine::RegisterUserMediaPermissionRequestCallback(Dali::WebEnginePlugin::WebEngineUserMediaPermissionRequestCallback callback)
+{
+ mPlugin->RegisterUserMediaPermissionRequestCallback(callback);
+}
+
+
} // namespace Adaptor
} // namespace Internal
} // namespace Dali
*/
void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback);
+ /**
+ * @copydoc Dali::WebEngine::WebAuthenticationCancel()
+ */
+ void WebAuthenticationCancel();
+
+ /**
+ * @copydoc Dali::WebEngine::RegisterWebAuthDisplayQRCallback()
+ */
+ void RegisterWebAuthDisplayQRCallback(Dali::WebEnginePlugin::WebEngineWebAuthDisplayQRCallback callback);
+
+ /**
+ * @copydoc Dali::WebEngine::RegisterWebAuthResponseCallback()
+ */
+ void RegisterWebAuthResponseCallback(Dali::WebEnginePlugin::WebEngineWebAuthResponseCallback callback);
+
+ /**
+ * @copydoc Dali::WebEngine::RegisterUserMediaPermissionRequestCallback()
+ */
+ void RegisterUserMediaPermissionRequestCallback(Dali::WebEnginePlugin::WebEngineUserMediaPermissionRequestCallback callback);
+
private:
/**
* @brief Constructor.