Revert "Remove custom iOS logic from mb."

This reverts commit 8eec7f4c270d160fb61c00b3ebad5f1d1d540281.

Reason for revert: Rolling back change, as I don't intend to follow through with the remaining config changes, and I don't want to leave the iOS configs in a half-migrated state.

Original change's description:
> Remove custom iOS logic from mb.
> 
> The public ios master/builders now have appropriate entries in mb_config.pyl
> 
> Bug: 951182
> Change-Id: I500a3c00d47b7d5652654d14be2090c59214ed6f
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1561846
> Commit-Queue: Erik Chen <[email protected]>
> Reviewed-by: Dirk Pranke <[email protected]>
> Cr-Commit-Position: refs/heads/master@{#649914}

[email protected],[email protected]

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 951182
Change-Id: I816efd0db4d13c8003af496d146483610c6c688a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1566230
Reviewed-by: Erik Chen <[email protected]>
Reviewed-by: Dirk Pranke <[email protected]>
Commit-Queue: Erik Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#650399}
diff --git a/tools/mb/mb.py b/tools/mb/mb.py
index 76c0f95..f0ada6c 100755
--- a/tools/mb/mb.py
+++ b/tools/mb/mb.py
@@ -613,18 +613,35 @@
     return ' '.join(gn_args)
 
   def Lookup(self):
-    self.ReadConfigFile()
-    config = self.ConfigFromArgs()
-    if config.startswith('//'):
-      if not self.Exists(self.ToAbsPath(config)):
-        raise MBErr('args file "%s" not found' % config)
-      vals = self.DefaultVals()
-      vals['args_file'] = config
-    else:
-      if not config in self.configs:
-        raise MBErr('Config "%s" not found in %s' %
-                    (config, self.args.config_file))
-      vals = self.FlattenConfig(config)
+    vals = self.ReadIOSBotConfig()
+    if not vals:
+      self.ReadConfigFile()
+      config = self.ConfigFromArgs()
+      if config.startswith('//'):
+        if not self.Exists(self.ToAbsPath(config)):
+          raise MBErr('args file "%s" not found' % config)
+        vals = self.DefaultVals()
+        vals['args_file'] = config
+      else:
+        if not config in self.configs:
+          raise MBErr('Config "%s" not found in %s' %
+                      (config, self.args.config_file))
+        vals = self.FlattenConfig(config)
+    return vals
+
+  def ReadIOSBotConfig(self):
+    if not self.args.master or not self.args.builder:
+      return {}
+    path = self.PathJoin(self.chromium_src_dir, 'ios', 'build', 'bots',
+                         self.args.master, self.args.builder + '.json')
+    if not self.Exists(path):
+      return {}
+
+    contents = json.loads(self.ReadFile(path))
+    gn_args = ' '.join(contents.get('gn_args', []))
+
+    vals = self.DefaultVals()
+    vals['gn_args'] = gn_args
     return vals
 
   def ReadConfigFile(self):