Commit 2f4aa595 authored by rohitrao's avatar rohitrao Committed by Commit bot

[ios] Safely handle non-existent plists in OmniboxGeolocationConfig.

This CL adds an early return rather than DCHECKing when the plist is missing.

BUG=666375

Review-Url: https://codereview.chromium.org/2551423002
Cr-Commit-Position: refs/heads/master@{#438719}
parent 7daca36a
...@@ -67,6 +67,12 @@ NSString* const kEligibleDomainsKey = @"EligibleDomains"; ...@@ -67,6 +67,12 @@ NSString* const kEligibleDomainsKey = @"EligibleDomains";
ofType:@"plist" ofType:@"plist"
inDirectory:@"gm-config/ANY"]; inDirectory:@"gm-config/ANY"];
NSDictionary* configData = [NSDictionary dictionaryWithContentsOfFile:path]; NSDictionary* configData = [NSDictionary dictionaryWithContentsOfFile:path];
if (!configData) {
// The plist is not packaged with Chromium builds. This is not an error, so
// simply return early, since no domains are eligible for geolocation.
return;
}
NSArray* eligibleDomains = base::mac::ObjCCastStrict<NSArray>( NSArray* eligibleDomains = base::mac::ObjCCastStrict<NSArray>(
[configData objectForKey:kEligibleDomainsKey]); [configData objectForKey:kEligibleDomainsKey]);
if (eligibleDomains) { if (eligibleDomains) {
...@@ -78,6 +84,7 @@ NSString* const kEligibleDomainsKey = @"EligibleDomains"; ...@@ -78,6 +84,7 @@ NSString* const kEligibleDomainsKey = @"EligibleDomains";
} }
} }
} }
// Make sure that if a plist exists, it contains at least one eligible domain.
DCHECK(!_eligibleDomains.empty()); DCHECK(!_eligibleDomains.empty());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment