diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index 44807fd..29d88a7 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -405,16 +405,6 @@
                                 menuFlag, pt.x, pt.y);
 }
 
-void CPDFSDK_FormFillEnvironment::Alert(FPDF_WIDESTRING Msg,
-                                        FPDF_WIDESTRING Title,
-                                        int Type,
-                                        int Icon) {
-  if (m_pInfo && m_pInfo->m_pJsPlatform && m_pInfo->m_pJsPlatform->app_alert) {
-    m_pInfo->m_pJsPlatform->app_alert(m_pInfo->m_pJsPlatform, Msg, Title, Type,
-                                      Icon);
-  }
-}
-
 void CPDFSDK_FormFillEnvironment::EmailTo(FPDF_FILEHANDLER* fileHandler,
                                           FPDF_WIDESTRING pTo,
                                           FPDF_WIDESTRING pSubject,
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index 9818259..5bce1ac 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -137,7 +137,6 @@
                  int menuFlag,
                  CFX_PointF pt);
 
-  void Alert(FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon);
   void EmailTo(FPDF_FILEHANDLER* fileHandler,
                FPDF_WIDESTRING pTo,
                FPDF_WIDESTRING pSubject,
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index 3f9f303..f3fe89c 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -655,10 +655,8 @@
       if (!pFormFillEnv)
         return false;
 
-      WideString ws = WideString::FromLocal(IDS_XFA_Validate_Input);
-      ByteString bs = ws.UTF16LE_Encode();
-      pFormFillEnv->Alert(AsFPDFWideString(&bs),
-                          reinterpret_cast<FPDF_WIDESTRING>(L""), 0, 1);
+      pFormFillEnv->JS_appAlert(WideString::FromLocal(IDS_XFA_Validate_Input),
+                                L"", 0, 1);
       return false;
     }
     pNode = it->MoveToNext();
@@ -910,10 +908,8 @@
 
   WideString csURL = submit->GetSubmitTarget();
   if (csURL.IsEmpty()) {
-    WideString ws = WideString::FromLocal("Submit cancelled.");
-    ByteString bs = ws.UTF16LE_Encode();
-    pFormFillEnv->Alert(AsFPDFWideString(&bs),
-                        reinterpret_cast<FPDF_WIDESTRING>(L""), 0, 4);
+    pFormFillEnv->JS_appAlert(WideString::FromLocal("Submit cancelled."), L"",
+                              0, 4);
     return false;
   }
 
