From ea173384eb3f0b9652fba63f188a0599f8842c7b Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Mon, 22 Jun 2009 11:35:37 +0000 Subject: Drastic performance and stability increases. --- UICaboodle/BrowserView.h | 2 ++ UICaboodle/BrowserView.mm | 48 ++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 5 deletions(-) (limited to 'UICaboodle') diff --git a/UICaboodle/BrowserView.h b/UICaboodle/BrowserView.h index f1a9dbc..bd956b8 100644 --- a/UICaboodle/BrowserView.h +++ b/UICaboodle/BrowserView.h @@ -80,6 +80,8 @@ Class class_; } ++ (void) _initialize; + - (void) alertSheet:(UIActionSheet *)sheet buttonClicked:(int)button; - (void) loadURL:(NSURL *)url cachePolicy:(NSURLRequestCachePolicy)policy; diff --git a/UICaboodle/BrowserView.mm b/UICaboodle/BrowserView.mm index b99c2d2..e08c291 100644 --- a/UICaboodle/BrowserView.mm +++ b/UICaboodle/BrowserView.mm @@ -6,6 +6,7 @@ extern NSString * const kCAFilterNearest; #include +#include #include "substrate.h" @@ -209,12 +210,28 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( /* }}} */ #endif +#define ShowInternals 0 +#define LogBrowser 0 + +#define lprintf(args...) fprintf(stderr, args) + @implementation BrowserView #if ShowInternals -#include "Internals.h" +#include "UICaboodle/UCInternal.h" #endif ++ (void) _initialize { + NSLog(@"INITIALIZING"); + [WebView enableWebThread]; + + WebPreferences *preferences([WebPreferences standardPreferences]); + [preferences setCacheModel:WebCacheModelDocumentBrowser]; + [preferences setOfflineWebApplicationCacheEnabled:YES]; + + [WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]; +} + - (void) dealloc { #if LogBrowser NSLog(@"[BrowserView dealloc]"); @@ -232,9 +249,8 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( [webview setScriptDebugDelegate:nil]; [webview setPolicyDelegate:nil]; - [webview setDownloadDelegate:nil]; - /* XXX: these are set by UIWebDocumentView + [webview setDownloadDelegate:nil]; [webview _setFormDelegate:nil]; [webview _setUIKitDelegate:nil]; [webview setEditingDelegate:nil];*/ @@ -425,6 +441,13 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( return false; } +- (void) formAssistant:(id)sender didBeginEditingFormNode:(id)node { +} + +- (void) formAssistant:(id)sender didEndEditingFormNode:(id)node { + [self fixScroller]; +} + - (void) webViewShow:(WebView *)sender { /* XXX: this is where I cry myself to sleep */ } @@ -1214,17 +1237,25 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( [webview_ setTileSize:CGSizeMake(webrect.size.width, 500)]; + if ([webview_ respondsToSelector:@selector(enableReachability)]) + [webview_ enableReachability]; + [webview_ setAllowsMessaging:YES]; + if ([webview_ respondsToSelector:@selector(useSelectionAssistantWithMode:)]) + [webview_ useSelectionAssistantWithMode:0]; + [webview_ setTilingEnabled:YES]; [webview_ setDrawsGrid:NO]; [webview_ setLogsTilingChanges:NO]; [webview_ setTileMinificationFilter:kCAFilterNearest]; + if ([webview_ respondsToSelector:@selector(setDataDetectorTypes:)]) /* XXX: abstractify */ [webview_ setDataDetectorTypes:0x80000000]; else [webview_ setDetectsPhoneNumbers:NO]; + [webview_ setAutoresizes:YES]; [webview_ setMinimumScale:0.25f forDocumentTypes:0x10]; @@ -1252,8 +1283,13 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( [webview _setUsesLoaderCache:YES]; [webview setGroupName:@"CydiaGroup"]; + + WebPreferences *preferences([webview preferences]); + if ([webview respondsToSelector:@selector(_setLayoutInterval:)]) [webview _setLayoutInterval:0]; + else + [preferences _setLayoutInterval:0]; } [self setViewportWidth:width]; @@ -1270,10 +1306,12 @@ UIActionSheet *mailAlertSheet = [[UIActionSheet alloc] initWithTitle:UCLocalize( indirect_ = [[IndirectDelegate alloc] initWithDelegate:self]; [webview setFrameLoadDelegate:indirect_]; + [webview setPolicyDelegate:indirect_]; [webview setResourceLoadDelegate:indirect_]; [webview setUIDelegate:indirect_]; - [webview setScriptDebugDelegate:indirect_]; - [webview setPolicyDelegate:indirect_]; + + /* XXX: do not turn this on under penalty of extreme pain */ + [webview setScriptDebugDelegate:nil]; WebThreadUnlock(); -- cgit v1.2.3