Changeset 89939 in webkit


Ignore:
Timestamp:
Jun 28, 2011 9:58:00 AM (13 years ago)
Author:
jhawkins@chromium.org
Message:

2011-06-27 James Hawkins <jhawkins@chromium.org>

Reviewed by Darin Fisher.

[Chromium] Pass an optional WebNode that is the node receiving the context menu action.
https://bugs.webkit.org/show_bug.cgi?id=63503

  • public/WebFrame.h:
  • src/WebFrameImpl.cpp: (WebKit::pluginContainerFromNode): (WebKit::WebFrameImpl::executeCommand): (WebKit::WebFrameImpl::printBegin):
  • src/WebFrameImpl.h:
Location:
trunk/Source/WebKit/chromium
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/chromium/ChangeLog

    r89872 r89939  
     12011-06-27  James Hawkins  <jhawkins@chromium.org>
     2
     3        Reviewed by Darin Fisher.
     4
     5        [Chromium] Pass an optional WebNode that is the node receiving the context menu action.
     6        https://bugs.webkit.org/show_bug.cgi?id=63503
     7
     8        * public/WebFrame.h:
     9        * src/WebFrameImpl.cpp:
     10        (WebKit::pluginContainerFromNode):
     11        (WebKit::WebFrameImpl::executeCommand):
     12        (WebKit::WebFrameImpl::printBegin):
     13        * src/WebFrameImpl.h:
     14
    1152011-06-27  Ryosuke Niwa  <rniwa@webkit.org>
    216
  • trunk/Source/WebKit/chromium/public/WebFrame.h

    r89773 r89939  
    393393    // Unselect, etc. See EditorCommand.cpp for the full list of supported
    394394    // commands.
    395     virtual bool executeCommand(const WebString&) = 0;
     395    virtual bool executeCommand(const WebString&, const WebNode& = WebNode()) = 0;
    396396    virtual bool executeCommand(const WebString&, const WebString& value) = 0;
    397397    virtual bool isCommandEnabled(const WebString&) const = 0;
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp

    r89773 r89939  
    286286}
    287287
     288static WebPluginContainerImpl* pluginContainerFromNode(const WebNode& node)
     289{
     290    const Node* coreNode = node.constUnwrap<Node>();
     291    if (coreNode->hasTagName(HTMLNames::objectTag) || coreNode->hasTagName(HTMLNames::embedTag)) {
     292        RenderObject* object = coreNode->renderer();
     293        if (object && object->isWidget()) {
     294            Widget* widget = toRenderWidget(object)->widget();
     295            if (widget && widget->isPluginContainer())
     296                return static_cast<WebPluginContainerImpl*>(widget);
     297        }
     298    }
     299    return 0;
     300}
     301
    288302WebPluginContainerImpl* WebFrameImpl::pluginContainerFromFrame(Frame* frame)
    289303{
     
    297311
    298312// Simple class to override some of PrintContext behavior. Some of the methods
    299 // made virtual so that they can be overriden by ChromePluginPrintContext.
     313// made virtual so that they can be overridden by ChromePluginPrintContext.
    300314class ChromePrintContext : public PrintContext {
    301315    WTF_MAKE_NONCOPYABLE(ChromePrintContext);
     
    11011115}
    11021116
    1103 bool WebFrameImpl::executeCommand(const WebString& name)
     1117bool WebFrameImpl::executeCommand(const WebString& name, const WebNode& node)
    11041118{
    11051119    ASSERT(frame());
     
    11211135    if (command == "Copy") {
    11221136        WebPluginContainerImpl* pluginContainer = pluginContainerFromFrame(frame());
     1137        if (!pluginContainer)
     1138            pluginContainer = pluginContainerFromNode(node);
    11231139        if (pluginContainer) {
    11241140            pluginContainer->copy();
     
    13081324    } else {
    13091325        // We only support printing plugin nodes for now.
    1310         const Node* coreNode = constrainToNode.constUnwrap<Node>();
    1311         if (coreNode->hasTagName(HTMLNames::objectTag) || coreNode->hasTagName(HTMLNames::embedTag)) {
    1312             RenderObject* object = coreNode->renderer();
    1313             if (object && object->isWidget()) {
    1314                 Widget* widget = toRenderWidget(object)->widget();
    1315                 if (widget && widget->isPluginContainer())
    1316                     pluginContainer =  static_cast<WebPluginContainerImpl*>(widget);
    1317             }
    1318         }
     1326        pluginContainer = pluginContainerFromNode(constrainToNode);
    13191327    }
    13201328
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.h

    r89773 r89939  
    150150    virtual bool firstRectForCharacterRange(unsigned location, unsigned length, WebRect&) const;
    151151    virtual size_t characterIndexForPoint(const WebPoint&) const;
    152     virtual bool executeCommand(const WebString&);
     152    virtual bool executeCommand(const WebString&, const WebNode& = WebNode());
    153153    virtual bool executeCommand(const WebString&, const WebString& value);
    154154    virtual bool isCommandEnabled(const WebString&) const;
Note: See TracChangeset for help on using the changeset viewer.