public Task <IDocument> OpenDocument(string url) { if (StateSelector != null) { // Flip out requested url for new state (assumes previous state was State1) foreach (var comic in comics) { if (url == comic.State1.ArchiveUrl) { url = StateSelector(comic).ArchiveUrl; break; } else if (url == comic.State1.PageUrl) { url = StateSelector(comic).PageUrl; break; } } } return(PageLoader.GetBrowsingContext().OpenAsync(res => { res.Content(new FileStream(new Uri(url).LocalPath, FileMode.Open), shouldDispose: true) .Address(url); })); }