Fix all relative includes to third_party.

- In non-standalone builds, use the provided jpeg library.
- Run gn format over all the GN files.
- Also roll DEPS for buildtools to c2f2598.

BUG=541704
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1425153006 .
diff --git a/BUILD.gn b/BUILD.gn
index 11bba08..b8c1995 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -8,6 +8,7 @@
 config("pdfium_config") {
   cflags = []
   include_dirs = [
+    ".",
     "third_party/freetype/include",
     "third_party/freetype/include/freetype",
   ]
@@ -42,6 +43,7 @@
       "/wd4333",
       "/wd4345",
       "/wd4267",
+
       # TODO(thestig): Fix all instances, remove this, pdfium:29
       "/wd4245",
       "/wd4310",
@@ -157,9 +159,7 @@
     "//testing/gtest",
     ":pdfium",
   ]
-  include_dirs = [
-    "."
-  ]
+  include_dirs = []
   if (pdf_enable_v8) {
     deps += [
       "//v8",
@@ -354,9 +354,11 @@
 static_library("fxcodec") {
   deps = [
     "third_party:fx_lcms2",
-    "third_party:fx_libjpeg",
     "third_party:fx_libopenjpeg",
     "third_party:fx_zlib",
+
+    # This is a generic JPEG library dependency.
+    "//third_party:jpeg",
   ]
   sources = [
     "core/include/fxcodec/fx_codec.h",
@@ -410,6 +412,7 @@
     "core/src/fxcodec/jbig2/JBig2_TrdProc.cpp",
     "core/src/fxcodec/jbig2/JBig2_TrdProc.h",
   ]
+  include_dirs = []
 
   if (is_posix) {
     # core/src/fxcodec/fx_libopenjpeg/src/fx_mct.c does an pointer-to-int
@@ -506,7 +509,6 @@
     "core/src/fxge/dib/fx_dib_engine.cpp",
     "core/src/fxge/dib/fx_dib_main.cpp",
     "core/src/fxge/dib/fx_dib_transform.cpp",
-    "core/src/fxge/fontdata/chromefontdata/chromefontdata.h",
     "core/src/fxge/fontdata/chromefontdata/FoxitDingbats.c",
     "core/src/fxge/fontdata/chromefontdata/FoxitFixed.c",
     "core/src/fxge/fontdata/chromefontdata/FoxitFixedBold.c",
@@ -523,6 +525,7 @@
     "core/src/fxge/fontdata/chromefontdata/FoxitSerifItalic.c",
     "core/src/fxge/fontdata/chromefontdata/FoxitSerifMM.c",
     "core/src/fxge/fontdata/chromefontdata/FoxitSymbol.c",
+    "core/src/fxge/fontdata/chromefontdata/chromefontdata.h",
     "core/src/fxge/freetype/fx_freetype.c",
     "core/src/fxge/ge/fx_ge.cpp",
     "core/src/fxge/ge/fx_ge_device.cpp",
@@ -555,7 +558,9 @@
       "//third_party/skia/include/utils",
       "//third_party/skia/src/core",
     ]
-    deps = [ "//skia" ]
+    deps = [
+      "//skia",
+    ]
   }
 
   if (is_win) {
@@ -635,6 +640,7 @@
   ]
   if (pdf_enable_v8) {
     sources += [
+      "fpdfsdk/include/jsapi/fxjs_v8.h",
       "fpdfsdk/src/javascript/Consts.cpp",
       "fpdfsdk/src/javascript/Consts.h",
       "fpdfsdk/src/javascript/Document.cpp",
@@ -674,7 +680,6 @@
       "fpdfsdk/src/javascript/resource.h",
       "fpdfsdk/src/javascript/util.cpp",
       "fpdfsdk/src/javascript/util.h",
-      "fpdfsdk/include/jsapi/fxjs_v8.h",
       "fpdfsdk/src/jsapi/fxjs_v8.cpp",
     ]
     include_dirs = [
@@ -736,7 +741,6 @@
     ":pdfium",
     ":test_support",
   ]
-  include_dirs = [ "." ]
   configs += [ ":pdfium_config" ]
 }
 
@@ -764,13 +768,9 @@
     ":pdfium",
     ":test_support",
   ]
-  include_dirs = [
-    "."
-  ]
+  include_dirs = []
   if (pdf_enable_v8) {
-    sources += [
-     "fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp"
-    ]
+    sources += [ "fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp" ]
     deps += [
       "//v8",
       "//v8:v8_libplatform",
diff --git a/DEPS b/DEPS
index b6d7efa..22c9409 100644
--- a/DEPS
+++ b/DEPS
@@ -5,7 +5,7 @@
     "https://chromium.googlesource.com/external/gyp",
 
   "buildtools":
-    "https://chromium.googlesource.com/chromium/buildtools.git@46ce8cb60364e9e0b21a81136c7debdddfd063a8",
+    "https://chromium.googlesource.com/chromium/buildtools.git@c2f259809d5ede3275df5ea0842f0431990c4f98",
 
   "testing/corpus":
      "https://pdfium.googlesource.com/pdfium_tests@45f88c6914fcac26ad930bb0ebbfa468c21db0a5",
diff --git a/build/standalone.gypi b/build/standalone.gypi
index 3d25669..402c726 100644
--- a/build/standalone.gypi
+++ b/build/standalone.gypi
@@ -49,6 +49,7 @@
     'v8_optimized_debug%': 0,
     'v8_use_external_startup_data%': 0,
     'icu_gyp_path': '../v8/third_party/icu/icu.gyp',
+    'libjpeg_gyp_path': '../third_party/third_party.gyp',
     'conditions': [
       ['OS == "win"', {
         'os_posix%': 0,
diff --git a/core/include/fpdfapi/fpdf_module.h b/core/include/fpdfapi/fpdf_module.h
index 2f88644..e9c3830 100644
--- a/core/include/fpdfapi/fpdf_module.h
+++ b/core/include/fpdfapi/fpdf_module.h
@@ -7,9 +7,9 @@
 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_
 #define CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fxcrt/fx_coordinates.h"
 #include "../fxcrt/fx_system.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CCodec_ModuleMgr;
 class CFX_AffineMatrix;
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
index d1f5003..2937d05 100644
--- a/core/include/fpdfapi/fpdf_parser.h
+++ b/core/include/fpdfapi/fpdf_parser.h
@@ -7,9 +7,9 @@
 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
 #define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_H_
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fxcrt/fx_system.h"
 #include "fpdf_objects.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFDF_Document;
 class CFDF_Parser;
diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h
index 7a5251e..1726988 100644
--- a/core/include/fpdfapi/fpdf_render.h
+++ b/core/include/fpdfapi/fpdf_render.h
@@ -7,9 +7,9 @@
 #ifndef CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_
 #define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fxge/fx_ge.h"
 #include "fpdf_page.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFX_GraphStateData;
 class CFX_PathData;
diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h
index a86ae62..cffb32b 100644
--- a/core/include/fpdfdoc/fpdf_doc.h
+++ b/core/include/fpdfdoc/fpdf_doc.h
@@ -10,9 +10,9 @@
 #include <map>
 #include <vector>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fpdfapi/fpdf_parser.h"
 #include "../fpdfapi/fpdf_render.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFieldTree;
 class CPDF_AAction;
diff --git a/core/include/fxcodec/fx_codec.h b/core/include/fxcodec/fx_codec.h
index 1d5bd78..d8c66d9 100644
--- a/core/include/fxcodec/fx_codec.h
+++ b/core/include/fxcodec/fx_codec.h
@@ -9,9 +9,9 @@
 
 #include <vector>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fxcrt/fx_basic.h"
 #include "fx_codec_def.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFX_DIBSource;
 class CJPX_Decoder;
diff --git a/core/include/fxcodec/fx_codec_flate.h b/core/include/fxcodec/fx_codec_flate.h
index 7d01061..eaecef4 100644
--- a/core/include/fxcodec/fx_codec_flate.h
+++ b/core/include/fxcodec/fx_codec_flate.h
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../third_party/zlib_v128/zlib.h"
+#include "third_party/zlib_v128/zlib.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/core/include/fxcrt/fx_safe_types.h b/core/include/fxcrt/fx_safe_types.h
index ee50a53..d10bdbe 100644
--- a/core/include/fxcrt/fx_safe_types.h
+++ b/core/include/fxcrt/fx_safe_types.h
@@ -7,9 +7,9 @@
 
 #include <stdlib.h>  // For size_t.
 
-#include "../../../third_party/base/numerics/safe_math.h"
 #include "fx_stream.h"  // for FX_FILESIZE.
 #include "fx_system.h"
+#include "third_party/base/numerics/safe_math.h"
 
 typedef pdfium::base::CheckedNumeric<FX_DWORD> FX_SAFE_DWORD;
 typedef pdfium::base::CheckedNumeric<int32_t> FX_SAFE_INT32;
diff --git a/core/include/fxcrt/fx_system.h b/core/include/fxcrt/fx_system.h
index 5378958..5fe3453 100644
--- a/core/include/fxcrt/fx_system.h
+++ b/core/include/fxcrt/fx_system.h
@@ -160,7 +160,7 @@
 
 #ifdef __cplusplus
 }  // extern "C"
-#include "../../../third_party/base/numerics/safe_conversions.h"
+#include "third_party/base/numerics/safe_conversions.h"
 #define FXSYS_strlen(ptr) pdfium::base::checked_cast<FX_STRSIZE>(strlen(ptr))
 #define FXSYS_wcslen(ptr) pdfium::base::checked_cast<FX_STRSIZE>(wcslen(ptr))
 extern "C" {
diff --git a/core/include/fxge/fx_font.h b/core/include/fxge/fx_font.h
index 8c2416e..3e4ca95 100644
--- a/core/include/fxge/fx_font.h
+++ b/core/include/fxge/fx_font.h
@@ -9,9 +9,9 @@
 
 #include <map>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../fxcrt/fx_system.h"
 #include "fx_dib.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 typedef struct FT_FaceRec_* FXFT_Face;
 typedef void* FXFT_Library;
diff --git a/core/src/fpdfapi/fpdf_font/ttgsubtable.cpp b/core/src/fpdfapi/fpdf_font/ttgsubtable.cpp
index 6c1b426..1ee2599 100644
--- a/core/src/fpdfapi/fpdf_font/ttgsubtable.cpp
+++ b/core/src/fpdfapi/fpdf_font/ttgsubtable.cpp
@@ -4,9 +4,9 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../include/fxge/fx_ge.h"
 #include "../../../include/fxge/fx_freetype.h"
+#include "../../../include/fxge/fx_ge.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 #include "ttgsubtable.h"
 
 CFX_GlyphMap::CFX_GlyphMap() {}
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp
index e626803..0b9f043 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_func.cpp
@@ -7,12 +7,12 @@
 #include <limits.h>
 #include <vector>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../../third_party/base/numerics/safe_conversions_impl.h"
 #include "../../../include/fpdfapi/fpdf_module.h"
 #include "../../../include/fpdfapi/fpdf_page.h"
 #include "../../../include/fxcrt/fx_safe_types.h"
 #include "pageint.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/base/numerics/safe_conversions_impl.h"
 
 class CPDF_PSEngine;
 typedef enum {
diff --git a/core/src/fpdfapi/fpdf_page/pageint.h b/core/src/fpdfapi/fpdf_page/pageint.h
index e787d69..3b2aef5 100644
--- a/core/src/fpdfapi/fpdf_page/pageint.h
+++ b/core/src/fpdfapi/fpdf_page/pageint.h
@@ -9,9 +9,9 @@
 
 #include <map>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fpdfapi/fpdf_page.h"
 #include "../../../include/fpdfapi/fpdf_pageobj.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CPDF_AllStates;
 class CPDF_ParseOptions;
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
index 7db97d2..4393bfb 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
@@ -8,14 +8,14 @@
 #include <utility>
 #include <vector>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../../third_party/base/stl_util.h"
 #include "../../../include/fpdfapi/fpdf_module.h"
 #include "../../../include/fpdfapi/fpdf_page.h"
 #include "../../../include/fpdfapi/fpdf_parser.h"
 #include "../../../include/fxcrt/fx_safe_types.h"
 #include "../fpdf_page/pageint.h"
 #include "parser_int.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/base/stl_util.h"
 
 namespace {
 
diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
index 6af3ab4..ea8ceee 100644
--- a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
@@ -6,7 +6,6 @@
 
 #include <vector>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fpdfapi/fpdf_module.h"
 #include "../../../include/fpdfapi/fpdf_pageobj.h"
 #include "../../../include/fpdfapi/fpdf_render.h"
@@ -15,6 +14,7 @@
 #include "../../../include/fxge/fx_ge.h"
 #include "../fpdf_page/pageint.h"
 #include "render_int.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 namespace {
 
diff --git a/core/src/fpdfapi/fpdf_render/render_int.h b/core/src/fpdfapi/fpdf_render/render_int.h
index c97cb71..a0eda28 100644
--- a/core/src/fpdfapi/fpdf_render/render_int.h
+++ b/core/src/fpdfapi/fpdf_render/render_int.h
@@ -9,8 +9,8 @@
 
 #include <map>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fpdfapi/fpdf_pageobj.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFX_GlyphBitmap;
 class CPDF_QuickStretcher;
diff --git a/core/src/fpdfdoc/doc_annot.cpp b/core/src/fpdfdoc/doc_annot.cpp
index ae253a0..e69ea80 100644
--- a/core/src/fpdfdoc/doc_annot.cpp
+++ b/core/src/fpdfdoc/doc_annot.cpp
@@ -4,9 +4,9 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../include/fpdfdoc/fpdf_doc.h"
 #include "../../include/fpdfapi/fpdf_pageobj.h"
+#include "../../include/fpdfdoc/fpdf_doc.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CPDF_AnnotList::CPDF_AnnotList(CPDF_Page* pPage)
     : m_pDocument(pPage->m_pDocument) {
diff --git a/core/src/fpdfdoc/doc_bookmark.cpp b/core/src/fpdfdoc/doc_bookmark.cpp
index 5ebd27e..c5cbfd8 100644
--- a/core/src/fpdfdoc/doc_bookmark.cpp
+++ b/core/src/fpdfdoc/doc_bookmark.cpp
@@ -6,8 +6,8 @@
 
 #include <vector>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fpdfdoc/fpdf_doc.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CPDF_Bookmark CPDF_BookmarkTree::GetFirstChild(
     const CPDF_Bookmark& parent) const {
diff --git a/core/src/fpdftext/fpdf_text.cpp b/core/src/fpdftext/fpdf_text.cpp
index 9ecbc21..d5ea24f 100644
--- a/core/src/fpdftext/fpdf_text.cpp
+++ b/core/src/fpdftext/fpdf_text.cpp
@@ -4,7 +4,6 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fpdfapi/fpdf_page.h"
 #include "../../include/fpdfapi/fpdf_pageobj.h"
 #include "../../include/fpdfapi/fpdf_resource.h"
@@ -12,6 +11,7 @@
 #include "../../include/fxcrt/fx_bidi.h"
 #include "../../include/fxcrt/fx_ucd.h"
 #include "text_int.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 #include "txtproc.h"
 
 CFX_ByteString CharFromUnicodeAlt(FX_WCHAR unicode,
diff --git a/core/src/fpdftext/fpdf_text_int.cpp b/core/src/fpdftext/fpdf_text_int.cpp
index 9ab09e1..1b25993 100644
--- a/core/src/fpdftext/fpdf_text_int.cpp
+++ b/core/src/fpdftext/fpdf_text_int.cpp
@@ -7,7 +7,6 @@
 #include <ctype.h>
 #include <algorithm>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fpdfapi/fpdf_module.h"
 #include "../../include/fpdfapi/fpdf_page.h"
 #include "../../include/fpdfapi/fpdf_pageobj.h"
@@ -16,6 +15,7 @@
 #include "../../include/fxcrt/fx_bidi.h"
 #include "../../include/fxcrt/fx_ucd.h"
 #include "text_int.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 namespace {
 
diff --git a/core/src/fxcodec/DEPS b/core/src/fxcodec/DEPS
index 48eaa04..a88b329 100644
--- a/core/src/fxcodec/DEPS
+++ b/core/src/fxcodec/DEPS
@@ -1,6 +1,8 @@
 include_rules = [
   '+third_party/lcms2-2.6',
-  '+third_party/libjpeg',
+  '+third_party/libjpeg/jpeglib.h',
+  # For non-standalone builds that may use libjpeg_turbo.
+  '+third_party/libjpeg_turbo/jpeglib.h',
   '+third_party/libopenjpeg20',
   '+third_party/zlib_v128',
-]
\ No newline at end of file
+]
diff --git a/core/src/fxcodec/codec/codec_int.h b/core/src/fxcodec/codec/codec_int.h
index 1fd2289..baf06d6 100644
--- a/core/src/fxcodec/codec/codec_int.h
+++ b/core/src/fxcodec/codec/codec_int.h
@@ -11,10 +11,10 @@
 #include <list>
 #include <map>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../../third_party/libopenjpeg20/openjpeg.h"  // For OPJ_SIZE_T.
 #include "../../../include/fxcodec/fx_codec.h"
 #include "../jbig2/JBig2_Context.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/libopenjpeg20/openjpeg.h"  // For OPJ_SIZE_T.
 
 class CFX_IccProfileCache;
 class CFX_IccTransformCache;
diff --git a/core/src/fxcodec/codec/fx_codec.cpp b/core/src/fxcodec/codec/fx_codec.cpp
index 46f479e..2f3bd7a 100644
--- a/core/src/fxcodec/codec/fx_codec.cpp
+++ b/core/src/fxcodec/codec/fx_codec.cpp
@@ -8,9 +8,9 @@
 
 #include <cmath>
 
-#include "../../../../third_party/base/logging.h"
 #include "../../../include/fxcrt/fx_safe_types.h"
 #include "codec_int.h"
+#include "third_party/base/logging.h"
 
 CCodec_ModuleMgr::CCodec_ModuleMgr()
     : m_pBasicModule(new CCodec_BasicModule),
diff --git a/core/src/fxcodec/codec/fx_codec_flate.cpp b/core/src/fxcodec/codec/fx_codec_flate.cpp
index 519ff00..d4e56bf 100644
--- a/core/src/fxcodec/codec/fx_codec_flate.cpp
+++ b/core/src/fxcodec/codec/fx_codec_flate.cpp
@@ -4,11 +4,11 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../../third_party/zlib_v128/zlib.h"
 #include "../../../include/fxcodec/fx_codec.h"
 #include "../../../include/fxcodec/fx_codec_flate.h"
 #include "codec_int.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/zlib_v128/zlib.h"
 
 extern "C" {
 static void* my_alloc_func(void* opaque,
diff --git a/core/src/fxcodec/codec/fx_codec_icc.cpp b/core/src/fxcodec/codec/fx_codec_icc.cpp
index 2a8ccc3..67e3d64 100644
--- a/core/src/fxcodec/codec/fx_codec_icc.cpp
+++ b/core/src/fxcodec/codec/fx_codec_icc.cpp
@@ -4,9 +4,9 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../../third_party/lcms2-2.6/include/lcms2.h"
 #include "../../../include/fxcodec/fx_codec.h"
 #include "codec_int.h"
+#include "third_party/lcms2-2.6/include/lcms2.h"
 
 const FX_DWORD N_COMPONENT_LAB = 3;
 const FX_DWORD N_COMPONENT_GRAY = 1;
diff --git a/core/src/fxcodec/codec/fx_codec_jpeg.cpp b/core/src/fxcodec/codec/fx_codec_jpeg.cpp
index 544a6d1..925864f 100644
--- a/core/src/fxcodec/codec/fx_codec_jpeg.cpp
+++ b/core/src/fxcodec/codec/fx_codec_jpeg.cpp
@@ -13,7 +13,13 @@
 
 extern "C" {
 #undef FAR
-#include "../../../../third_party/libjpeg/jpeglib.h"
+#if defined(USE_SYSTEM_LIBJPEG)
+#include <jpeglib.h>
+#elif defined(USE_LIBJPEG_TURBO)
+#include "third_party/libjpeg_turbo/jpeglib.h"
+#else
+#include "third_party/libjpeg/jpeglib.h"
+#endif
 }
 
 extern "C" {
diff --git a/core/src/fxcodec/codec/fx_codec_jpx_opj.cpp b/core/src/fxcodec/codec/fx_codec_jpx_opj.cpp
index 616af36..02efdb7 100644
--- a/core/src/fxcodec/codec/fx_codec_jpx_opj.cpp
+++ b/core/src/fxcodec/codec/fx_codec_jpx_opj.cpp
@@ -8,11 +8,11 @@
 #include <limits>
 #include <vector>
 
-#include "../../../../third_party/lcms2-2.6/include/lcms2.h"
-#include "../../../../third_party/libopenjpeg20/openjpeg.h"
 #include "../../../include/fxcodec/fx_codec.h"
 #include "../../../include/fxcrt/fx_safe_types.h"
 #include "codec_int.h"
+#include "third_party/lcms2-2.6/include/lcms2.h"
+#include "third_party/libopenjpeg20/openjpeg.h"
 
 static void fx_error_callback(const char* msg, void* client_data) {
   (void)client_data;
diff --git a/core/src/fxcodec/jbig2/JBig2_Context.h b/core/src/fxcodec/jbig2/JBig2_Context.h
index 61379fe..a98d7a9 100644
--- a/core/src/fxcodec/jbig2/JBig2_Context.h
+++ b/core/src/fxcodec/jbig2/JBig2_Context.h
@@ -10,12 +10,12 @@
 #include <list>
 #include <utility>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fpdfapi/fpdf_objects.h"
 #include "../../../include/fxcodec/fx_codec_def.h"
 #include "JBig2_List.h"
 #include "JBig2_Page.h"
 #include "JBig2_Segment.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CJBig2_ArithDecoder;
 class CJBig2_GRDProc;
diff --git a/core/src/fxcodec/jbig2/JBig2_GrdProc.cpp b/core/src/fxcodec/jbig2/JBig2_GrdProc.cpp
index eda76bb..083ac5e 100644
--- a/core/src/fxcodec/jbig2/JBig2_GrdProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_GrdProc.cpp
@@ -6,11 +6,11 @@
 
 #include "JBig2_GrdProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fxcodec/fx_codec.h"
 #include "JBig2_ArithDecoder.h"
 #include "JBig2_BitStream.h"
 #include "JBig2_Image.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CJBig2_GRDProc::CJBig2_GRDProc()
     : m_loopIndex(0),
diff --git a/core/src/fxcodec/jbig2/JBig2_GrrdProc.cpp b/core/src/fxcodec/jbig2/JBig2_GrrdProc.cpp
index 916683c..549669a 100644
--- a/core/src/fxcodec/jbig2/JBig2_GrrdProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_GrrdProc.cpp
@@ -6,10 +6,10 @@
 
 #include "JBig2_GrrdProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "JBig2_ArithDecoder.h"
 #include "JBig2_BitStream.h"
 #include "JBig2_Image.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CJBig2_Image* CJBig2_GRRDProc::decode(CJBig2_ArithDecoder* pArithDecoder,
                                       JBig2ArithCtx* grContext) {
diff --git a/core/src/fxcodec/jbig2/JBig2_GsidProc.cpp b/core/src/fxcodec/jbig2/JBig2_GsidProc.cpp
index 5f423c4..ee43cdb 100644
--- a/core/src/fxcodec/jbig2/JBig2_GsidProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_GsidProc.cpp
@@ -6,12 +6,12 @@
 
 #include "JBig2_GsidProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fxcrt/fx_basic.h"
 #include "JBig2_BitStream.h"
 #include "JBig2_GrdProc.h"
 #include "JBig2_Image.h"
 #include "JBig2_List.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 FX_DWORD* CJBig2_GSIDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
                                         JBig2ArithCtx* gbContext,
diff --git a/core/src/fxcodec/jbig2/JBig2_HtrdProc.cpp b/core/src/fxcodec/jbig2/JBig2_HtrdProc.cpp
index a5a8b7a..d976834 100644
--- a/core/src/fxcodec/jbig2/JBig2_HtrdProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_HtrdProc.cpp
@@ -6,9 +6,9 @@
 
 #include "JBig2_HtrdProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fxcrt/fx_basic.h"
 #include "JBig2_GsidProc.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CJBig2_Image* CJBig2_HTRDProc::decode_Arith(CJBig2_ArithDecoder* pArithDecoder,
                                             JBig2ArithCtx* gbContext,
diff --git a/core/src/fxcodec/jbig2/JBig2_PddProc.cpp b/core/src/fxcodec/jbig2/JBig2_PddProc.cpp
index 56443a0..fbe9e4b 100644
--- a/core/src/fxcodec/jbig2/JBig2_PddProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_PddProc.cpp
@@ -6,10 +6,10 @@
 
 #include "JBig2_PddProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "JBig2_GrdProc.h"
 #include "JBig2_Image.h"
 #include "JBig2_PatternDict.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CJBig2_PatternDict* CJBig2_PDDProc::decode_Arith(
     CJBig2_ArithDecoder* pArithDecoder,
diff --git a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
index ab3b34f..fe39e71 100644
--- a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
@@ -6,8 +6,6 @@
 
 #include "JBig2_SddProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
-#include "../../../../third_party/base/stl_util.h"
 #include "../../../include/fxcrt/fx_basic.h"
 #include "JBig2_ArithIntDecoder.h"
 #include "JBig2_GrdProc.h"
@@ -16,6 +14,8 @@
 #include "JBig2_HuffmanTable.h"
 #include "JBig2_SymbolDict.h"
 #include "JBig2_TrdProc.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/base/stl_util.h"
 
 using pdfium::vector_as_array;
 
diff --git a/core/src/fxcodec/jbig2/JBig2_SymbolDict.h b/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
index 6ff4c2e..107b282 100644
--- a/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
+++ b/core/src/fxcodec/jbig2/JBig2_SymbolDict.h
@@ -9,10 +9,10 @@
 
 #include <vector>
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../include/fxcrt/fx_basic.h"
 #include "JBig2_ArithDecoder.h"
 #include "JBig2_List.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CJBig2_Image;
 
diff --git a/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp b/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
index 368ec9b..d76beea 100644
--- a/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_TrdProc.cpp
@@ -6,11 +6,11 @@
 
 #include "JBig2_TrdProc.h"
 
-#include "../../../../third_party/base/nonstd_unique_ptr.h"
 #include "JBig2_ArithDecoder.h"
 #include "JBig2_ArithIntDecoder.h"
-#include "JBig2_HuffmanDecoder.h"
 #include "JBig2_GrrdProc.h"
+#include "JBig2_HuffmanDecoder.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 CJBig2_Image* CJBig2_TRDProc::decode_Huffman(CJBig2_BitStream* pStream,
                                              JBig2ArithCtx* grContext) {
diff --git a/core/src/fxcrt/fx_basic_array.cpp b/core/src/fxcrt/fx_basic_array.cpp
index eeaa749..a24b78a 100644
--- a/core/src/fxcrt/fx_basic_array.cpp
+++ b/core/src/fxcrt/fx_basic_array.cpp
@@ -5,7 +5,7 @@
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
 #include "../../include/fxcrt/fx_basic.h"
-#include "../../../third_party/base/numerics/safe_math.h"
+#include "third_party/base/numerics/safe_math.h"
 
 CFX_BasicArray::CFX_BasicArray(int unit_size)
     : m_pData(NULL), m_nSize(0), m_nMaxSize(0) {
diff --git a/core/src/fxcrt/fx_basic_bstring.cpp b/core/src/fxcrt/fx_basic_bstring.cpp
index c706912..7793a0e 100644
--- a/core/src/fxcrt/fx_basic_bstring.cpp
+++ b/core/src/fxcrt/fx_basic_bstring.cpp
@@ -7,7 +7,7 @@
 #include <stddef.h>  // For offsetof().
 
 #include "../../include/fxcrt/fx_basic.h"
-#include "../../../third_party/base/numerics/safe_math.h"
+#include "third_party/base/numerics/safe_math.h"
 
 static int _Buffer_itoa(char* buf, int i, FX_DWORD flags) {
   if (i == 0) {
diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp
index c097e1f..0da9f51 100644
--- a/core/src/fxcrt/fx_basic_wstring.cpp
+++ b/core/src/fxcrt/fx_basic_wstring.cpp
@@ -7,7 +7,7 @@
 #include <stddef.h>  // For offsetof().
 
 #include "../../include/fxcrt/fx_basic.h"
-#include "../../../third_party/base/numerics/safe_math.h"
+#include "third_party/base/numerics/safe_math.h"
 
 // static
 CFX_WideString::StringData* CFX_WideString::StringData::Create(int nLen) {
diff --git a/core/src/fxge/agg/include/fx_agg_driver.h b/core/src/fxge/agg/include/fx_agg_driver.h
index c3de76d..c0b23dd 100644
--- a/core/src/fxge/agg/include/fx_agg_driver.h
+++ b/core/src/fxge/agg/include/fx_agg_driver.h
@@ -7,9 +7,9 @@
 #ifndef FX_AGG_DRIVER_H_
 #define FX_AGG_DRIVER_H_
 
-#include "../../../../../third_party/agg23/agg_clip_liang_barsky.h"
-#include "../../../../../third_party/agg23/agg_path_storage.h"
-#include "../../../../../third_party/agg23/agg_rasterizer_scanline_aa.h"
+#include "third_party/agg23/agg_clip_liang_barsky.h"
+#include "third_party/agg23/agg_path_storage.h"
+#include "third_party/agg23/agg_rasterizer_scanline_aa.h"
 
 class CAgg_PathData {
  public:
diff --git a/core/src/fxge/agg/src/fx_agg_driver.cpp b/core/src/fxge/agg/src/fx_agg_driver.cpp
index d9783d1..57ece1e 100644
--- a/core/src/fxge/agg/src/fx_agg_driver.cpp
+++ b/core/src/fxge/agg/src/fx_agg_driver.cpp
@@ -4,19 +4,20 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
+#include "../../../../include/fxcodec/fx_codec.h"
 #include "../../../../include/fxge/fx_ge.h"
 #include "../../dib/dib_int.h"
 #include "../../ge/text_int.h"
-#include "../../../../include/fxcodec/fx_codec.h"
-#include "../../../../../third_party/agg23/agg_pixfmt_gray.h"
-#include "../../../../../third_party/agg23/agg_path_storage.h"
-#include "../../../../../third_party/agg23/agg_scanline_u.h"
-#include "../../../../../third_party/agg23/agg_rasterizer_scanline_aa.h"
-#include "../../../../../third_party/agg23/agg_renderer_scanline.h"
-#include "../../../../../third_party/agg23/agg_curves.h"
-#include "../../../../../third_party/agg23/agg_conv_stroke.h"
-#include "../../../../../third_party/agg23/agg_conv_dash.h"
 #include "../include/fx_agg_driver.h"
+#include "third_party/agg23/agg_conv_dash.h"
+#include "third_party/agg23/agg_conv_stroke.h"
+#include "third_party/agg23/agg_curves.h"
+#include "third_party/agg23/agg_path_storage.h"
+#include "third_party/agg23/agg_pixfmt_gray.h"
+#include "third_party/agg23/agg_rasterizer_scanline_aa.h"
+#include "third_party/agg23/agg_renderer_scanline.h"
+#include "third_party/agg23/agg_scanline_u.h"
+
 void _HardClip(FX_FLOAT& x, FX_FLOAT& y) {
   if (x > 50000) {
     x = 50000;
diff --git a/core/src/fxge/freetype/fx_freetype.c b/core/src/fxge/freetype/fx_freetype.c
index 78dec9a..4804bc1 100644
--- a/core/src/fxge/freetype/fx_freetype.c
+++ b/core/src/fxge/freetype/fx_freetype.c
@@ -5,7 +5,7 @@
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
 #include "../../../include/fxge/fx_freetype.h"
-#include "../../../../third_party/freetype/src/psnames/pstables.h"
+#include "third_party/freetype/src/psnames/pstables.h"
 
 static int xyq_search_node(char* glyph_name, int name_offset, int table_offset, wchar_t unicode)
 {
diff --git a/core/src/fxge/ge/fx_ge_path.cpp b/core/src/fxge/ge/fx_ge_path.cpp
index 9acbcab..c8e4f61 100644
--- a/core/src/fxge/ge/fx_ge_path.cpp
+++ b/core/src/fxge/ge/fx_ge_path.cpp
@@ -4,9 +4,9 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../../third_party/base/numerics/safe_math.h"
 #include "../../../include/fxcrt/fx_system.h"
 #include "../../../include/fxge/fx_ge.h"
+#include "third_party/base/numerics/safe_math.h"
 
 CFX_ClipRgn::CFX_ClipRgn(int width, int height) {
   m_Type = RectI;
diff --git a/fpdfsdk/include/fsdk_actionhandler.h b/fpdfsdk/include/fsdk_actionhandler.h
index 09f13ac..9324b85 100644
--- a/fpdfsdk/include/fsdk_actionhandler.h
+++ b/fpdfsdk/include/fsdk_actionhandler.h
@@ -9,8 +9,8 @@
 
 #include "../../core/include/fpdfdoc/fpdf_doc.h"
 #include "../../core/include/fxcrt/fx_string.h"
-#include "../../third_party/base/nonstd_unique_ptr.h"
 #include "fsdk_baseform.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFX_PtrList;
 class CPDFSDK_Annot;
diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h
index 7502133..32e6409 100644
--- a/fpdfsdk/include/fsdk_mgr.h
+++ b/fpdfsdk/include/fsdk_mgr.h
@@ -12,15 +12,15 @@
 #include "../../core/include/fpdftext/fpdf_text.h"
 #include "../../public/fpdf_formfill.h"
 #include "../../public/fpdf_fwlevent.h"  // cross platform keycode and events define.
-#include "../../third_party/base/nonstd_unique_ptr.h"
+#include "fsdk_actionhandler.h"
+#include "fsdk_annothandler.h"
+#include "fsdk_baseannot.h"
+#include "fsdk_baseform.h"
 #include "fsdk_common.h"
 #include "fsdk_define.h"
 #include "fx_systemhandler.h"
-#include "fsdk_baseannot.h"
-#include "fsdk_baseform.h"
-#include "fsdk_annothandler.h"
-#include "fsdk_actionhandler.h"
 #include "javascript/IJavaScript.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CFFL_IFormFiller;
 class CPDFSDK_ActionHandler;
diff --git a/fpdfsdk/src/fpdfformfill.cpp b/fpdfsdk/src/fpdfformfill.cpp
index aa45855..4520469 100644
--- a/fpdfsdk/src/fpdfformfill.cpp
+++ b/fpdfsdk/src/fpdfformfill.cpp
@@ -6,9 +6,9 @@
 
 #include "../../public/fpdf_formfill.h"
 #include "../../public/fpdfview.h"
-#include "../../third_party/base/nonstd_unique_ptr.h"
 #include "../include/fsdk_define.h"
 #include "../include/fsdk_mgr.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 namespace {
 
diff --git a/fpdfsdk/src/fpdfppo.cpp b/fpdfsdk/src/fpdfppo.cpp
index 6bdd7c5..6700a40 100644
--- a/fpdfsdk/src/fpdfppo.cpp
+++ b/fpdfsdk/src/fpdfppo.cpp
@@ -5,8 +5,8 @@
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
 #include "../../public/fpdf_ppo.h"
-#include "../../third_party/base/nonstd_unique_ptr.h"
 #include "../include/fsdk_define.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CPDF_PageOrganizer {
  public:
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index 97da89e..b9bcf02 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -9,12 +9,12 @@
 #include "../../public/fpdf_ext.h"
 #include "../../public/fpdf_progressive.h"
 #include "../../public/fpdfview.h"
-#include "../../third_party/base/nonstd_unique_ptr.h"
-#include "../../third_party/base/numerics/safe_conversions_impl.h"
 #include "../include/fsdk_define.h"
 #include "../include/fsdk_mgr.h"
 #include "../include/fsdk_rendercontext.h"
 #include "../include/javascript/IJavaScript.h"
+#include "third_party/base/nonstd_unique_ptr.h"
+#include "third_party/base/numerics/safe_conversions_impl.h"
 
 CPDF_Document* CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc) {
   return static_cast<CPDF_Document*>(doc);
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp
index bc2d137..2909dc0 100644
--- a/fpdfsdk/src/fsdk_baseform.cpp
+++ b/fpdfsdk/src/fsdk_baseform.cpp
@@ -4,13 +4,13 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../third_party/base/nonstd_unique_ptr.h"
-#include "../include/fsdk_define.h"
-#include "../include/fsdk_mgr.h"
-#include "../include/fsdk_baseannot.h"
-#include "../include/fsdk_baseform.h"
 #include "../include/formfiller/FFL_FormFiller.h"
 #include "../include/fsdk_actionhandler.h"
+#include "../include/fsdk_baseannot.h"
+#include "../include/fsdk_baseform.h"
+#include "../include/fsdk_define.h"
+#include "../include/fsdk_mgr.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 #include "../include/javascript/IJavaScript.h"
 
diff --git a/fpdfsdk/src/fsdk_mgr.cpp b/fpdfsdk/src/fsdk_mgr.cpp
index f003506..7a767ea 100644
--- a/fpdfsdk/src/fsdk_mgr.cpp
+++ b/fpdfsdk/src/fsdk_mgr.cpp
@@ -7,11 +7,11 @@
 #include <algorithm>
 
 #include "../../public/fpdf_ext.h"
-#include "../../third_party/base/nonstd_unique_ptr.h"
 #include "../include/formfiller/FFL_FormFiller.h"
 #include "../include/fsdk_define.h"
 #include "../include/fsdk_mgr.h"
 #include "../include/javascript/IJavaScript.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 #if _FX_OS_ == _FX_ANDROID_
 #include "time.h"
diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp
index 4c7e191..d9ef6af 100644
--- a/fpdfsdk/src/javascript/Document.cpp
+++ b/fpdfsdk/src/javascript/Document.cpp
@@ -6,7 +6,6 @@
 
 #include "Document.h"
 
-#include "../../../third_party/base/numerics/safe_math.h"
 #include "../../include/fsdk_mgr.h"  // For CPDFDoc_Environment.
 #include "../../include/javascript/IJavaScript.h"
 #include "Field.h"
@@ -19,6 +18,7 @@
 #include "JS_Value.h"
 #include "app.h"
 #include "resource.h"
+#include "third_party/base/numerics/safe_math.h"
 
 static v8::Isolate* GetIsolate(IJS_Context* cc) {
   CJS_Context* pContext = (CJS_Context*)cc;
diff --git a/fpdfsdk/src/javascript/JS_Object.h b/fpdfsdk/src/javascript/JS_Object.h
index 5075152..8872a4e 100644
--- a/fpdfsdk/src/javascript/JS_Object.h
+++ b/fpdfsdk/src/javascript/JS_Object.h
@@ -9,10 +9,10 @@
 
 #include <map>
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fsdk_define.h"  // For FX_UINT
 #include "../../include/jsapi/fxjs_v8.h"
 #include "JS_Runtime.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CJS_Context;
 class CJS_Object;
diff --git a/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp b/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
index a7b081f..1232001 100644
--- a/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
+++ b/fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
@@ -4,9 +4,9 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fsdk_mgr.h"  // For CPDFDoc_Environment.
 #include "../../include/javascript/IJavaScript.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 class CJS_ContextStub final : public IJS_Context {
  public:
diff --git a/fpdfsdk/src/javascript/app.cpp b/fpdfsdk/src/javascript/app.cpp
index 1bd089a..d223934 100644
--- a/fpdfsdk/src/javascript/app.cpp
+++ b/fpdfsdk/src/javascript/app.cpp
@@ -6,7 +6,6 @@
 
 #include "app.h"
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../include/fsdk_mgr.h"  // For CPDFDoc_Environment.
 #include "../../include/javascript/IJavaScript.h"
 #include "Document.h"
@@ -17,6 +16,7 @@
 #include "JS_Runtime.h"
 #include "JS_Value.h"
 #include "resource.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 BEGIN_JS_STATIC_CONST(CJS_TimerObj)
 END_JS_STATIC_CONST()
diff --git a/fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp b/fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp
index b0f3f85..a7baa7b 100644
--- a/fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp
+++ b/fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "../../../third_party/base/nonstd_unique_ptr.h"
 #include "../../../core/include/fpdfapi/fpdf_parser.h"
 #include "../../../testing/embedder_test.h"
 #include "../../include/jsapi/fxjs_v8.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 namespace {
 
diff --git a/pdfium.gyp b/pdfium.gyp
index af8cd5b..5786acc 100644
--- a/pdfium.gyp
+++ b/pdfium.gyp
@@ -1,3 +1,7 @@
+# Copyright 2015 PDFium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
 {
   'variables': {
     # TODO(thakis): Enable this, pdfium:29
@@ -20,6 +24,9 @@
       '_CRT_SECURE_NO_WARNINGS',
     ],
     'include_dirs': [
+      # This is implicit in GN.
+      '<(DEPTH)',
+      '.',
       'third_party/freetype/include',
       'third_party/freetype/include/freetype',
     ],
@@ -327,8 +334,8 @@
       'target_name': 'fxcodec',
       'type': 'static_library',
       'dependencies': [
+        '<(libjpeg_gyp_path):libjpeg',
         'third_party/third_party.gyp:fx_lcms2',
-        'third_party/third_party.gyp:fx_libjpeg',
         'third_party/third_party.gyp:fx_libopenjpeg',
         'third_party/third_party.gyp:fx_zlib',
       ],
@@ -711,9 +718,6 @@
         'pdfium',
         'test_support',
       ],
-      'include_dirs': [
-        '<(DEPTH)'
-      ],
       'sources': [
         'core/src/fpdfapi/fpdf_font/fpdf_font_cid_unittest.cpp',
         'core/src/fpdfapi/fpdf_font/fpdf_font_unittest.cpp',
@@ -740,9 +744,6 @@
         'pdfium',
         'test_support',
       ],
-      'include_dirs': [
-        '<(DEPTH)',
-      ],
       'sources': [
         'core/src/fpdfapi/fpdf_page/fpdf_page_func_embeddertest.cpp',
         'core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp',
@@ -783,9 +784,6 @@
         '<(DEPTH)/testing/gmock.gyp:gmock',
         '<(DEPTH)/testing/gtest.gyp:gtest',
       ],
-      'include_dirs': [
-        '<(DEPTH)',
-      ],
       'sources': [
         'testing/fx_string_testhelpers.cpp',
         'testing/fx_string_testhelpers.h',
diff --git a/samples/BUILD.gn b/samples/BUILD.gn
index f3f6bc1..73683c4 100644
--- a/samples/BUILD.gn
+++ b/samples/BUILD.gn
@@ -18,10 +18,9 @@
     "PNGPREFIX_H",
     "PNG_USE_READ_MACROS",
   ]
+  include_dirs = [ ".." ]
   if (pdf_enable_v8) {
-    defines += [
-      "PDF_ENABLE_V8",
-    ]
+    defines += [ "PDF_ENABLE_V8" ]
   }
 }
 
@@ -34,6 +33,7 @@
   deps = [
     "//third_party/pdfium:pdfium",
     "//third_party/pdfium:test_support",
+
     # Regardless of whether the library ships against system freetype,
     # always link this binary against the bundled one for consistency
     # of results across platforms.
@@ -41,9 +41,7 @@
     ":fx_lpng",
   ]
   if (pdf_enable_v8) {
-    deps += [
-      "//v8:v8_libplatform",
-    ]
+    deps += [ "//v8:v8_libplatform" ]
     include_dirs = [
       "//v8",
       "//v8/include",
@@ -90,8 +88,6 @@
     "fx_lpng/src/fx_pngwtran.c",
     "fx_lpng/src/fx_pngwutil.c",
   ]
-  include_dirs = [
-    "../core/src/fxcodec/fx_zlib/include/",
-  ]
+  include_dirs = [ "../core/src/fxcodec/fx_zlib/include/" ]
   configs += [ ":pdfium_samples_config" ]
-}
\ No newline at end of file
+}
diff --git a/samples/fx_lpng/lpng_v163/pngstruct.h b/samples/fx_lpng/lpng_v163/pngstruct.h
index 25355c4..87adaa1 100644
--- a/samples/fx_lpng/lpng_v163/pngstruct.h
+++ b/samples/fx_lpng/lpng_v163/pngstruct.h
@@ -28,7 +28,7 @@
    /* We must ensure that zlib uses 'const' in declarations. */

 #  define ZLIB_CONST

 #endif

-#include "../../../third_party/zlib_v128/zlib.h"

+#include "third_party/zlib_v128/zlib.h"

 #ifdef const

    /* zlib.h sometimes #defines const to nothing, undo this. */

 #  undef const

diff --git a/samples/image_diff.cc b/samples/image_diff.cc
index f10bd31..88a3956 100644
--- a/samples/image_diff.cc
+++ b/samples/image_diff.cc
@@ -19,9 +19,9 @@
 #include <string>
 #include <vector>
 
-#include "../third_party/base/logging.h"
-#include "../third_party/base/numerics/safe_conversions.h"
 #include "image_diff_png.h"
+#include "third_party/base/logging.h"
+#include "third_party/base/numerics/safe_conversions.h"
 
 #if defined(OS_WIN)
 #include <windows.h>
diff --git a/samples/image_diff_png.cc b/samples/image_diff_png.cc
index 4ece285..34bff56 100644
--- a/samples/image_diff_png.cc
+++ b/samples/image_diff_png.cc
@@ -16,9 +16,9 @@
 
 #include <string>
 
-#include "../third_party/base/logging.h"
-#include "../third_party/zlib_v128/zlib.h"
 #include "fx_lpng/include/fx_png.h"
+#include "third_party/base/logging.h"
+#include "third_party/zlib_v128/zlib.h"
 
 namespace image_diff_png {
 
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index 102f59d..25f543a 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -24,7 +24,7 @@
 #ifdef PDF_ENABLE_V8
 #include "v8/include/libplatform/libplatform.h"
 #include "v8/include/v8.h"
-#endif
+#endif  // PDF_ENABLE_V8
 
 #ifdef _WIN32
 #define snprintf _snprintf
diff --git a/samples/samples.gyp b/samples/samples.gyp
index 35b62b7..3dc9a45 100644
--- a/samples/samples.gyp
+++ b/samples/samples.gyp
@@ -13,7 +13,9 @@
       'PNG_USE_READ_MACROS',
     ],
     'include_dirs': [
+      # This is implicit in GN.
       '<(DEPTH)',
+      '..',
     ],
     'conditions': [
       ['pdf_enable_v8==1', {
@@ -66,9 +68,6 @@
         '../pdfium.gyp:pdfium',
         '../third_party/third_party.gyp:pdfium_base',
       ],
-      'include_dirs': [
-        '../../',
-      ],
       'sources': [
         'image_diff.cc',
         'image_diff_png.h',
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 6151d73a..1c0dda6 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -18,8 +18,8 @@
 #include "testing/gmock/include/gmock/gmock.h"
 
 #ifdef PDF_ENABLE_V8
-#include "v8/include/libplatform/libplatform.h"
 #include "v8/include/v8.h"
+#include "v8/include/v8-platform.h"
 #endif  // PDF_ENABLE_V8
 
 namespace {
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 035906d..31192b3 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -12,8 +12,8 @@
 #include "../public/fpdf_ext.h"
 #include "../public/fpdf_formfill.h"
 #include "../public/fpdfview.h"
-#include "../third_party/base/nonstd_unique_ptr.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/base/nonstd_unique_ptr.h"
 
 #ifdef PDF_ENABLE_V8
 #include "v8/include/v8.h"
diff --git a/testing/test_support.cpp b/testing/test_support.cpp
index 4923299..8ecda30 100644
--- a/testing/test_support.cpp
+++ b/testing/test_support.cpp
@@ -13,6 +13,10 @@
 #define PATH_SEPARATOR '/'
 #endif
 
+#ifdef PDF_ENABLE_V8
+#include "v8/include/libplatform/libplatform.h"
+#endif
+
 namespace {
 
 #ifdef PDF_ENABLE_V8
diff --git a/testing/test_support.h b/testing/test_support.h
index 4bb88db..afa3baf 100644
--- a/testing/test_support.h
+++ b/testing/test_support.h
@@ -11,9 +11,8 @@
 #include "../public/fpdfview.h"
 
 #ifdef PDF_ENABLE_V8
-#include "v8/include/libplatform/libplatform.h"
 #include "v8/include/v8.h"
-#endif
+#endif  // PDF_ENABLE_V8
 
 // Reads the entire contents of a file into a newly malloc'd buffer.
 char* GetFileContents(const char* filename, size_t* retlen);
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
index b1fc548..214614c 100644
--- a/third_party/BUILD.gn
+++ b/third_party/BUILD.gn
@@ -46,6 +46,7 @@
   configs += [
     "//build/config/compiler:no_chromium_code",
     "//third_party/pdfium:pdfium_config",
+
     # Must be after no_chromium_code for warning flags to be ordered correctly.
     ":fx_freetype_warnings",
   ]
@@ -96,6 +97,7 @@
   configs += [
     "//build/config/compiler:no_chromium_code",
     "//third_party/pdfium:pdfium_config",
+
     # Must be after no_chromium_code for warning flags to be ordered correctly.
     ":fx_agg_warnings",
   ]
@@ -125,6 +127,7 @@
       # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
       # library doesn't appear to have this problem.
       "-Wno-missing-braces",
+
       # FindPrev() in cmsplugin.c is unused.
       "-Wno-unused-function",
     ]
@@ -136,6 +139,7 @@
   configs += [
     "//build/config/compiler:no_chromium_code",
     "//third_party/pdfium:pdfium_config",
+
     # Must be after no_chromium_code for warning flags to be ordered correctly.
     ":fx_lcms2_warnings",
   ]
@@ -170,7 +174,8 @@
   ]
 }
 
-source_set("fx_libjpeg") {
+# This is only used for standalone builds.
+source_set("jpeg") {
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     "//build/config/compiler:no_chromium_code",
diff --git a/third_party/third_party.gyp b/third_party/third_party.gyp
index 43e1093..78aa6fc 100644
--- a/third_party/third_party.gyp
+++ b/third_party/third_party.gyp
@@ -8,6 +8,11 @@
       'OPJ_STATIC',
       '_CRT_SECURE_NO_WARNINGS',
     ],
+    'include_dirs': [
+      # This is implicit in GN.
+      '<(DEPTH)',
+      '..',
+    ],
     'msvs_disabled_warnings': [
       4005, 4018, 4146, 4333, 4345, 4267
     ],
@@ -161,7 +166,7 @@
       },
     },
     {
-      'target_name': 'fx_libjpeg',
+      'target_name': 'libjpeg',
       'type': 'static_library',
       'sources': [
         'libjpeg/cderror.h',