[Webkit-unassigned] [Bug 24594] New: FrameLoaderClient::dispatchDecidePolicyForNavigationAction() always called w/ NavigationAction::type() == NavigationTypeOther

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Mar 13 18:28:41 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=24594

           Summary: FrameLoaderClient::dispatchDecidePolicyForNavigationActi
                    on() always called w/ NavigationAction::type() ==
                    NavigationTypeOther
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh
        OS/Version: Mac OS X 10.5
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Page Loading
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: bolsinga at apple.com


FrameLoaderClient::dispatchDecidePolicyForNavigationAction() always called w/
NavigationAction::type() == NavigationTypeOther

This causes policy delegates to not be able to determine the action type.

It appears that this comes from the code path
FrameLoader::loadWithDocumentLoader(), when not scrolling to an anchor. In this
code path, the DocumentLoader::triggeringAction().isEmpty is true, and this is
where the 'other' comes from.

Add the following patch to the MiniBrowser project. You'll see that the
WebActionNavigationTypeKey is always 5, which is WebNavigationTypeOther.

Index: MyDocument.m
===================================================================
--- MyDocument.m        (revision 20870)
+++ MyDocument.m        (working copy)
@@ -128,6 +128,7 @@
     [webView setFrameLoadDelegate:self];
     [webView setUIDelegate:self];
     [webView setResourceLoadDelegate:self];
+    [webView setPolicyDelegate:self];

     // Load a default URL
     NSURL *URL = URLToLoad != nil ? URLToLoad : [NSURL
URLWithString:@"http://www.apple.com"];
@@ -298,7 +299,16 @@
     [self updateResourceStatus];
 }

+- (void)webView:(WebView *)webView
decidePolicyForNavigationAction:(NSDictionary *)actionInformation
+                                                          
request:(NSURLRequest *)request
+                                                             frame:(WebFrame
*)frame
+                                                 
decisionListener:(id<WebPolicyDecisionListener>)listener
+{
+    NSLog(@"%@", actionInformation);
+    [listener use];
+}

+
 // History Methods

 - (void)goToHistoryItem:(id)historyItem


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list