Update from https://crrev.com/333737

* Cherrypick crrev.com/333293 (freetype -> freetype-android).
* Update mojo/go/go.py to use android-16 (NDK API level 16), which is
  4.1 (first Jelly Bean). Chromium dropped support for 14.
* TODO (separately): also update tools/go/upload.py and upload new
  binaries?
* Roll android_tools (to match Chromium).
* Small fixes to match //base changes: base::ObserverList, TraceConfig,
  ThreadTicks, etc.
* Restore build/ls.py (and add it to the list of files to not roll).
* Remove the dependency on third_party/instrumented_libraries.
* Add "enable_topchrome_md = false" to build/config/ui.gni.
* Add build/config/ui.gni to files_not_to_roll in
  update_from_chromium.py. (We should probably get rid of the use_glib
  variable/argument, and others as well.)
* Remove mojo/tools/roll/{roll_network_service.py,
  roll_network_service_patches/network_service.patch}. These are for
  rolling from Chromium, whereas we now have/use monet.
* Roll buildtools (to match Chromium).
* Modify sanitizer gn/gni files to make it work (patch included).
  (Maybe the patch even works -- I haven't checked.)

TBR=rockot@chromium.org,jamesr@chromium.org,rogulenko@google.com

Review URL: https://codereview.chromium.org/1180693002.
diff --git a/crypto/secure_hash.h b/crypto/secure_hash.h
index 173fd0a..23349b0 100644
--- a/crypto/secure_hash.h
+++ b/crypto/secure_hash.h
@@ -8,8 +8,10 @@
 #include "base/basictypes.h"
 #include "crypto/crypto_export.h"
 
+namespace base {
 class Pickle;
 class PickleIterator;
+}
 
 namespace crypto {
 
@@ -30,13 +32,13 @@
   // Serialize the context, so it can be restored at a later time.
   // |pickle| will contain the serialized data.
   // Returns whether or not |pickle| was filled.
-  virtual bool Serialize(Pickle* pickle) = 0;
+  virtual bool Serialize(base::Pickle* pickle) = 0;
 
   // Restore the context that was saved earlier.
   // |data_iterator| allows this to be used as part of a larger pickle.
   // |pickle| holds the saved data.
   // Returns success or failure.
-  virtual bool Deserialize(PickleIterator* data_iterator) = 0;
+  virtual bool Deserialize(base::PickleIterator* data_iterator) = 0;
 
  protected:
   SecureHash() {}
diff --git a/crypto/secure_hash_openssl.cc b/crypto/secure_hash_openssl.cc
index a2997b4..9e77c3f 100644
--- a/crypto/secure_hash_openssl.cc
+++ b/crypto/secure_hash_openssl.cc
@@ -40,14 +40,14 @@
     SHA256_Final(result.safe_buffer(), &ctx_);
   }
 
-  bool Serialize(Pickle* pickle) override;
-  bool Deserialize(PickleIterator* data_iterator) override;
+  bool Serialize(base::Pickle* pickle) override;
+  bool Deserialize(base::PickleIterator* data_iterator) override;
 
  private:
   SHA256_CTX ctx_;
 };
 
-bool SecureHashSHA256OpenSSL::Serialize(Pickle* pickle) {
+bool SecureHashSHA256OpenSSL::Serialize(base::Pickle* pickle) {
   if (!pickle)
     return false;
 
@@ -60,7 +60,7 @@
   return true;
 }
 
-bool SecureHashSHA256OpenSSL::Deserialize(PickleIterator* data_iterator) {
+bool SecureHashSHA256OpenSSL::Deserialize(base::PickleIterator* data_iterator) {
   if (!data_iterator)
     return false;
 
diff --git a/crypto/secure_hash_unittest.cc b/crypto/secure_hash_unittest.cc
index c21c365..facf476 100644
--- a/crypto/secure_hash_unittest.cc
+++ b/crypto/secure_hash_unittest.cc
@@ -53,7 +53,7 @@
       crypto::SecureHash::SHA256));
   scoped_ptr<crypto::SecureHash> ctx2(crypto::SecureHash::Create(
       crypto::SecureHash::SHA256));
-  Pickle pickle;
+  base::Pickle pickle;
   ctx1->Update(input1.data(), input1.size());
   ctx1->Update(input2.data(), input2.size());
   ctx1->Update(input3.data(), input3.size());
@@ -64,7 +64,7 @@
 
   ctx1->Finish(output1, sizeof(output1));
 
-  PickleIterator data_iterator(pickle);
+  base::PickleIterator data_iterator(pickle);
   EXPECT_TRUE(ctx2->Deserialize(&data_iterator));
   ctx2->Update(input4.data(), input4.size());
   ctx2->Update(input5.data(), input5.size());