Index: ios/web/web_state/ui/web_view_js_utils.mm |
diff --git a/ios/web/web_state/ui/web_view_js_utils.mm b/ios/web/web_state/ui/web_view_js_utils.mm |
index 8ab4867e6224bd0f00479d07d99df1b22c38565b..e617ce10d44e7854c46fd443120f21e2e5b8c6b0 100644 |
--- a/ios/web/web_state/ui/web_view_js_utils.mm |
+++ b/ios/web/web_state/ui/web_view_js_utils.mm |
@@ -50,13 +50,19 @@ std::unique_ptr<base::Value> ValueResultFromWKResult(id wk_result, |
for (id key in wk_result) { |
NSString* obj_c_string = base::mac::ObjCCast<NSString>(key); |
const std::string path = base::SysNSStringToUTF8(obj_c_string); |
- std::unique_ptr<base::Value> value = ValueResultFromWKResult( |
- [wk_result objectForKey:obj_c_string], max_depth - 1); |
+ std::unique_ptr<base::Value> value = |
+ ValueResultFromWKResult(wk_result[obj_c_string], max_depth - 1); |
if (value) { |
dictionary->Set(path, std::move(value)); |
} |
} |
result = std::move(dictionary); |
+ } else if (result_type == CFArrayGetTypeID()) { |
+ std::unique_ptr<base::ListValue> list = base::MakeUnique<base::ListValue>(); |
+ for (id value in wk_result) { |
+ list->Append(ValueResultFromWKResult(value, max_depth - 1)); |
+ } |
+ result = std::move(list); |
} else { |
NOTREACHED(); // Convert other types as needed. |
} |