]> git.saurik.com Git - cydia.git/commitdiff
Fixed some bugs in new window opening.
authorJay Freeman (saurik) <saurik@saurik.com>
Fri, 23 Jan 2009 11:39:31 +0000 (11:39 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Thu, 30 Sep 2010 07:09:39 +0000 (07:09 +0000)
UICaboodle/BrowserView.h
UICaboodle/BrowserView.m

index 632528dac18cbc3e02adae19a371109a08691739..09680e35579ef80a986b727f2bc9df32b9fd37f2 100644 (file)
@@ -68,6 +68,7 @@
 - (void) reloadURL;
 
 - (WebView *) webView;
+- (UIWebDocumentView *) documentView;
 
 - (id) initWithBook:(RVBook *)book;
 
index 1fd14221e1303a378fb5ab7deee0efbcd616cc97..08165235f01a359593a7aa7f7bf06121e1737643 100644 (file)
 
 @implementation BrowserView
 
-#if ForSaurik
+#if ShowInternals
 #include "Internals.h"
 #endif
 
 - (void) dealloc {
+    NSLog(@"deallocating WebView");
+
     if (challenge_ != nil)
         [challenge_ release];
 
 }
 
 - (void) reloadURL {
-    NSLog(@"rlu:%@", request_);
     if (request_ == nil)
         return;
 
     return [webview_ webView];
 }
 
+- (UIWebDocumentView *) documentView {
+    return webview_;
+}
+
 - (void) view:(UIView *)sender didSetFrame:(CGRect)frame {
     [scroller_ setContentSize:frame.size];
 }
 
 - (void) pushPage:(RVPage *)page {
     [page setDelegate:delegate_];
-    [book_ pushPage:page];
     [self setBackButtonTitle:title_];
+    [book_ pushPage:page];
 }
 
 - (BOOL) getSpecial:(NSURL *)url {
     return true;
 }
 
+- (void) webViewShow:(WebView *)sender {
+}
+
 - (void) webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
     UIActionSheet *sheet = [[[UIActionSheet alloc]
         initWithTitle:nil
 }
 
 - (void) webView:(WebView *)sender decidePolicyForNewWindowAction:(NSDictionary *)action request:(NSURLRequest *)request newFrameName:(NSString *)name decisionListener:(id<WebPolicyDecisionListener>)listener {
+    NSLog(@"nwa:%@", name);
+
     if (NSURL *url = [request URL]) {
         if (name == nil) unknown: {
-            NSLog(@"win:%@:%@", url, [action description]);
             if (![self getSpecial:url]) {
                 NSString *scheme([[url scheme] lowercaseString]);
                 if ([scheme isEqualToString:@"mailto"])
 
             RVPage *page([delegate_ pageForURL:url hasTag:NULL]);
             if (page == nil) {
+                /* XXX: call createWebViewWithRequest instead */
+
+                [self setBackButtonTitle:title_];
+
                 BrowserView *browser([[[BrowserView alloc] initWithBook:book] autorelease]);
                 [browser loadURL:url];
                 page = browser;
     return [self _addHeadersToRequest:request];
 }
 
-- (WebView *) _createWebViewWithRequest:(NSURLRequest *)request pushed:(BOOL)pushed {
-    [self setBackButtonTitle:title_];
+- (WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request windowFeatures:(NSDictionary *)features {
+#if ForSaurik
+    NSLog(@"cwv:%@ (%@)", request, title_);
+#endif
 
     BrowserView *browser = [[[BrowserView alloc] initWithBook:book_] autorelease];
-    [browser setDelegate:delegate_];
-
-    if (pushed) {
-        [browser loadRequest:request];
-        [book_ pushPage:browser];
-    }
-
+    [self pushPage:browser];
+    [browser loadRequest:request];
     return [browser webView];
 }
 
 - (WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request {
-    return [self _createWebViewWithRequest:request pushed:(request != nil)];
-}
-
-- (WebView *) webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request windowFeatures:(NSDictionary *)features {
-    return [self _createWebViewWithRequest:request pushed:YES];
+    return [self webView:sender createWebViewWithRequest:request windowFeatures:nil];
 }
 
 - (void) webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame {