Revert "Revert "use serialprocs for typefaces""

This reverts commit 1a104bce20adc47a343fa910899ca6c4f261be40.

Change (from first version) is
- only signal error in readbuffer for corrupt stream, not default fonts
- change test to ensure a non-null typeface (i.e. MakeDefault())

Bug: skia:
Change-Id: I325445b56b0a402e1b89a2439df06e92314c793f
Reviewed-on: https://skia-review.googlesource.com/82687
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/tests/TextBlobTest.cpp b/tests/TextBlobTest.cpp
index 8e272a5..fdc5c38 100644
--- a/tests/TextBlobTest.cpp
+++ b/tests/TextBlobTest.cpp
@@ -426,12 +426,11 @@
  */
 DEF_TEST(TextBlob_serialize, reporter) {
     sk_sp<SkTextBlob> blob0 = []() {
-        sk_sp<SkTypeface> tf0;
-        sk_sp<SkTypeface> tf1 = SkTypeface::MakeFromName("Times", SkFontStyle());
+        sk_sp<SkTypeface> tf = SkTypeface::MakeDefault();
 
         SkTextBlobBuilder builder;
-        add_run(&builder, "Hello", 10, 20, tf0);
-        add_run(&builder, "World", 10, 40, tf1);
+        add_run(&builder, "Hello", 10, 20, nullptr);    // we don't flatten this in the paint
+        add_run(&builder, "World", 10, 40, tf);         // we will flatten this in the paint
         return builder.make();
     }();
 
@@ -442,7 +441,8 @@
             *array->append() = tf;
         }
     }, &array);
-    REPORTER_ASSERT(reporter, array.count() > 0);
+    // we only expect 1, since null would not have been serialized, but the default would
+    REPORTER_ASSERT(reporter, array.count() == 1);
 
     sk_sp<SkTextBlob> blob1 = SkTextBlob::Deserialize(data->data(), data->size(),
                                                       [](uint32_t uniqueID, void* ctx) {