Roll third_party/inspector_protocol to 4d389ba

This roll includes:
  - [inspector_protocol] first class citizien .pdl support

+ migrated cros_protocol.json to .pdl

TBR=dgozman@chromium.org,dpranke@chromium.org,pfeldman@chromium.org
NOPRESUBMIT=true
Bug:none

Change-Id: I0fff1582bd41115e2aa348008c7a5d48f5c59a7e
Reviewed-on: https://chromium-review.googlesource.com/1014468
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Pavel Feldman <pfeldman@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#551382}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: a42a629f67ac9aae0aaa8fbd912c654559c5d880
diff --git a/scripts/build/generate_protocol_externs.py b/scripts/build/generate_protocol_externs.py
index 418361b..1725fa0 100755
--- a/scripts/build/generate_protocol_externs.py
+++ b/scripts/build/generate_protocol_externs.py
@@ -28,12 +28,21 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import os
+import os.path as path
 import re
+import sys
 try:
     import json
 except ImportError:
     import simplejson as json
 
+sys.path.append(
+    path.normpath(
+        path.join(
+            path.dirname(path.abspath(__file__)),
+            os.pardir, os.pardir, os.pardir, os.pardir, os.pardir, 'inspector_protocol')))
+import pdl  # pylint: disable=F0401
+
 type_traits = {
     "any": "*",
     "string": "string",
@@ -97,8 +106,8 @@
 
 def load_schema(file, domains):
     input_file = open(file, "r")
-    json_string = input_file.read()
-    parsed_json = json.loads(json_string)
+    parsed_json = pdl.loads(input_file.read(), file)
+    input_file.close()
     domains.extend(parsed_json["domains"])