Skip to content

Commit

Permalink
WebCore:
Browse files Browse the repository at this point in the history
2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - added FormState argument to action policy functions

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkNewWindowPolicy):
        (WebCore::FrameLoader::checkNavigationPolicy):
        * loader/FrameLoaderClient.h:
        * svg/graphics/SVGImageEmptyClients.h:
        (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
        (WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

WebKit/gtk:

2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - updated for addition of FormState argument to action policy functions

        * WebCoreSupport/FrameLoaderClientGtk.cpp:
        (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
        (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):

WebKit/mac:

2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - updated for addition of FormState argument to action policy functions
        - added WebActionFormKey

        * WebCoreSupport/WebFrameLoaderClient.h:
        * WebCoreSupport/WebFrameLoaderClient.mm:
        (WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
        (WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
        (WebFrameLoaderClient::actionDictionary):
        * WebKit.exp:
        * WebView/WebPolicyDelegate.mm:
        * WebView/WebPolicyDelegatePrivate.h:

WebKit/qt:

2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - updated for addition of FormState argument to action policy functions

        * WebCoreSupport/FrameLoaderClientQt.cpp:
        (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction):
        (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):

WebKit/win:

2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - updated for addition of FormState argument to action policy functions
        - added WebActionFormKey

        * Interfaces/IWebPolicyDelegate.idl:
        * WebActionPropertyBag.cpp:
        (WebActionPropertyBag::WebActionPropertyBag):
        (WebActionPropertyBag::createInstance):
        (WebActionPropertyBag::AddRef):
        (WebActionPropertyBag::Release):
        (WebActionPropertyBag::Read):
        * WebActionPropertyBag.h:
        * WebFrame.cpp:
        (WebFrame::dispatchDecidePolicyForNewWindowAction):
        (WebFrame::dispatchDecidePolicyForNavigationAction):

WebKit/wx:

2008-06-13  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        - updated for addition of FormState argument to action policy functions

        * WebKitSupport/FrameLoaderClientWx.cpp:
        (WebCore::FrameLoaderClientWx::dispatchDecidePolicyForNewWindowAction):
        (WebCore::FrameLoaderClientWx::dispatchDecidePolicyForNavigationAction):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
darin@apple.com committed Jun 13, 2008
1 parent 49d3096 commit f6b094c
Show file tree
Hide file tree
Showing 21 changed files with 168 additions and 76 deletions.
14 changes: 14 additions & 0 deletions WebCore/ChangeLog
@@ -1,3 +1,17 @@
2008-06-13 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

- added FormState argument to action policy functions

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkNewWindowPolicy):
(WebCore::FrameLoader::checkNavigationPolicy):
* loader/FrameLoaderClient.h:
* svg/graphics/SVGImageEmptyClients.h:
(WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebCore::SVGEmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

2008-06-13 Justin Garcia <justin.garcia@apple.com>

Reviewed by Jess.
Expand Down
6 changes: 3 additions & 3 deletions WebCore/loader/FrameLoader.cpp
Expand Up @@ -3621,7 +3621,7 @@ void FrameLoader::checkNewWindowPolicy(const NavigationAction& action, const Res
m_policyCheck.set(request, formState, frameName,
callContinueLoadAfterNewWindowPolicy, this);
m_client->dispatchDecidePolicyForNewWindowAction(&FrameLoader::continueAfterNewWindowPolicy,
action, request, frameName);
action, request, formState, frameName);
}

void FrameLoader::continueAfterNewWindowPolicy(PolicyAction policy)
Expand Down Expand Up @@ -3672,11 +3672,11 @@ void FrameLoader::checkNavigationPolicy(const ResourceRequest& request, Document

loader->setLastCheckedRequest(request);

m_policyCheck.set(request, formState, function, argument);
m_policyCheck.set(request, formState.get(), function, argument);

m_delegateIsDecidingNavigationPolicy = true;
m_client->dispatchDecidePolicyForNavigationAction(&FrameLoader::continueAfterNavigationPolicy,
action, request);
action, request, formState);
m_delegateIsDecidingNavigationPolicy = false;
}

Expand Down
4 changes: 2 additions & 2 deletions WebCore/loader/FrameLoaderClient.h
Expand Up @@ -119,8 +119,8 @@ namespace WebCore {
virtual void dispatchShow() = 0;

virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&) = 0;
virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, const String& frameName) = 0;
virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&) = 0;
virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName) = 0;
virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>) = 0;
virtual void cancelPolicyCheck() = 0;

virtual void dispatchUnableToImplementPolicy(const ResourceError&) = 0;
Expand Down
4 changes: 2 additions & 2 deletions WebCore/svg/graphics/SVGImageEmptyClients.h
Expand Up @@ -178,8 +178,8 @@ class SVGEmptyFrameLoaderClient : public FrameLoaderClient {
virtual void dispatchShow() { }

virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&) { }
virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, const String& frameName) { }
virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&) { }
virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String& frameName) { }
virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>) { }
virtual void cancelPolicyCheck() { }

virtual void dispatchUnableToImplementPolicy(const ResourceError&) { }
Expand Down
10 changes: 10 additions & 0 deletions WebKit/gtk/ChangeLog
@@ -1,3 +1,13 @@
2008-06-13 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

- updated for addition of FormState argument to action policy functions

* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):

2008-06-10 Christian Dywan <christian@twotoasts.de>

Reviewed by Alp Toker and Darin Adler.
Expand Down
6 changes: 3 additions & 3 deletions WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
Expand Up @@ -153,7 +153,7 @@ WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClient::createDocumentLoader
return loader.release();
}

void FrameLoaderClient::dispatchWillSubmitForm(FramePolicyFunction policyFunction, PassRefPtr<FormState>)
void FrameLoaderClient::dispatchWillSubmitForm(FramePolicyFunction policyFunction, PassRefPtr<FormState>)
{
// FIXME: This is surely too simple
ASSERT(policyFunction);
Expand Down Expand Up @@ -252,7 +252,7 @@ void FrameLoaderClient::dispatchDecidePolicyForMIMEType(FramePolicyFunction poli
(core(m_frame)->loader()->*policyFunction)(PolicyUse);
}

void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction&, const ResourceRequest&, const String&)
void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction&, const ResourceRequest&, PassRefPtr<FormState>, const String&)
{
ASSERT(policyFunction);
if (!policyFunction)
Expand All @@ -262,7 +262,7 @@ void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFuncti
(core(m_frame)->loader()->*policyFunction)(PolicyIgnore);
}

void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest)
void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>)
{
ASSERT(policyFunction);
if (!policyFunction)
Expand Down
16 changes: 16 additions & 0 deletions WebKit/mac/ChangeLog
@@ -1,3 +1,19 @@
2008-06-13 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

- updated for addition of FormState argument to action policy functions
- added WebActionFormKey

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::actionDictionary):
* WebKit.exp:
* WebView/WebPolicyDelegate.mm:
* WebView/WebPolicyDelegatePrivate.h:

2008-06-12 John Sullivan <sullivan@apple.com>

Reviewed by Dan and Darin
Expand Down
6 changes: 3 additions & 3 deletions WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
Expand Up @@ -109,9 +109,9 @@ class WebFrameLoaderClient : public WebCore::FrameLoaderClient {
virtual void dispatchDecidePolicyForMIMEType(WebCore::FramePolicyFunction,
const WebCore::String& MIMEType, const WebCore::ResourceRequest&);
virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction,
const WebCore::NavigationAction&, const WebCore::ResourceRequest&, const WebCore::String& frameName);
const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>, const WebCore::String& frameName);
virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction,
const WebCore::NavigationAction&, const WebCore::ResourceRequest&);
const WebCore::NavigationAction&, const WebCore::ResourceRequest&, PassRefPtr<WebCore::FormState>);
virtual void cancelPolicyCheck();

virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&);
Expand Down Expand Up @@ -197,7 +197,7 @@ class WebFrameLoaderClient : public WebCore::FrameLoaderClient {

RetainPtr<WebFramePolicyListener> setUpPolicyListener(WebCore::FramePolicyFunction);

NSDictionary *actionDictionary(const WebCore::NavigationAction&) const;
NSDictionary *actionDictionary(const WebCore::NavigationAction&, PassRefPtr<WebCore::FormState>) const;

virtual bool canCachePage() const;

Expand Down
41 changes: 23 additions & 18 deletions WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
Expand Up @@ -585,22 +585,22 @@ - (void)invalidate;
}

void WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function,
const NavigationAction& action, const ResourceRequest& request, const String& frameName)
const NavigationAction& action, const ResourceRequest& request, PassRefPtr<FormState> formState, const String& frameName)
{
WebView *webView = getWebView(m_webFrame.get());
[[webView _policyDelegateForwarder] webView:webView
decidePolicyForNewWindowAction:actionDictionary(action)
decidePolicyForNewWindowAction:actionDictionary(action, formState)
request:request.nsURLRequest()
newFrameName:frameName
decisionListener:setUpPolicyListener(function).get()];
}

void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function,
const NavigationAction& action, const ResourceRequest& request)
const NavigationAction& action, const ResourceRequest& request, PassRefPtr<FormState> formState)
{
WebView *webView = getWebView(m_webFrame.get());
[[webView _policyDelegateForwarder] webView:webView
decidePolicyForNavigationAction:actionDictionary(action)
decidePolicyForNavigationAction:actionDictionary(action, formState)
request:request.nsURLRequest()
frame:m_webFrame.get()
decisionListener:setUpPolicyListener(function).get()];
Expand Down Expand Up @@ -1014,7 +1014,7 @@ - (void)invalidate;
return 0;
}

NSDictionary *WebFrameLoaderClient::actionDictionary(const NavigationAction& action) const
NSDictionary *WebFrameLoaderClient::actionDictionary(const NavigationAction& action, PassRefPtr<FormState> formState) const
{
unsigned modifierFlags = 0;
const Event* event = action.event();
Expand All @@ -1028,26 +1028,31 @@ - (void)invalidate;
if (keyStateEvent->metaKey())
modifierFlags |= NSCommandKeyMask;
}

NSURL *originalURL = action.url();

NSMutableDictionary *result = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:action.type()], WebActionNavigationTypeKey,
[NSNumber numberWithInt:modifierFlags], WebActionModifierFlagsKey,
originalURL, WebActionOriginalURLKey,
nil];

if (const MouseEvent* mouseEvent = findMouseEvent(event)) {
IntPoint point(mouseEvent->pageX(), mouseEvent->pageY());
WebElementDictionary *element = [[WebElementDictionary alloc]
initWithHitTestResult:core(m_webFrame.get())->eventHandler()->hitTestResultAtPoint(point, false)];
NSDictionary *result = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:action.type()], WebActionNavigationTypeKey,
element, WebActionElementKey,
[NSNumber numberWithInt:mouseEvent->button()], WebActionButtonKey,
[NSNumber numberWithInt:modifierFlags], WebActionModifierFlagsKey,
originalURL, WebActionOriginalURLKey,
nil];
[result setObject:element forKey:WebActionElementKey];
[element release];
return result;

[result setObject:[NSNumber numberWithInt:mouseEvent->button()] forKey:WebActionButtonKey];
}
return [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:action.type()], WebActionNavigationTypeKey,
[NSNumber numberWithInt:modifierFlags], WebActionModifierFlagsKey,
originalURL, WebActionOriginalURLKey,
nil];

if (formState) {
ASSERT(formState->form());
[result setObject:kit(formState->form()) forKey:WebActionFormKey];
}

return result;
}

bool WebFrameLoaderClient::canCachePage() const
Expand Down
1 change: 1 addition & 0 deletions WebKit/mac/WebKit.exp
Expand Up @@ -34,6 +34,7 @@ _HIWebViewCreate
_HIWebViewGetWebView
_WebActionButtonKey
_WebActionElementKey
_WebActionFormKey
_WebActionModifierFlagsKey
_WebActionNavigationTypeKey
_WebActionOriginalURLKey
Expand Down
7 changes: 4 additions & 3 deletions WebKit/mac/WebView/WebPolicyDelegate.mm
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005, 2006 Apple Computer, Inc. All rights reserved.
* Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand Down Expand Up @@ -33,10 +33,11 @@

using namespace WebCore;

NSString *WebActionNavigationTypeKey = @"WebActionNavigationTypeKey";
NSString *WebActionElementKey = @"WebActionElementKey";
NSString *WebActionButtonKey = @"WebActionButtonKey";
NSString *WebActionElementKey = @"WebActionElementKey";
NSString *WebActionFormKey = @"WebActionFormKey";
NSString *WebActionModifierFlagsKey = @"WebActionModifierFlagsKey";
NSString *WebActionNavigationTypeKey = @"WebActionNavigationTypeKey";
NSString *WebActionOriginalURLKey = @"WebActionOriginalURLKey";

@interface WebPolicyDecisionListenerPrivate : NSObject
Expand Down
4 changes: 3 additions & 1 deletion WebKit/mac/WebView/WebPolicyDelegatePrivate.h
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005 Apple Computer, Inc. All rights reserved.
* Copyright (C) 2005, 2008 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Expand Down Expand Up @@ -31,6 +31,8 @@
@class WebHistoryItem;
@class WebPolicyDecisionListenerPrivate;

extern NSString *WebActionFormKey; // HTMLFormElement

typedef enum {
WebNavigationTypePlugInRequest = WebNavigationTypeOther + 1
} WebExtraNavigationType;
Expand Down
10 changes: 10 additions & 0 deletions WebKit/qt/ChangeLog
@@ -1,3 +1,13 @@
2008-06-13 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

- updated for addition of FormState argument to action policy functions

* WebCoreSupport/FrameLoaderClientQt.cpp:
(WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction):
(WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):

2008-06-11 Ariya Hidayat <ariya.hidayat@trolltech.com>

Reviewed by Simon.
Expand Down
4 changes: 2 additions & 2 deletions WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
Expand Up @@ -872,7 +872,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForMIMEType(FramePolicyFunction fu
slotCallPolicyFunction(PolicyDownload);
}

void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, const WebCore::String&)
void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>, const WebCore::String&)
{
Q_ASSERT(!m_policyFunction);
Q_ASSERT(m_webFrame);
Expand All @@ -893,7 +893,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNewWindowAction(FramePolicyFunc
slotCallPolicyFunction(PolicyUse);
}

void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request)
void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const WebCore::NavigationAction& action, const WebCore::ResourceRequest& request, PassRefPtr<WebCore::FormState>)
{
Q_ASSERT(!m_policyFunction);
Q_ASSERT(m_webFrame);
Expand Down
19 changes: 19 additions & 0 deletions WebKit/win/ChangeLog
@@ -1,3 +1,22 @@
2008-06-13 Darin Adler <darin@apple.com>

Reviewed by John Sullivan.

- updated for addition of FormState argument to action policy functions
- added WebActionFormKey

* Interfaces/IWebPolicyDelegate.idl:
* WebActionPropertyBag.cpp:
(WebActionPropertyBag::WebActionPropertyBag):
(WebActionPropertyBag::createInstance):
(WebActionPropertyBag::AddRef):
(WebActionPropertyBag::Release):
(WebActionPropertyBag::Read):
* WebActionPropertyBag.h:
* WebFrame.cpp:
(WebFrame::dispatchDecidePolicyForNewWindowAction):
(WebFrame::dispatchDecidePolicyForNavigationAction):

2008-06-07 Darin Adler <darin@apple.com>

Reviewed by Mitz.
Expand Down
13 changes: 3 additions & 10 deletions WebKit/win/Interfaces/IWebPolicyDelegate.idl
Expand Up @@ -57,20 +57,13 @@ typedef enum WebNavigationType {
WebNavigationTypeOther
} WebNavigationType;

cpp_quote("#define WebActionNavigationTypeKey TEXT(\"WebActionNavigationTypeKey\")")
cpp_quote("#define WebActionElementKey TEXT(\"WebActionElementKey\")")
cpp_quote("#define WebActionButtonKey TEXT(\"WebActionButtonKey\")")
cpp_quote("#define WebActionElementKey TEXT(\"WebActionElementKey\")")
cpp_quote("#define WebActionFormKey TEXT(\"WebActionFormKey\")")
cpp_quote("#define WebActionModifierFlagsKey TEXT(\"WebActionModifierFlagsKey\")")
cpp_quote("#define WebActionNavigationTypeKey TEXT(\"WebActionNavigationTypeKey\")")
cpp_quote("#define WebActionOriginalURLKey TEXT(\"WebActionOriginalURLKey\")")

/*
extern NSString *WebActionNavigationTypeKey; // NSNumber (WebNavigationType)
extern NSString *WebActionElementKey; // NSDictionary of element info
extern NSString *WebActionButtonKey; // NSEventType
extern NSString *WebActionModifierFlagsKey; // NSNumber (unsigned)
extern NSString *WebActionOriginalURLKey; // NSURL
*/

/*!
@protocol WebPolicyDecisionListener
@discussion This protocol is used to call back with the results of a
Expand Down

0 comments on commit f6b094c

Please sign in to comment.