skiaserve no longer crashes when no X server is present
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2059263002

Review-Url: https://codereview.chromium.org/2059263002
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index 97719e2..c3eaaff 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -71,8 +71,14 @@
 #if SK_SUPPORT_GPU
     GrContextFactory* factory = fContextFactory;
     GLTestContext* gl = factory->getContextInfo(GrContextFactory::kNativeGL_ContextType,
-                                            GrContextFactory::kNone_ContextOptions).glContext();
-    gl->makeCurrent();
+                                                GrContextFactory::kNone_ContextOptions).glContext();
+    if (!gl) {
+        gl = factory->getContextInfo(GrContextFactory::kMESA_ContextType,
+                                     GrContextFactory::kNone_ContextOptions).glContext();
+    }
+    if (gl) {
+        gl->makeCurrent();
+    }
 #endif
     SkASSERT(fDebugCanvas);
 
@@ -115,10 +121,15 @@
 
 GrContext* Request::getContext() {
 #if SK_SUPPORT_GPU
-  return fContextFactory->get(GrContextFactory::kNativeGL_ContextType,
-                              GrContextFactory::kNone_ContextOptions);
+    GrContext* result = fContextFactory->get(GrContextFactory::kNativeGL_ContextType,
+                                             GrContextFactory::kNone_ContextOptions);
+    if (!result) {
+        result = fContextFactory->get(GrContextFactory::kMESA_ContextType,
+                                      GrContextFactory::kNone_ContextOptions);
+    } 
+    return result;
 #else
-  return nullptr;
+    return nullptr;
 #endif
 }