Extend SkFontMgr_Custom to cover ttc, otf, pfb.

Adds ability to test ScanFont with Type1 (pfb) fonts
and fonts with multiple faces (ttc).

Committed: https://skia.googlesource.com/skia/+/ee0c2e4fd429424beaa35f29e7f656997ba3f115

Review URL: https://codereview.chromium.org/672723002
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp
index c527551..4677a1f 100644
--- a/src/ports/SkFontMgr_android.cpp
+++ b/src/ports/SkFontMgr_android.cpp
@@ -138,7 +138,9 @@
 
 class SkFontStyleSet_Android : public SkFontStyleSet {
 public:
-    explicit SkFontStyleSet_Android(const FontFamily& family, const char* basePath) {
+    explicit SkFontStyleSet_Android(const FontFamily& family, const char* basePath,
+                                    const SkTypeface_FreeType::Scanner& scanner)
+    {
         const SkString* cannonicalFamilyName = NULL;
         if (family.fNames.count() > 0) {
             cannonicalFamilyName = &family.fNames[0];
@@ -160,8 +162,7 @@
             SkString familyName;
             SkFontStyle style;
             bool isFixedWidth;
-            if (!SkTypeface_FreeType::ScanFont(stream.get(), ttcIndex,
-                                               &familyName, &style, &isFixedWidth)) {
+            if (!scanner.scanFont(stream.get(), ttcIndex, &familyName, &style, &isFixedWidth)) {
                 DEBUG_FONT(("---- SystemFonts[%d] file=%s (INVALID)", i, pathName.c_str()));
                 continue;
             }
@@ -435,7 +436,7 @@
         bool isFixedPitch;
         SkFontStyle style;
         SkString name;
-        if (!SkTypeface_FreeType::ScanFont(stream, ttcIndex, &name, &style, &isFixedPitch)) {
+        if (!fScanner.scanFont(stream, ttcIndex, &name, &style, &isFixedPitch)) {
             return NULL;
         }
         return SkNEW_ARGS(SkTypeface_AndroidStream, (stream, ttcIndex,
@@ -460,6 +461,8 @@
 
 private:
 
+    SkTypeface_FreeType::Scanner fScanner;
+
     SkTArray<SkAutoTUnref<SkFontStyleSet_Android>, true> fFontStyleSets;
     SkFontStyleSet* fDefaultFamily;
     SkTypeface* fDefaultTypeface;
@@ -481,7 +484,8 @@
                 }
             }
 
-            SkFontStyleSet_Android* newSet = SkNEW_ARGS(SkFontStyleSet_Android, (family, basePath));
+            SkFontStyleSet_Android* newSet =
+                SkNEW_ARGS(SkFontStyleSet_Android, (family, basePath, fScanner));
             if (0 == newSet->count()) {
                 SkDELETE(newSet);
                 continue;