diff options
Diffstat (limited to 'iPhone/CordovaLib/Classes/CDVConfigParser.m')
-rwxr-xr-x | iPhone/CordovaLib/Classes/CDVConfigParser.m | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/iPhone/CordovaLib/Classes/CDVConfigParser.m b/iPhone/CordovaLib/Classes/CDVConfigParser.m index b596c9d..6fd5913 100755 --- a/iPhone/CordovaLib/Classes/CDVConfigParser.m +++ b/iPhone/CordovaLib/Classes/CDVConfigParser.m @@ -24,20 +24,23 @@ @property (nonatomic, readwrite, strong) NSMutableDictionary* pluginsDict; @property (nonatomic, readwrite, strong) NSMutableDictionary* settings; @property (nonatomic, readwrite, strong) NSMutableArray* whitelistHosts; +@property (nonatomic, readwrite, strong) NSMutableArray* startupPluginNames; +@property (nonatomic, readwrite, strong) NSString* startPage; @end @implementation CDVConfigParser -@synthesize pluginsDict, settings, whitelistHosts; +@synthesize pluginsDict, settings, whitelistHosts, startPage, startupPluginNames; - (id)init { self = [super init]; if (self != nil) { - self.pluginsDict = [[NSMutableDictionary alloc] initWithCapacity:4]; - self.settings = [[NSMutableDictionary alloc] initWithCapacity:4]; - self.whitelistHosts = [[NSMutableArray alloc] initWithCapacity:1]; + self.pluginsDict = [[NSMutableDictionary alloc] initWithCapacity:30]; + self.settings = [[NSMutableDictionary alloc] initWithCapacity:30]; + self.whitelistHosts = [[NSMutableArray alloc] initWithCapacity:30]; + self.startupPluginNames = [[NSMutableArray alloc] initWithCapacity:8]; } return self; } @@ -45,11 +48,17 @@ - (void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qualifiedName attributes:(NSDictionary*)attributeDict { if ([elementName isEqualToString:@"preference"]) { - [settings setObject:[attributeDict objectForKey:@"value"] forKey:[attributeDict objectForKey:@"name"]]; + settings[attributeDict[@"name"]] = attributeDict[@"value"]; } else if ([elementName isEqualToString:@"plugin"]) { - [pluginsDict setObject:[attributeDict objectForKey:@"value"] forKey:[attributeDict objectForKey:@"name"]]; + NSString* name = [attributeDict[@"name"] lowercaseString]; + pluginsDict[name] = attributeDict[@"value"]; + if ([@"true" isEqualToString:attributeDict[@"onload"]]) { + [self.startupPluginNames addObject:name]; + } } else if ([elementName isEqualToString:@"access"]) { - [whitelistHosts addObject:[attributeDict objectForKey:@"origin"]]; + [whitelistHosts addObject:attributeDict[@"origin"]]; + } else if ([elementName isEqualToString:@"content"]) { + self.startPage = attributeDict[@"src"]; } } |