[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

enrica at apple.com enrica at apple.com
Wed Dec 22 13:45:37 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 83b2177c7dfa6a2bae750bc23a2372a04f6e01a3
Author: enrica at apple.com <enrica at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Sep 25 01:36:41 2010 +0000

    Maui: Pasteboard support (42317)
    <rdar://problem/7660537>
    https://bugs.webkit.org/show_bug.cgi?id=42317
    
    Reviewed by Darin Adler.
    
    This is the final piece of the pasteboard support for WebKit2.
    The menu validation has been hooked up for Mac. The validation is
    performed asynchronously and the menu entries updated while the menu
    is visible. I've created a generic mechanism to call editing commands
    that will make it easy to add new commands we will support in the future.
    The commands supported now are copy, cut, paste, pasteAsPlainText, delete
    and selectAll.
    
    * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added DidValidateMenuItem.
    * UIProcess/API/mac/PageClientImpl.h: Added setEditCommandState.
    * UIProcess/API/mac/PageClientImpl.mm: Added setEditCommandState implementation.
    (WebKit::PageClientImpl::setEditCommandState): Added.
    * UIProcess/API/mac/WKView.mm:
    (WebCore::MenuItemInfo::MenuItemInfo):
    (-[WKView initWithFrame:pageNamespaceRef:]):
    (createSelectorExceptionMap): Added.
    (commandNameForSelector): Added.
    (-[WKView validateUserInterfaceItem:]): Added implementation.
    (-[WKView _setUserInterfaceItemState:enabled:state:]): Added.
    * UIProcess/API/mac/WKViewInternal.h:
    * UIProcess/PageClient.h:
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::validateMenuItem):
    (WebKit::WebPageProxy::executeEditCommand):
    (WebKit::WebPageProxy::didReceiveMessage): Now processing also
    DidValidateMenuItem.
    * UIProcess/WebPageProxy.h:
    * WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::executeEditingCommand): Fixed.
    (WebKit::WebPage::isEditingCommandEnabled): Fixed.
    (WebKit::WebPage::validateMenuItem): Added.
    (WebKit::WebPage::executeEditCommand): Added.
    * WebProcess/WebPage/WebPage.h: Removed cut, copy, paste, selectAll.
    Added validateMenuItem and executeEditCommand.
    * WebProcess/WebPage/WebPage.messages.in: Added new messages.
    * UIProcess/API/qt/qwkpage.cpp:
    (WebKit::QWKPage::setEditCommandState): Added.
    * UIProcess/API/qt/qwkpage_p.h: Added
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68318 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 44f0479..3eafaae 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,51 @@
+2010-09-24  Enrica Casucci  <enrica at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Maui: Pasteboard support (42317)
+        <rdar://problem/7660537>
+        https://bugs.webkit.org/show_bug.cgi?id=42317
+        
+        This is the final piece of the pasteboard support for WebKit2.
+        The menu validation has been hooked up for Mac. The validation is
+        performed asynchronously and the menu entries updated while the menu
+        is visible. I've created a generic mechanism to call editing commands
+        that will make it easy to add new commands we will support in the future.
+        The commands supported now are copy, cut, paste, pasteAsPlainText, delete
+        and selectAll.
+
+        * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added DidValidateMenuItem.
+        * UIProcess/API/mac/PageClientImpl.h: Added setEditCommandState.
+        * UIProcess/API/mac/PageClientImpl.mm: Added setEditCommandState implementation.
+        (WebKit::PageClientImpl::setEditCommandState): Added.
+        * UIProcess/API/mac/WKView.mm:
+        (WebCore::MenuItemInfo::MenuItemInfo):
+        (-[WKView initWithFrame:pageNamespaceRef:]):
+        (createSelectorExceptionMap): Added.
+        (commandNameForSelector): Added.
+        (-[WKView validateUserInterfaceItem:]): Added implementation.
+        (-[WKView _setUserInterfaceItemState:enabled:state:]): Added.
+        * UIProcess/API/mac/WKViewInternal.h:
+        * UIProcess/PageClient.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::validateMenuItem):
+        (WebKit::WebPageProxy::executeEditCommand):
+        (WebKit::WebPageProxy::didReceiveMessage): Now processing also
+        DidValidateMenuItem.
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::executeEditingCommand): Fixed.
+        (WebKit::WebPage::isEditingCommandEnabled): Fixed.
+        (WebKit::WebPage::validateMenuItem): Added.
+        (WebKit::WebPage::executeEditCommand): Added.
+        * WebProcess/WebPage/WebPage.h: Removed cut, copy, paste, selectAll.
+        Added validateMenuItem and executeEditCommand.
+        * WebProcess/WebPage/WebPage.messages.in: Added new messages.
+        * UIProcess/API/qt/qwkpage.cpp:
+        (WebKit::QWKPage::setEditCommandState): Added.
+        * UIProcess/API/qt/qwkpage_p.h: Added 
+        
+
 2010-09-24  Anders Carlsson  <andersca at apple.com>
 
         Build fix.
diff --git a/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h b/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h
index 4bf4345..995e19d 100644
--- a/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h
+++ b/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h
@@ -65,6 +65,7 @@ enum Kind {
     DidSetFrame,
     DidStartProgress,
     DidStartProvisionalLoadForFrame,
+    DidValidateMenuItem,
     SetCursor,
     SetStatusText,
     SetToolTip,
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.h b/WebKit2/UIProcess/API/mac/PageClientImpl.h
index a3b3350..f45ad71 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.h
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.h
@@ -54,6 +54,7 @@ private:
 
     void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo);
     void clearAllEditCommands();
+    void setEditCommandState(const String& commandName, bool isEnabled, int state);
 
 #if USE(ACCELERATED_COMPOSITING)
     void pageDidEnterAcceleratedCompositing();
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.mm b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
index de0204d..ff428b5 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.mm
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
@@ -201,6 +201,11 @@ void PageClientImpl::clearAllEditCommands()
     [[m_wkView undoManager] removeAllActionsWithTarget:m_undoTarget.get()];
 }
 
+void PageClientImpl::setEditCommandState(const String& commandName, bool isEnabled, int newState)
+{
+    [m_wkView _setUserInterfaceItemState:commandName enabled:isEnabled state:newState];
+}
+
 #if USE(ACCELERATED_COMPOSITING)
 void PageClientImpl::pageDidEnterAcceleratedCompositing()
 {
diff --git a/WebKit2/UIProcess/API/mac/WKView.mm b/WebKit2/UIProcess/API/mac/WKView.mm
index c275696..f97f82c 100644
--- a/WebKit2/UIProcess/API/mac/WKView.mm
+++ b/WebKit2/UIProcess/API/mac/WKView.mm
@@ -43,10 +43,18 @@
 #import <QuartzCore/QuartzCore.h>
 #import <WebCore/IntRect.h>
 #import <wtf/RefPtr.h>
+#import <wtf/RetainPtr.h>
 
 using namespace WebKit;
 using namespace WebCore;
 
+struct EditCommandState {
+    EditCommandState() : m_isEnabled(false), m_state(0) {};
+    EditCommandState(bool isEnabled, int state) : m_isEnabled(isEnabled), m_state(state) { }
+    bool m_isEnabled;
+    int m_state;
+};
+
 @interface WKViewData : NSObject {
 @public
     OwnPtr<PageClientImpl> _pageClient;
@@ -60,6 +68,12 @@ using namespace WebCore;
 #if USE(ACCELERATED_COMPOSITING)
     NSView *_layerHostingView;
 #endif
+    // For Menus.
+    int _menuEntriesCount;
+    Vector<RetainPtr<NSMenu> > _menuList;
+    bool _isPerformingUpdate;
+    
+    HashMap<String, EditCommandState> _menuMap;
 }
 @end
 
@@ -91,6 +105,9 @@ using namespace WebCore;
     _data->_page->setDrawingArea(ChunkedUpdateDrawingAreaProxy::create(self));
     _data->_page->initializeWebPage(IntSize(frame.size));
     _data->_page->setIsInWindow([self window]);
+    
+    _data->_menuEntriesCount = 0;
+    _data->_isPerformingUpdate = false;
 
     return self;
 }
@@ -147,32 +164,82 @@ using namespace WebCore;
     _data->_page->drawingArea()->setSize(IntSize(size));
 }
 
-- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
+typedef HashMap<SEL, String> SelectorNameMap;
+
+// Map selectors into Editor command names.
+// This is not needed for any selectors that have the same name as the Editor command.
+static const SelectorNameMap* createSelectorExceptionMap()
 {
-    // FIXME: this needs to be implemented
-    return YES;
+    SelectorNameMap* map = new HashMap<SEL, String>;
+    
+    map->add(@selector(insertNewlineIgnoringFieldEditor:), "InsertNewline");
+    map->add(@selector(insertParagraphSeparator:), "InsertNewline");
+    map->add(@selector(insertTabIgnoringFieldEditor:), "InsertTab");
+    map->add(@selector(pageDown:), "MovePageDown");
+    map->add(@selector(pageDownAndModifySelection:), "MovePageDownAndModifySelection");
+    map->add(@selector(pageUp:), "MovePageUp");
+    map->add(@selector(pageUpAndModifySelection:), "MovePageUpAndModifySelection");
+    
+    return map;
+}
+
+static String commandNameForSelector(SEL selector)
+{
+    // Check the exception map first.
+    static const SelectorNameMap* exceptionMap = createSelectorExceptionMap();
+    SelectorNameMap::const_iterator it = exceptionMap->find(selector);
+    if (it != exceptionMap->end())
+        return it->second;
+    
+    // Remove the trailing colon.
+    // No need to capitalize the command name since Editor command names are
+    // not case sensitive.
+    const char* selectorName = sel_getName(selector);
+    size_t selectorNameLength = strlen(selectorName);
+    if (selectorNameLength < 2 || selectorName[selectorNameLength - 1] != ':')
+        return String();
+    return String(selectorName, selectorNameLength - 1);
 }
 
 // Editing commands
+// FIXME: we should add all the commands here as we implement them.
 
-- (void)copy:(id)sender
-{ 
-    _data->_page->copy();
-}
+#define WEBCORE_COMMAND(command) - (void)command:(id)sender { _data->_page->executeEditCommand(commandNameForSelector(_cmd)); }
 
-- (void)cut:(id)sender
-{ 
-    _data->_page->cut();
-}
+WEBCORE_COMMAND(copy)
+WEBCORE_COMMAND(cut)
+WEBCORE_COMMAND(paste)
+WEBCORE_COMMAND(delete)
+WEBCORE_COMMAND(pasteAsPlainText)
+WEBCORE_COMMAND(selectAll)
 
-- (void)paste:(id)sender
-{ 
-    _data->_page->paste();
-}
+#undef WEBCORE_COMMAND
+
+// Menu items validation
 
-- (void)selectAll:(id)sender
+- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
 {
-    _data->_page->selectAll();
+    String commandName = commandNameForSelector([item action]);
+    NSMenuItem *menuItem = (NSMenuItem *)item;
+    if (![menuItem isKindOfClass:[NSMenuItem class]])
+        return NO; // FIXME: We need to be able to handle other user interface elements.
+    
+    RetainPtr<NSMenu> menu = [menuItem menu];
+    if (!_data->_isPerformingUpdate) {
+        if (_data->_menuList.find(menu) == notFound)
+            _data->_menuList.append(menu);
+        _data->_menuMap.add(commandName, EditCommandState(false, 0));
+        _data->_menuEntriesCount++;
+        _data->_page->validateMenuItem(commandName);
+    } else {
+        EditCommandState info = _data->_menuMap.take(commandName);
+        [menuItem setState:info.m_state];
+        if (_data->_menuMap.isEmpty())
+            _data->_isPerformingUpdate = false;
+        return info.m_isEnabled;
+    }
+
+    return NO;
 }
 
 // Events
@@ -414,6 +481,23 @@ static bool isViewVisible(NSView *view)
     [cursor set];
 }
 
+- (void)_setUserInterfaceItemState:(NSString *)commandName enabled:(BOOL)isEnabled state:(int)newState
+{
+    ASSERT(_data->_menuEntriesCount);
+    _data->_menuMap.set(commandName, EditCommandState(isEnabled, newState));
+    if (--_data->_menuEntriesCount)
+        return;
+    
+    // All the menu entries have been validated.
+    // Calling update will trigger the validation
+    // to be performed with the acquired data.
+    _data->_isPerformingUpdate = true;
+    for (size_t i = 0; i < _data->_menuList.size(); i++)
+        [_data->_menuList[i].get() update];
+    
+    _data->_menuList.clear();
+}
+
 // Any non-zero value will do, but using something recognizable might help us debug some day.
 #define TRACKING_RECT_TAG 0xBADFACE
 
diff --git a/WebKit2/UIProcess/API/mac/WKViewInternal.h b/WebKit2/UIProcess/API/mac/WKViewInternal.h
index 3172788..dae42a4 100644
--- a/WebKit2/UIProcess/API/mac/WKViewInternal.h
+++ b/WebKit2/UIProcess/API/mac/WKViewInternal.h
@@ -31,6 +31,7 @@
 - (void)_takeFocus:(BOOL)direction;
 - (void)_toolTipChangedFrom:(NSString *)oldToolTip to:(NSString *)newToolTip;
 - (void)_setCursor:(NSCursor *)cursor;
+- (void)_setUserInterfaceItemState:(NSString *)commandName enabled:(BOOL)isEnabled state:(int)newState;
 
 #if USE(ACCELERATED_COMPOSITING)
 - (void)_startAcceleratedCompositing:(CALayer *)rootLayer;
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index 8ec943f..c702455 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -413,6 +413,10 @@ void QWKPage::setViewportSize(const QSize& size)
         d->page->drawingArea()->setSize(IntSize(size));
 }
 
+void QWKPage::setEditCommandState(const WTF::String&, bool, int)
+{
+}
+
 #ifndef QT_NO_ACTION
 void QWKPage::triggerAction(WebAction action, bool)
 {
diff --git a/WebKit2/UIProcess/API/qt/qwkpage_p.h b/WebKit2/UIProcess/API/qt/qwkpage_p.h
index c10447d..4a471fd 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage_p.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage_p.h
@@ -69,6 +69,7 @@ public:
     void updateAction(QWKPage::WebAction action);
     void updateNavigationActions();
     void updateEditorActions();
+    void setEditCommandState(WTF:String&, bool, int);
 
     void _q_webActionTriggered(bool checked);
 
diff --git a/WebKit2/UIProcess/PageClient.h b/WebKit2/UIProcess/PageClient.h
index 77b4113..efa5718 100644
--- a/WebKit2/UIProcess/PageClient.h
+++ b/WebKit2/UIProcess/PageClient.h
@@ -51,6 +51,7 @@ public:
     enum UndoOrRedo { Undo, Redo };
     virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo) = 0;
     virtual void clearAllEditCommands() = 0;
+    virtual void setEditCommandState(const String& commandName, bool isEnabled, int state) = 0;
 
 #if USE(ACCELERATED_COMPOSITING)
     virtual void pageDidEnterAcceleratedCompositing() = 0;
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index d0aca0f..74c22ea 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -333,36 +333,19 @@ void WebPageProxy::setActive(bool active)
     process()->send(Messages::WebPage::SetActive(active), m_pageID);
 }
 
-void WebPageProxy::selectAll()
+void WebPageProxy::validateMenuItem(const String& commandName)
 {
     if (!isValid())
         return;
-
-    process()->send(Messages::WebPage::SelectAll(), m_pageID);
-}
-
-void WebPageProxy::copy()
-{
-    if (!isValid())
-        return;
-
-    process()->send(Messages::WebPage::Copy(), m_pageID);
-}
-
-void WebPageProxy::cut()
-{
-    if (!isValid())
-        return;
-
-    process()->send(Messages::WebPage::Cut(), m_pageID);
+    process()->send(Messages::WebPage::ValidateMenuItem(commandName), m_pageID);
 }
-
-void WebPageProxy::paste()
+    
+void WebPageProxy::executeEditCommand(const String& commandName)
 {
     if (!isValid())
         return;
 
-    process()->send(Messages::WebPage::Paste(), m_pageID);
+    process()->send(Messages::WebPage::ExecuteEditCommand(commandName), m_pageID);
 }
     
 void WebPageProxy::setIsInWindow(bool isInWindow)
@@ -866,6 +849,15 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
         case WebPageProxyMessage::ClearAllEditCommands:
             clearAllEditCommands();
             break;
+        case WebPageProxyMessage::DidValidateMenuItem: {
+            int state;
+            bool isEnabled;
+            String commandName;
+            if (!arguments->decode(CoreIPC::Out(commandName, isEnabled, state)))
+                return;
+            m_pageClient->setEditCommandState(commandName, isEnabled, state);
+            break;
+        }
         default:
             ASSERT_NOT_REACHED();
             break;
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 98029aa..babc130 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -133,17 +133,15 @@ public:
     void setActive(bool active);
     void setIsInWindow(bool isInWindow);
 
+    void executeEditCommand(const String& commandName);
+    void validateMenuItem(const String& commandName);
+
 // These are only used on Mac currently.
 #if PLATFORM(MAC)
     void setWindowIsVisible(bool windowIsVisible);
     void setWindowFrame(const WebCore::IntRect&);
 #endif
 
-    void selectAll();
-    void copy();
-    void cut();
-    void paste();
-    
     void mouseEvent(const WebMouseEvent&);
     void wheelEvent(const WebWheelEvent&);
     void keyEvent(const WebKeyboardEvent&);
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index b602f37..d3ec1dc 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -218,14 +218,22 @@ String WebPage::renderTreeExternalRepresentation() const
 
 void WebPage::executeEditingCommand(const String& commandName, const String& argument)
 {
-    m_mainFrame->coreFrame()->editor()->command(commandName).execute(argument);
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    if (!frame)
+        return;
+    frame->editor()->command(commandName).execute(argument);
 }
 
 bool WebPage::isEditingCommandEnabled(const String& commandName)
 {
-    return m_mainFrame->coreFrame()->editor()->command(commandName).isEnabled();
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    if (!frame)
+        return false;
+    
+    Editor::Command command = frame->editor()->command(commandName);
+    return command.isSupported() && command.isEnabled();
 }
-
+    
 void WebPage::clearMainFrameName()
 {
     mainFrame()->coreFrame()->tree()->clearName();
@@ -502,30 +510,25 @@ void WebPage::keyEvent(const WebKeyboardEvent& keyboardEvent)
     (void)handled;
 }
 
-void WebPage::selectAll()
+void WebPage::validateMenuItem(const String& commandName)
 {
-    if (m_page->focusController()->focusedOrMainFrame())
-        m_page->focusController()->focusedOrMainFrame()->selection()->selectAll();
-}
-
-void WebPage::copy()
-{
-    if (m_page->focusController()->focusedOrMainFrame())
-        m_page->focusController()->focusedOrMainFrame()->editor()->copy();
+    bool isEnabled = false;
+    int state = 0;
+    Frame* frame = m_page->focusController()->focusedOrMainFrame();
+    if (frame) {
+        Editor::Command command = frame->editor()->command(commandName);
+        state = command.state();
+        isEnabled = command.isSupported() && command.isEnabled();
+    }
+    
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidValidateMenuItem, m_pageID, CoreIPC::In(commandName, isEnabled, state));
 }
 
-void WebPage::cut()
+void WebPage::executeEditCommand(const String& commandName)
 {
-    if (m_page->focusController()->focusedOrMainFrame())
-        m_page->focusController()->focusedOrMainFrame()->editor()->cut();
+    executeEditingCommand(commandName, String());
 }
 
-void WebPage::paste()
-{
-    if (m_page->focusController()->focusedOrMainFrame())
-        m_page->focusController()->focusedOrMainFrame()->editor()->paste();
-}    
-    
 #if ENABLE(TOUCH_EVENTS)
 void WebPage::touchEvent(const WebTouchEvent& touchEvent)
 {
diff --git a/WebKit2/WebProcess/WebPage/WebPage.h b/WebKit2/WebProcess/WebPage/WebPage.h
index 049e91c..6f41720 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/WebKit2/WebProcess/WebPage/WebPage.h
@@ -190,10 +190,8 @@ private:
     void mouseEvent(const WebMouseEvent&);
     void wheelEvent(const WebWheelEvent&);
     void keyEvent(const WebKeyboardEvent&);
-    void selectAll();
-    void copy();
-    void cut();
-    void paste();
+    void validateMenuItem(const String&);
+    void executeEditCommand(const String&);
 #if ENABLE(TOUCH_EVENTS)
     void touchEvent(const WebTouchEvent&);
 #endif
diff --git a/WebKit2/WebProcess/WebPage/WebPage.messages.in b/WebKit2/WebProcess/WebPage/WebPage.messages.in
index c3b88a7..a4918f8 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.messages.in
+++ b/WebKit2/WebProcess/WebPage/WebPage.messages.in
@@ -57,10 +57,8 @@ messages -> WebPage {
     Close()
     TryClose()
 
-    Copy()
-    Cut()
-    Paste()
-    SelectAll()
+    ValidateMenuItem(WTF::String name)
+    ExecuteEditCommand(WTF::String name)
 
     DidRemoveEditCommand(uint64_t commandID)
     ReapplyEditCommand(uint64_t commandID)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list