it = pwaParametersMap.find("pwa_icon_src");
if (it != pwaParametersMap.end())
m_pwaInfoStruct.icon = it->second;
+#if PWE_SHUB
+ it = pwaParametersMap.find("pwa_serviceWorkerUri");
+ if (it != pwaParametersMap.end())
+ m_pwaInfoStruct.serviceWorkerUri = it->second;
+#endif
it = pwaParametersMap.find("pwa_orientation");
if (it != pwaParametersMap.end())
m_pwaInfoStruct.orientation = std::stoi(it->second);
std::string name;
std::string shortName;
std::string icon;
+#if PWE_SHUB
+ std::string serviceWorkerUri;
+#endif
int orientation; // needs to portrait-primary, portrait-secondary, landscape-primary, landscape-secondary.
int displayMode; // needs to fullscreen, standalone, minimal-ui, browser, and so on.
int themeColor;
m_webEngine->loadFinished.connect([this]{ this->m_splash_screen.hide(); });
m_webEngine->rotatePrepared.connect([this]{ this->rotatePrepared(); });
+#if PWE_SHUB
+ m_webEngine->getPWAServiceWorkerURI.connect(
+ [this] { return m_pwa.getPWAinfo().serviceWorkerUri; });
+ m_webEngine->getPWAURI.connect(
+ [this] { return m_pwa.getPWAinfo().uri; });
+#endif
m_webEngine->getPWAInstanceIDSignal.connect(
[this] { return m_pushPwaData.getInstanceId(); });
m_webEngine->getPWADataSignal.connect(
}
}
+#if PWE_SHUB
+void WebEngineMin::_register_service_worker_result_cb(
+ Ewk_Context*, const char* scope_url, const char* script_url, Eina_Bool result, void*)
+{
+ BROWSER_LOGD("[PWE-SHUB][%s:%d] scope_url: %s, script_url: %s, result: %s",
+ __PRETTY_FUNCTION__, __LINE__, scope_url, script_url, result ? "true" : "false");
+}
+#endif
+
void WebEngineMin::init(Evas_Object* guiParent)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (!pwaInstanceId.empty() && !pwaData.empty())
ewk_context_send_push_message(m_ewkContext, (char*)pwaData.c_str());
+#if PWE_SHUB
+ auto pwaServiceWorkerURI = *getPWAServiceWorkerURI();
+ if (!pwaServiceWorkerURI.empty()) {
+ ewk_context_service_worker_register(
+ m_ewkContext, getPWAURI()->c_str(), pwaServiceWorkerURI.c_str(),
+ _register_service_worker_result_cb, this);
+ }
+#endif
+
ewk_context_push_message_callback_set(m_ewkContext, _push_cb, this);
evas_object_data_set(m_ewkView, "_container", this);
evas_object_color_set(m_ewkView, 255, 255, 255, 255);
static void _load_finished(void * data, Evas_Object * obj, void * event_info);
static void _rotate_prepared(void * data, Evas_Object * obj, void * event_info);
static void _push_cb(const char *sender_id, const char *, void *data);
+#if PWE_SHUB
+ static void _register_service_worker_result_cb(Ewk_Context *context,
+ const char* scope_url, const char* script_url, Eina_Bool result, void* data);
+#endif
static void __notification_reply_cb(void *data, Evas_Object *obj, void *event_info);
static void __newWindowRequest(void *data, Evas_Object *, void*);
static void __newWindowRequestUrl(void* data, Evas_Object*, void* out);