- Source/WebCore/ChangeLog +14 lines
Lines 1-3 Source/WebCore/ChangeLog_sec1
1
2014-04-16  Dan Bernstein  <mitz@apple.com>
2
3
        WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
4
        https://bugs.webkit.org/show_bug.cgi?id=131783
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * loader/NavigationAction.cpp:
9
        (WebCore::NavigationAction::NavigationAction): Initialize m_processingUserGesture to
10
        ScriptController::processingUserGesture() at the time the NavigationAction is constructed.
11
        * loader/NavigationAction.h:
12
        Added boolean member variable m_processionUserGesture
13
        (WebCore::NavigationAction::processingUserGesture): Added this getter.
14
1
2014-04-16  Alexandru Chiculita  <achicu@adobe.com>
15
2014-04-16  Alexandru Chiculita  <achicu@adobe.com>
2
16
3
        Improve performance of the RenderLayerCompositor::OverlapMap
17
        Improve performance of the RenderLayerCompositor::OverlapMap
- Source/WebCore/loader/NavigationAction.cpp +7 lines
Lines 31-36 Source/WebCore/loader/NavigationAction.cpp_sec1
31
31
32
#include "Event.h"
32
#include "Event.h"
33
#include "FrameLoader.h"
33
#include "FrameLoader.h"
34
#include "ScriptController.h"
34
35
35
namespace WebCore {
36
namespace WebCore {
36
37
Lines 49-66 static NavigationType navigationType(Fra Source/WebCore/loader/NavigationAction.cpp_sec2
49
50
50
NavigationAction::NavigationAction()
51
NavigationAction::NavigationAction()
51
    : m_type(NavigationTypeOther)
52
    : m_type(NavigationTypeOther)
53
    , m_processingUserGesture(ScriptController::processingUserGesture())
52
{
54
{
53
}
55
}
54
56
55
NavigationAction::NavigationAction(const ResourceRequest& resourceRequest)
57
NavigationAction::NavigationAction(const ResourceRequest& resourceRequest)
56
    : m_resourceRequest(resourceRequest)
58
    : m_resourceRequest(resourceRequest)
57
    , m_type(NavigationTypeOther)
59
    , m_type(NavigationTypeOther)
60
    , m_processingUserGesture(ScriptController::processingUserGesture())
58
{
61
{
59
}
62
}
60
63
61
NavigationAction::NavigationAction(const ResourceRequest& resourceRequest, NavigationType type)
64
NavigationAction::NavigationAction(const ResourceRequest& resourceRequest, NavigationType type)
62
    : m_resourceRequest(resourceRequest)
65
    : m_resourceRequest(resourceRequest)
63
    , m_type(type)
66
    , m_type(type)
67
    , m_processingUserGesture(ScriptController::processingUserGesture())
64
{
68
{
65
}
69
}
66
70
Lines 68-73 NavigationAction::NavigationAction(const Source/WebCore/loader/NavigationAction.cpp_sec3
68
        bool isFormSubmission)
72
        bool isFormSubmission)
69
    : m_resourceRequest(resourceRequest)
73
    : m_resourceRequest(resourceRequest)
70
    , m_type(navigationType(frameLoadType, isFormSubmission, 0))
74
    , m_type(navigationType(frameLoadType, isFormSubmission, 0))
75
    , m_processingUserGesture(ScriptController::processingUserGesture())
71
{
76
{
72
}
77
}
73
78
Lines 75-80 NavigationAction::NavigationAction(const Source/WebCore/loader/NavigationAction.cpp_sec4
75
    : m_resourceRequest(resourceRequest)
80
    : m_resourceRequest(resourceRequest)
76
    , m_type(type)
81
    , m_type(type)
77
    , m_event(event)
82
    , m_event(event)
83
    , m_processingUserGesture(ScriptController::processingUserGesture())
78
{
84
{
79
}
85
}
80
86
Lines 83-88 NavigationAction::NavigationAction(const Source/WebCore/loader/NavigationAction.cpp_sec5
83
    : m_resourceRequest(resourceRequest)
89
    : m_resourceRequest(resourceRequest)
84
    , m_type(navigationType(frameLoadType, isFormSubmission, event))
90
    , m_type(navigationType(frameLoadType, isFormSubmission, event))
85
    , m_event(event)
91
    , m_event(event)
92
    , m_processingUserGesture(ScriptController::processingUserGesture())
86
{
93
{
87
}
94
}
88
95
- Source/WebCore/loader/NavigationAction.h +3 lines
Lines 54-63 namespace WebCore { Source/WebCore/loader/NavigationAction.h_sec1
54
        NavigationType type() const { return m_type; }
54
        NavigationType type() const { return m_type; }
55
        const Event* event() const { return m_event.get(); }
55
        const Event* event() const { return m_event.get(); }
56
56
57
        bool processingUserGesture() const { return m_processingUserGesture; }
58
57
    private:
59
    private:
58
        ResourceRequest m_resourceRequest;
60
        ResourceRequest m_resourceRequest;
59
        NavigationType m_type;
61
        NavigationType m_type;
60
        RefPtr<Event> m_event;
62
        RefPtr<Event> m_event;
63
        bool m_processingUserGesture;
61
    };
64
    };
62
65
63
}
66
}
- Source/WebKit2/ChangeLog +14 lines
Lines 1-3 Source/WebKit2/ChangeLog_sec1
1
2014-04-16  Dan Bernstein  <mitz@apple.com>
2
3
        WebKit2 part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
4
        https://bugs.webkit.org/show_bug.cgi?id=131783
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9
        (WebKit::WebChromeClient::createWindow): Set the isProcessingUserGesture field of
10
        the NavigationActionData to the corresponding value in the NavigationAction.
11
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
13
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.
14
1
2014-04-16  Gavin Barraclough  <baraclough@apple.com>
15
2014-04-16  Gavin Barraclough  <baraclough@apple.com>
2
16
3
        On iOS keep network process running using a process assertion rather than a boost
17
        On iOS keep network process running using a process assertion rather than a boost
- Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp -1 / +1 lines
Lines 210-216 Page* WebChromeClient::createWindow(Fram Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp_sec1
210
    navigationActionData.navigationType = navigationAction.type();
210
    navigationActionData.navigationType = navigationAction.type();
211
    navigationActionData.modifiers = InjectedBundleNavigationAction::modifiersForNavigationAction(navigationAction);
211
    navigationActionData.modifiers = InjectedBundleNavigationAction::modifiersForNavigationAction(navigationAction);
212
    navigationActionData.mouseButton = InjectedBundleNavigationAction::mouseButtonForNavigationAction(navigationAction);
212
    navigationActionData.mouseButton = InjectedBundleNavigationAction::mouseButtonForNavigationAction(navigationAction);
213
    navigationActionData.isProcessingUserGesture = ScriptController::processingUserGesture();
213
    navigationActionData.isProcessingUserGesture = navigationAction.processingUserGesture();
214
214
215
    uint64_t newPageID = 0;
215
    uint64_t newPageID = 0;
216
    WebPageCreationParameters parameters;
216
    WebPageCreationParameters parameters;
- Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp -2 / +2 lines
Lines 690-696 void WebFrameLoaderClient::dispatchDecid Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp_sec1
690
    navigationActionData.navigationType = action->navigationType();
690
    navigationActionData.navigationType = action->navigationType();
691
    navigationActionData.modifiers = action->modifiers();
691
    navigationActionData.modifiers = action->modifiers();
692
    navigationActionData.mouseButton = action->mouseButton();
692
    navigationActionData.mouseButton = action->mouseButton();
693
    navigationActionData.isProcessingUserGesture = ScriptController::processingUserGesture();
693
    navigationActionData.isProcessingUserGesture = navigationAction.processingUserGesture();
694
694
695
    webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationActionData, request, frameName, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
695
    webPage->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationActionData, request, frameName, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
696
}
696
}
Lines 744-750 void WebFrameLoaderClient::dispatchDecid Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp_sec2
744
    navigationActionData.navigationType = action->navigationType();
744
    navigationActionData.navigationType = action->navigationType();
745
    navigationActionData.modifiers = action->modifiers();
745
    navigationActionData.modifiers = action->modifiers();
746
    navigationActionData.mouseButton = action->mouseButton();
746
    navigationActionData.mouseButton = action->mouseButton();
747
    navigationActionData.isProcessingUserGesture = ScriptController::processingUserGesture();
747
    navigationActionData.isProcessingUserGesture = navigationAction.processingUserGesture();
748
748
749
    // Notify the UIProcess.
749
    // Notify the UIProcess.
750
    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), navigationActionData, originatingFrame ? originatingFrame->frameID() : 0, navigationAction.resourceRequest(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID)))
750
    if (!webPage->sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), navigationActionData, originatingFrame ? originatingFrame->frameID() : 0, navigationAction.resourceRequest(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, policyAction, downloadID)))

Return to Bug 131783