+- (id) getSessionValue:(NSString *)key {
+@synchronized (SessionData_) {
+ return [SessionData_ objectForKey:key];
+} }
+
+- (void) setSessionValue:(NSString *)key :(NSString *)value {
+@synchronized (SessionData_) {
+ if (value == (id) [WebUndefined undefined])
+ [SessionData_ removeObjectForKey:key];
+ else
+ [SessionData_ setObject:value forKey:key];
+} }
+
+- (void) addBridgedHost:(NSString *)host {
+@synchronized (HostConfig_) {
+ [BridgedHosts_ addObject:host];
+} }
+
+- (void) addPipelinedHost:(NSString *)host scheme:(NSString *)scheme {
+@synchronized (HostConfig_) {
+ if (scheme != (id) [WebUndefined undefined])
+ host = [NSString stringWithFormat:@"%@:%@", [scheme lowercaseString], host];
+
+ [PipelinedHosts_ addObject:host];
+} }
+
+- (void) popViewController:(NSNumber *)value {
+ if (value == (id) [WebUndefined undefined])
+ value = [NSNumber numberWithBool:YES];
+ [indirect_ performSelectorOnMainThread:@selector(popViewControllerWithNumber:) withObject:value waitUntilDone:NO];