Update from https://crrev.com/307330

Includes several sky updates for skia API changes and the gn format
presubmit check from https://codereview.chromium.org/779193003/

Review URL: https://codereview.chromium.org/786123002
diff --git a/gurl.cc b/gurl.cc
index b580125..46ca408 100644
--- a/gurl.cc
+++ b/gurl.cc
@@ -177,6 +177,22 @@
   return EmptyStringForGURL();
 }
 
+bool GURL::operator==(const GURL& other) const {
+  return spec_ == other.spec_;
+}
+
+bool GURL::operator!=(const GURL& other) const {
+  return spec_ != other.spec_;
+}
+
+bool GURL::operator<(const GURL& other) const {
+  return spec_ < other.spec_;
+}
+
+bool GURL::operator>(const GURL& other) const {
+  return spec_ > other.spec_;
+}
+
 GURL GURL::Resolve(const std::string& relative) const {
   return ResolveWithCharsetConverter(relative, NULL);
 }
diff --git a/gurl.h b/gurl.h
index f370934..ef1e529 100644
--- a/gurl.h
+++ b/gurl.h
@@ -112,20 +112,12 @@
   }
 
   // Defiant equality operator!
-  bool operator==(const GURL& other) const {
-    return spec_ == other.spec_;
-  }
-  bool operator!=(const GURL& other) const {
-    return spec_ != other.spec_;
-  }
+  bool operator==(const GURL& other) const;
+  bool operator!=(const GURL& other) const;
 
   // Allows GURL to used as a key in STL (for example, a std::set or std::map).
-  bool operator<(const GURL& other) const {
-    return spec_ < other.spec_;
-  }
-  bool operator>(const GURL& other) const {
-    return spec_ > other.spec_;
-  }
+  bool operator<(const GURL& other) const;
+  bool operator>(const GURL& other) const;
 
   // Resolves a URL that's possibly relative to this object's URL, and returns
   // it. Absolute URLs are also handled according to the rules of URLs on web