Reland "[svg] Plumb a ResourceProvider"

This is a reland of dd29e20904687621ac77b182080ec68c4323b70c

Original change's description:
> [svg] Plumb a ResourceProvider
>
> ... for image loading.
>
> Update the SVG tools to pass local/FS resource providers.
>
> Change-Id: I2c0e446047da87f177fde0f23b7ea1f0a856e808
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359996
> Commit-Queue: Florin Malita <fmalita@google.com>
> Reviewed-by: Tyler Denniston <tdenniston@google.com>

Change-Id: I28de60b299fc89f46b090812fc632105143fb6da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/360607
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
diff --git a/modules/svg/utils/SvgTool.cpp b/modules/svg/utils/SvgTool.cpp
index 71ab3c3..7ee49a2 100644
--- a/modules/svg/utils/SvgTool.cpp
+++ b/modules/svg/utils/SvgTool.cpp
@@ -11,7 +11,9 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/encode/SkPngEncoder.h"
+#include "modules/skresources/include/SkResources.h"
 #include "modules/svg/include/SkSVGDOM.h"
+#include "src/utils/SkOSPath.h"
 #include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string2(input , i, nullptr, "Input SVG file.");
@@ -39,9 +41,14 @@
         return 1;
     }
 
+    auto rp = skresources::DataURIResourceProviderProxy::Make(
+                  skresources::FileResourceProvider::Make(SkOSPath::Dirname(FLAGS_input[0]),
+                                                          /*predecode=*/true),
+                  /*predecode=*/true);
 
     auto svg_dom = SkSVGDOM::Builder()
                         .setFontManager(SkFontMgr::RefDefault())
+                        .setResourceProvider(std::move(rp))
                         .make(in);
     if (!svg_dom) {
         std::cerr << "Could not parse " << FLAGS_input[0] << "\n";