diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java
index 6e638a7aff2b9..5a0e65581dc0a 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/AwComponentUpdateService.java
@@ -54,7 +54,7 @@ public class AwComponentUpdateService extends JobService {
 
         // TODO(http://crbug.com/1179297) look at doing this in a task on a background thread
         // instead of the main thread.
-        if (WebViewApkApplication.initializeNative()) {
+        if (WebViewApkApplication.ensureNativeLoaded()) {
             setUnexpectedExit(true);
             final long startTime = SystemClock.uptimeMillis();
             // TODO(crbug.com/1171817) Once we can log UMA from native, remove the count parameter.
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java
index e75d1caca3359..761dccb688ef6 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/LicenseContentProvider.java
@@ -48,7 +48,7 @@ public class LicenseContentProvider
     @Override
     public void writeDataToPipe(
             ParcelFileDescriptor output, Uri uri, String mimeType, Bundle opts, String filename) {
-        if (WebViewApkApplication.initializeNative()) {
+        if (WebViewApkApplication.ensureNativeLoaded()) {
             CreditUtilsJni.get().writeCreditsHtml(output.detachFd());
         } else {
             // Missing native library means we're the webview stub and licenses are stored as an
diff --git a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java
index 73a9db6e0a7fe..da538236473a0 100644
--- a/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java
+++ b/android_webview/nonembedded/java/src/org/chromium/android_webview/nonembedded/WebViewApkApplication.java
@@ -143,9 +143,11 @@ public class WebViewApkApplication extends Application {
      * Performs minimal native library initialization required when running as a stand-alone APK.
      * @return True if the library was loaded, false if running as webview stub.
      */
-    static synchronized boolean initializeNative() {
+    static synchronized boolean ensureNativeLoaded() {
         try {
-            if (LibraryLoader.getInstance().isInitialized()) {
+            // TODO(https://crbug.com/1220862): Investigate calling LibraryLoader#initialize and
+            // LibraryLoader#isInitialized instead and document the findings.
+            if (LibraryLoader.getInstance().isLoaded()) {
                 return true;
             }
             // Should not call LibraryLoader.initialize() since this will reset UmaRecorder
@@ -153,14 +155,14 @@ public class WebViewApkApplication extends Application {
             LibraryLoader.getInstance().setLibraryProcessType(
                     LibraryProcessType.PROCESS_WEBVIEW_NONEMBEDDED);
             LibraryLoader.getInstance().loadNow();
+            LibraryLoader.getInstance().switchCommandLineForWebView();
+            WebViewApkApplicationJni.get().initializeGlobalsAndResources();
+            return true;
         } catch (Throwable unused) {
             // Happens for WebView Stub. Throws NoClassDefFoundError because of no
             // NativeLibraries.java being generated.
             return false;
         }
-        LibraryLoader.getInstance().switchCommandLineForWebView();
-        WebViewApkApplicationJni.get().initializeGlobalsAndResources();
-        return true;
     }
 
     @NativeMethods
diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
index 45ce573bb1f46..dcf2734757b18 100644
--- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
+++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
@@ -498,11 +498,18 @@ public class LibraryLoader {
         }
     }
 
+    /**
+     * Checks whether the native library is fully loaded.
+     */
+    public boolean isLoaded() {
+        return mLoadState == LoadState.LOADED;
+    }
+
     /**
      * Checks whether the native library is fully loaded and initialized.
      */
     public boolean isInitialized() {
-        return mInitialized && mLoadState == LoadState.LOADED;
+        return mInitialized && isLoaded();
     }
 
     /**