From fe468f45e509f1e3bc2d0491160f44491df5a67b Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Tue, 9 Dec 2008 09:18:04 +0000 Subject: Fixed HTML error handling and enhanced pinstriping. --- UICaboodle/BrowserView.h | 2 ++ UICaboodle/BrowserView.m | 45 +++++++++++++++++++++++++++++---------------- 2 files changed, 31 insertions(+), 16 deletions(-) (limited to 'UICaboodle') diff --git a/UICaboodle/BrowserView.h b/UICaboodle/BrowserView.h index 3dcdb93..a37d326 100644 --- a/UICaboodle/BrowserView.h +++ b/UICaboodle/BrowserView.h @@ -41,6 +41,8 @@ UIProgressIndicator *indicator_; IndirectDelegate *indirect_; NSURLAuthenticationChallenge *challenge_; + + bool error_; NSURLRequest *request_; NSNumber *confirm_; diff --git a/UICaboodle/BrowserView.m b/UICaboodle/BrowserView.m index edaa2f2..b3ed590 100644 --- a/UICaboodle/BrowserView.m +++ b/UICaboodle/BrowserView.m @@ -95,6 +95,7 @@ - (void) loadRequest:(NSURLRequest *)request { pushed_ = true; + error_ = false; [webview_ loadRequest:request]; } @@ -104,7 +105,7 @@ return; if ([request_ HTTPBody] == nil && [request_ HTTPBodyStream] == nil) - [webview_ loadRequest:request_]; + [self loadRequest:request_]; else { UIActionSheet *sheet = [[[UIActionSheet alloc] initWithTitle:@"Are you sure you want to submit this form again?" @@ -294,7 +295,7 @@ NSURL *url([request URL]); if (url == nil) use: { - if ([frame parentFrame] == nil) { + if (!error_ && [frame parentFrame] == nil) { if (request_ != nil) [request_ autorelease]; request_ = [request retain]; @@ -592,20 +593,30 @@ bool colored(false); if (DOMCSSPrimitiveValue *color = static_cast([style getPropertyCSSValue:@"background-color"])) { - DOMRGBColor *rgb([color getRGBColorValue]); - - float alpha([[rgb alpha] getFloatValue:DOM_CSS_NUMBER]); - NSLog(@"alpha:%g", alpha); - - if (alpha != 0) { - colored = true; - - [scroller_ setBackgroundColor:[UIColor - colorWithRed:([[rgb red] getFloatValue:DOM_CSS_NUMBER] / 255) - green:([[rgb green] getFloatValue:DOM_CSS_NUMBER] / 255) - blue:([[rgb blue] getFloatValue:DOM_CSS_NUMBER] / 255) - alpha:alpha - ]]; + if ([color primitiveType] == DOM_CSS_RGBCOLOR) { + DOMRGBColor *rgb([color getRGBColorValue]); + + float red([[rgb red] getFloatValue:DOM_CSS_NUMBER]); + float green([[rgb green] getFloatValue:DOM_CSS_NUMBER]); + float blue([[rgb blue] getFloatValue:DOM_CSS_NUMBER]); + float alpha([[rgb alpha] getFloatValue:DOM_CSS_NUMBER]); + + UIColor *uic(nil); + + if (red == 0xc7 && green == 0xce && blue == 0xd5) + uic = [UIColor pinStripeColor]; + else if (alpha != 0) + uic = [UIColor + colorWithRed:(red / 255) + green:(green / 255) + blue:(blue / 255) + alpha:alpha + ]; + + if (uic != nil) { + colored = true; + [scroller_ setBackgroundColor:uic]; + } } } @@ -627,6 +638,8 @@ [[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"error" ofType:@"html"]] absoluteString], [[error localizedDescription] stringByAddingPercentEscapes] ]]]; + + error_ = true; } - (void) webView:(WebView *)sender addMessageToConsole:(NSDictionary *)dictionary { -- cgit v1.2.3