[Webkit-unassigned] [Bug 44280] Add modifier key info to policy client functions in WebKit2
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Aug 19 11:56:56 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=44280
Adam Roben (aroben) <aroben at apple.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #64883|review? |review+
Flag| |
--- Comment #2 from Adam Roben (aroben) <aroben at apple.com> 2010-08-19 11:56:56 PST ---
(From update of attachment 64883)
> @@ -521,21 +521,23 @@ void WebPageProxy::didReceiveMessage(Cor
> case WebPageProxyMessage::DecidePolicyForNavigationAction: {
> uint64_t frameID;
> uint32_t navigationType;
> + uint32_t modifiers;
> String url;
> uint64_t listenerID;
> - if (!arguments->decode(CoreIPC::Out(frameID, navigationType, url, listenerID)))
> + if (!arguments->decode(CoreIPC::Out(frameID, navigationType, modifiers, url, listenerID)))
> return;
> - decidePolicyForNavigationAction(webFrame(frameID), static_cast<NavigationType>(navigationType), url, listenerID);
> + decidePolicyForNavigationAction(webFrame(frameID), static_cast<NavigationType>(navigationType), static_cast<WebEvent::Modifiers>(modifiers), url, listenerID);
> break;
> }
> case WebPageProxyMessage::DecidePolicyForNewWindowAction: {
> uint64_t frameID;
> uint32_t navigationType;
> + uint32_t modifiers;
Can we use WebEvent::Modifiers here?
> +static uint32_t modifiersForNavigationAction(const NavigationAction& navigationAction)
> +{
> + uint32_t modifiers = 0;
> + if (const UIEventWithKeyState* keyStateEvent = findEventWithKeyState(const_cast<Event*>(navigationAction.event()))) {
> + if (keyStateEvent->shiftKey())
> + modifiers |= WebEvent::ShiftKey;
> + if (keyStateEvent->ctrlKey())
> + modifiers |= WebEvent::ControlKey;
> + if (keyStateEvent->altKey())
> + modifiers |= WebEvent::AltKey;
> + if (keyStateEvent->metaKey())
> + modifiers |= WebEvent::MetaKey;
> + }
> +
> + return modifiers;
> +}
And here?
> void WebFrameLoaderClient::dispatchDecidePolicyForMIMEType(FramePolicyFunction function, const String& MIMEType, const ResourceRequest& request)
> {
> WebPage* webPage = m_frame->page();
> @@ -436,8 +455,10 @@ void WebFrameLoaderClient::dispatchDecid
> // FIXME: Pass the frame name.
> const String& url = request.url().string(); // FIXME: Pass entire request.
>
> + uint32_t modifiers = modifiersForNavigationAction(navigationAction);
> +
> WebProcess::shared().connection()->send(WebPageProxyMessage::DecidePolicyForNewWindowAction, webPage->pageID(),
> - CoreIPC::In(m_frame->frameID(), (uint32_t)navigationAction.type(), url, listenerID));
> + CoreIPC::In(m_frame->frameID(), (uint32_t)navigationAction.type(), modifiers, url, listenerID));
> }
And here?
> void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState>)
> @@ -451,8 +472,10 @@ void WebFrameLoaderClient::dispatchDecid
> // FIXME: Pass more than just the navigation action type.
> const String& url = request.url().string(); // FIXME: Pass entire request.
>
> + uint32_t modifiers = modifiersForNavigationAction(navigationAction);
> +
> WebProcess::shared().connection()->send(WebPageProxyMessage::DecidePolicyForNavigationAction, webPage->pageID(),
> - CoreIPC::In(m_frame->frameID(), (uint32_t)navigationAction.type(), url, listenerID));
> + CoreIPC::In(m_frame->frameID(), (uint32_t)navigationAction.type(), modifiers, url, listenerID));
> }
And here?
r=me
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list