Replace uses of hash_map in //base

base::hash_map is deprecated in favor of std::unordered_map (which it is a
typedef of).

The changes to tracing required updating of callers in third_party/WebKit.

Some uses were replaced with more appropriate variants: std::map,
base::flat_map, and base::small_map.

A std::hash implementation of base::FilePath is added.

BUG=576864
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2830093003
Cr-Original-Commit-Position: refs/heads/master@{#467761}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1ce49f64ab5be7af3fa0a06d9bd1f826a13a0962
diff --git a/chrome/browser/ui/toolbar/web_toolbar_controller_unittest.mm b/chrome/browser/ui/toolbar/web_toolbar_controller_unittest.mm
index bb2c4bb..500e4b2 100644
--- a/chrome/browser/ui/toolbar/web_toolbar_controller_unittest.mm
+++ b/chrome/browser/ui/toolbar/web_toolbar_controller_unittest.mm
@@ -6,6 +6,7 @@
 
 #import <Foundation/Foundation.h>
 
+#include <map>
 #include <memory>
 
 #include "base/ios/ios_util.h"
@@ -191,8 +192,8 @@
   // Test that the initial setup of the toolbar matches the layout produced by
   // calling layoutOmnibox.  If the initial frames do not match those set during
   // layoutOmnibox, there will be minor animations during startup.
-  typedef base::hash_map<unsigned long, CGRect> FrameHash;
-  typedef base::hash_map<unsigned long, CGRect>::iterator FrameHashIter;
+  typedef std::map<unsigned long, CGRect> FrameHash;
+  typedef std::map<unsigned long, CGRect>::iterator FrameHashIter;
   FrameHash initialFrames;
   FrameHash postLayoutFrames;