diff --git a/DEPS b/DEPS
index 27e7a28..9b7dc4d 100644
--- a/DEPS
+++ b/DEPS
@@ -4,8 +4,8 @@
   'chromium_git': 'https://chromium.googlesource.com',
   'pdfium_git': 'https://pdfium.googlesource.com',
 
-  'build_revision': 'c557a3544d31513394681f40c8c2512cf7ddcb9e',
-  'buildtools_revision': '309289315767f615256eada4653b4917cf148c8e',
+  'build_revision': '4842479bd8da7b9e5eb027f8c15bee533f9c328f',
+  'buildtools_revision': '099f1da55bfe8caa12266371a7eb983698fb1d87',
   'clang_revision': 'b6f620b311665e2d96d0921833f54295b9bbf925',
   'cygwin_revision': 'c89e446b273697fadf3a10ff1007a97c0b7de6df',
   'gen_library_loader_revision': '916d4acd8b2cde67a390737dfba90b3c37de23a1',
@@ -15,8 +15,8 @@
   'pdfium_tests_revision': '6c769320872e6ca82da4adaec1a497237f71b543',
   'skia_revision': '7942f22c607caf826a6a609b89338a569d0a30e7',
   'tools_memory_revision': '427f10475e1a8d72424c29d00bf689122b738e5d',
-  'trace_event_revision': 'd83d44b13d07c2fd0a40101a7deef9b93b841732',
-  'v8_revision': '055bfa771a7bd763305d3bafd43e39459abc95a4',
+  'trace_event_revision': '54b8455be9505c2cb0cf5c26bb86739c236471aa',
+  'v8_revision': 'cec0ed0f77e91bfd49bbd298ab58f77375eecead',
 }
 
 deps = {
diff --git a/build_overrides/v8.gni b/build_overrides/v8.gni
index 2b50795..969b6aa 100644
--- a/build_overrides/v8.gni
+++ b/build_overrides/v8.gni
@@ -6,8 +6,10 @@
   import("//build/config/android/config.gni")
 }
 
+v8_use_external_startup_data = !is_ios
+
+# Turns on compiler optimizations in V8 in Debug build.
 v8_optimized_debug = true
-v8_use_external_startup_data = false
 
 # V8 extras
 # Adding V8 extras files requires API owners review
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index 9ba11e1..5ee1464 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -783,7 +783,7 @@
   InitializeV8ForPDFium(options.exe_path, options.bin_directory, &natives,
                         &snapshot, &platform);
 #else   // V8_USE_EXTERNAL_STARTUP_DATA
-  InitializeV8ForPDFium(&platform);
+  InitializeV8ForPDFium(options.exe_path, &platform);
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 #endif  // PDF_ENABLE_V8
 
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 3d3b2ad..59190a7 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -53,7 +53,7 @@
   InitializeV8ForPDFium(g_exe_path_, std::string(), &natives_, &snapshot_,
                         &platform_);
 #else
-  InitializeV8ForPDFium(&platform_);
+  InitializeV8ForPDFium(g_exe_path_, &platform_);
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 #endif  // FPDF_ENABLE_V8
 }
diff --git a/testing/test_support.cpp b/testing/test_support.cpp
index c50edeb..96a18a5 100644
--- a/testing/test_support.cpp
+++ b/testing/test_support.cpp
@@ -58,8 +58,8 @@
 }
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 
-void InitializeV8Common(v8::Platform** platform) {
-  v8::V8::InitializeICU();
+void InitializeV8Common(const char* exe_path, v8::Platform** platform) {
+  v8::V8::InitializeICUDefaultLocation(exe_path);
 
   *platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(*platform);
@@ -156,7 +156,7 @@
                            v8::StartupData* natives_blob,
                            v8::StartupData* snapshot_blob,
                            v8::Platform** platform) {
-  InitializeV8Common(platform);
+  InitializeV8Common(exe_path.c_str(), platform);
   if (!GetExternalData(exe_path, bin_dir, "natives_blob.bin", natives_blob))
     return false;
   if (!GetExternalData(exe_path, bin_dir, "snapshot_blob.bin", snapshot_blob))
@@ -166,8 +166,9 @@
   return true;
 }
 #else   // V8_USE_EXTERNAL_STARTUP_DATA
-bool InitializeV8ForPDFium(v8::Platform** platform) {
-  InitializeV8Common(platform);
+bool InitializeV8ForPDFium(const std::string& exe_path,
+                           v8::Platform** platform) {
+  InitializeV8Common(exe_path.c_str(), platform);
   return true;
 }
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
diff --git a/testing/test_support.h b/testing/test_support.h
index fdb24fe..4111ca6 100644
--- a/testing/test_support.h
+++ b/testing/test_support.h
@@ -83,7 +83,8 @@
                            v8::StartupData* snapshot_blob,
                            v8::Platform** platform);
 #else   // V8_USE_EXTERNAL_STARTUP_DATA
-bool InitializeV8ForPDFium(v8::Platform** platform);
+bool InitializeV8ForPDFium(const std::string& exe_path,
+                           v8::Platform** platform);
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 #endif  // PDF_ENABLE_V8
 
