NS_IMETHODIMP nsAlertsService::CloseAlert(const nsAString& aAlertName, nsIPrincipal* aPrincipal) { if (XRE_IsContentProcess()) { ContentChild* cpc = ContentChild::GetSingleton(); cpc->SendCloseAlert(nsAutoString(aAlertName), IPC::Principal(aPrincipal)); return NS_OK; } nsresult rv; // Try the system notification service. if (mBackend) { rv = mBackend->CloseAlert(aAlertName, aPrincipal); if (NS_WARN_IF(NS_FAILED(rv))) { // If the system backend failed to close the alert, fall back to XUL for // future alerts. mBackend = nullptr; } } else { nsCOMPtr<nsIAlertsService> xulBackend(nsXULAlerts::GetInstance()); NS_ENSURE_TRUE(xulBackend, NS_ERROR_FAILURE); rv = xulBackend->CloseAlert(aAlertName, aPrincipal); } return rv; }
NS_IMETHODIMP nsAlertsService::CloseAlert(const nsAString& aAlertName) { if (XRE_GetProcessType() == GeckoProcessType_Content) { ContentChild* cpc = ContentChild::GetSingleton(); cpc->SendCloseAlert(nsAutoString(aAlertName)); return NS_OK; } #ifdef MOZ_WIDGET_ANDROID mozilla::AndroidBridge::Bridge()->CloseNotification(aAlertName); return NS_OK; #else // Try the system notification service. nsCOMPtr<nsIAlertsService> sysAlerts(do_GetService(NS_SYSTEMALERTSERVICE_CONTRACTID)); if (sysAlerts) { return sysAlerts->CloseAlert(aAlertName); } return mXULAlerts.CloseAlert(aAlertName); #endif // !MOZ_WIDGET_ANDROID }
NS_IMETHODIMP nsAlertsService::CloseAlert(const nsAString& aAlertName, nsIPrincipal* aPrincipal) { if (XRE_IsContentProcess()) { ContentChild* cpc = ContentChild::GetSingleton(); cpc->SendCloseAlert(nsAutoString(aAlertName), IPC::Principal(aPrincipal)); return NS_OK; } #ifdef MOZ_WIDGET_ANDROID widget::GeckoAppShell::CloseNotification(aAlertName); return NS_OK; #else // Try the system notification service. nsCOMPtr<nsIAlertsService> sysAlerts(do_GetService(NS_SYSTEMALERTSERVICE_CONTRACTID)); if (sysAlerts) { return sysAlerts->CloseAlert(aAlertName, nullptr); } return mXULAlerts.CloseAlert(aAlertName); #endif // !MOZ_WIDGET_ANDROID }