summaryrefslogtreecommitdiffstats
path: root/WebKit/wx
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/wx')
-rw-r--r--WebKit/wx/ChangeLog152
-rw-r--r--WebKit/wx/WebFrame.cpp25
-rw-r--r--WebKit/wx/WebKitSupport/ChromeClientWx.cpp3
-rw-r--r--WebKit/wx/WebKitSupport/ChromeClientWx.h2
-rw-r--r--WebKit/wx/WebKitSupport/DragClientWx.cpp2
-rw-r--r--WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp74
-rw-r--r--WebKit/wx/WebKitSupport/FrameLoaderClientWx.h11
-rw-r--r--WebKit/wx/WebKitSupport/InspectorClientWx.cpp9
-rw-r--r--WebKit/wx/WebKitSupport/InspectorClientWx.h7
-rw-r--r--WebKit/wx/WebView.cpp17
10 files changed, 271 insertions, 31 deletions
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index f2cc27f..e6ed389 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,155 @@
+2009-12-08 Kevin Watters <kevinwatters@gmail.com>
+
+ Reviewed by Kevin Ollivier.
+
+ [wx] Mac plugins support.
+
+ https://bugs.webkit.org/show_bug.cgi?id=32236
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::createPlugin):
+ (WebCore::FrameLoaderClientWx::redirectDataToPlugin):
+ * WebView.cpp:
+ (wxWebView::Create):
+
+2009-12-03 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/7214236> and http://webkit.org/b/32052 - Implement HTML5 state object history API
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::dispatchDidPushStateWithinPage):
+ (WebCore::FrameLoaderClientWx::dispatchDidReplaceStateWithinPage):
+ (WebCore::FrameLoaderClientWx::dispatchDidPopStateWithinPage):
+ * WebKitSupport/FrameLoaderClientWx.h:
+
+2009-12-03 Pavel Feldman <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
+
+ Reviewed by Timothy Hatcher.
+
+ Web Inspector: Simplify the settings support in inspector controller.
+
+ https://bugs.webkit.org/show_bug.cgi?id=32076
+
+ * WebKitSupport/InspectorClientWx.cpp:
+ (WebCore::InspectorClientWx::populateSetting):
+ (WebCore::InspectorClientWx::storeSetting):
+ * WebKitSupport/InspectorClientWx.h:
+
+2009-12-03 Ben Murdoch <benm@google.com>
+
+ Reviewed by Brady Eidson.
+
+ [Android] The FrameLoaderClient is unaware of BackForwardList changes.
+ https://bugs.webkit.org/show_bug.cgi?id=31914
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::dispatchDidAddBackForwardItem): Add an empty implementation. Method added to FrameLoaderClient by Android (see bug).
+ (WebCore::FrameLoaderClientWx::dispatchDidRemoveBackForwardItem): ditto.
+ (WebCore::FrameLoaderClientWx::dispatchDidChangeBackForwardIndex): ditto.
+ * WebKitSupport/FrameLoaderClientWx.h:
+
+2009-11-23 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Include "config.h" to meet Coding Style Guidelines
+ https://bugs.webkit.org/show_bug.cgi?id=31792
+
+ * WebKitSupport/DragClientWx.cpp:
+
+2009-11-18 Kevin Watters <kevinwatters@gmail.com>
+
+ Reviewed by Kevin Ollivier.
+
+ Enable wx plugin support using the Windows implementation as a base.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31636
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::FrameLoaderClientWx):
+ (WebCore::FrameLoaderClientWx::finishedLoading):
+ (WebCore::FrameLoaderClientWx::committedLoad):
+ (WebCore::FrameLoaderClientWx::createPlugin):
+ (WebCore::FrameLoaderClientWx::redirectDataToPlugin):
+ (WebCore::FrameLoaderClientWx::shouldUsePluginDocument):
+ * WebKitSupport/FrameLoaderClientWx.h:
+ * WebView.cpp:
+ (wxWebView::Create):
+
+2009-11-13 Kevin Ollivier <kevino@theolliviers.com>
+
+ wx build fix after r50923 change to externalRepresentation.
+
+ * WebFrame.cpp:
+ (wxWebFrame::GetExternalRepresentation):
+
+2009-11-13 Adam Roben <aroben@apple.com>
+
+ Update for changes to FrameLoaderClient
+
+ Fixes <http://webkit.org/b/31124> Tell the WebFrameLoadDelegate when
+ window objects in isolated worlds are cleared
+
+ Reviewed by Dave Hyatt.
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::dispatchDidClearWindowObjectInWorld):
+ * WebKitSupport/FrameLoaderClientWx.h:
+ Replaced windowObjectCleared with this function. Does nothing if the
+ passed-in world is not the mainThreadNormalWorld().
+
+2009-11-10 Robin Dunn <robin@alldunn.com>
+
+ Reviewed by Kevin Ollivier.
+
+ Add sanity checks to RunScript to ensure it doesn't run when the document hasn't yet
+ loaded nor when JavaScript is disabled.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31309
+
+ * WebFrame.cpp:
+ (wxWebFrame::RunScript):
+
+2009-11-04 Kevin Watters <kevinwatters@gmail.com>
+
+ Reviewed by Kevin Ollivier.
+
+ Fix an assert on shutdown when wxWebView has captured the mouse,
+ and make sure wxWebView's right click handling is only active when
+ the WebCore popup menu is used.
+
+ https://bugs.webkit.org/show_bug.cgi?id=31131
+
+ * WebView.cpp:
+ (wxWebView::~wxWebView):
+ (wxWebView::OnContextMenuEvents):
+ (wxWebView::OnMenuSelectEvents):
+
+2009-11-04 Vadim Zeitlin <vadim@wxwidgets.org>
+
+ Reviewed by Eric Seidel.
+
+ [wx] Small cleanup: avoid unnecessary wxString::mb_str() calls.
+
+ * WebFrame.cpp:
+ (wxWebFrame::SetPageSource):
+ (wxWebFrame::LoadURL):
+
+2009-10-30 Evan Stade <estade@chromium.org>
+
+ Reviewed by David Levin.
+
+ Notify the chrome when the focused node has changed.
+ https://bugs.webkit.org/show_bug.cgi?id=30832
+
+ Added stub implementation for new ChromeClient function.
+
+ * WebKitSupport/ChromeClientWx.cpp:
+ (WebCore::ChromeClientWx::focusedNodeChanged):
+ * WebKitSupport/ChromeClientWx.h:
+
2009-10-23 Kevin Ollivier <kevino@theolliviers.com>
wx build fix. Update the globalObject calls after changes.
diff --git a/WebKit/wx/WebFrame.cpp b/WebKit/wx/WebFrame.cpp
index 9018d37..bd983f6 100644
--- a/WebKit/wx/WebFrame.cpp
+++ b/WebKit/wx/WebFrame.cpp
@@ -146,9 +146,9 @@ wxString wxWebFrame::GetPageSource()
void wxWebFrame::SetPageSource(const wxString& source, const wxString& baseUrl)
{
if (m_impl->frame && m_impl->frame->loader()) {
- WebCore::KURL url(WebCore::KURL(), static_cast<const char*>(baseUrl.mb_str(wxConvUTF8)));
+ WebCore::KURL url(WebCore::KURL(), baseUrl);
- wxCharBuffer charBuffer(source.mb_str(wxConvUTF8));
+ const wxCharBuffer charBuffer(source.utf8_str());
const char* contents = charBuffer;
WTF::PassRefPtr<WebCore::SharedBuffer> sharedBuffer = WebCore::SharedBuffer::create(contents, strlen(contents));
@@ -181,16 +181,25 @@ wxString wxWebFrame::GetExternalRepresentation()
if (m_impl->frame->view() && m_impl->frame->view()->layoutPending())
m_impl->frame->view()->layout();
- return externalRepresentation(m_impl->frame->contentRenderer());
+ return externalRepresentation(m_impl->frame);
}
wxString wxWebFrame::RunScript(const wxString& javascript)
{
wxString returnValue = wxEmptyString;
- if (m_impl->frame) {
- JSC::JSValue result = m_impl->frame->script()->executeScript(javascript, true).jsValue();
- if (result)
- returnValue = wxString(result.toString(m_impl->frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()).UTF8String().c_str(), wxConvUTF8);
+ if (m_impl->frame && m_impl->frame->loader()) {
+ bool hasLoaded = m_impl->frame->loader()->frameHasLoaded();
+ wxASSERT_MSG(hasLoaded, wxT("Document must be loaded before calling RunScript."));
+ if (hasLoaded) {
+ WebCore::ScriptController* controller = m_impl->frame->script();
+ bool jsEnabled = controller->isEnabled();
+ wxASSERT_MSG(jsEnabled, wxT("RunScript requires JavaScript to be enabled."));
+ if (jsEnabled) {
+ JSC::JSValue result = controller->executeScript(javascript, true).jsValue();
+ if (result)
+ returnValue = wxString(result.toString(m_impl->frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()).UTF8String().c_str(), wxConvUTF8);
+ }
+ }
}
return returnValue;
}
@@ -206,7 +215,7 @@ bool wxWebFrame::FindString(const wxString& string, bool forward, bool caseSensi
void wxWebFrame::LoadURL(const wxString& url)
{
if (m_impl->frame && m_impl->frame->loader()) {
- WebCore::KURL kurl = WebCore::KURL(WebCore::KURL(), static_cast<const char*>(url.mb_str(wxConvUTF8)), WebCore::UTF8Encoding());
+ WebCore::KURL kurl = WebCore::KURL(WebCore::KURL(), url, WebCore::UTF8Encoding());
// NB: This is an ugly fix, but CURL won't load sub-resources if the
// protocol is omitted; sadly, it will not emit an error, either, so
// there's no way for us to catch this problem the correct way yet.
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
index 629463f..17f6f43 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp
@@ -111,6 +111,9 @@ void ChromeClientWx::takeFocus(FocusDirection)
notImplemented();
}
+void ChromeClientWx::focusedNodeChanged(Node*)
+{
+}
Page* ChromeClientWx::createWindow(Frame*, const FrameLoadRequest& request, const WindowFeatures&)
{
diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.h b/WebKit/wx/WebKitSupport/ChromeClientWx.h
index 07f70a8..bd4f1ec 100644
--- a/WebKit/wx/WebKitSupport/ChromeClientWx.h
+++ b/WebKit/wx/WebKitSupport/ChromeClientWx.h
@@ -54,6 +54,8 @@ public:
virtual bool canTakeFocus(FocusDirection);
virtual void takeFocus(FocusDirection);
+ virtual void focusedNodeChanged(Node*);
+
virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&);
virtual Page* createModalDialog(Frame*, const FrameLoadRequest&);
virtual void show();
diff --git a/WebKit/wx/WebKitSupport/DragClientWx.cpp b/WebKit/wx/WebKitSupport/DragClientWx.cpp
index dcccc34..fb6905b 100644
--- a/WebKit/wx/WebKitSupport/DragClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/DragClientWx.cpp
@@ -23,7 +23,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
#include "DragClientWx.h"
+
#include "NotImplemented.h"
#include <stdio.h>
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
index 568cf42..fbb4ec3 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
@@ -37,11 +37,13 @@
#include "FrameLoaderTypes.h"
#include "FrameView.h"
#include "FrameTree.h"
+#include "PluginView.h"
#include "HTMLFormElement.h"
#include "HTMLFrameOwnerElement.h"
#include "NotImplemented.h"
#include "Page.h"
#include "PlatformString.h"
+#include "PluginView.h"
#include "ProgressTracker.h"
#include "RenderPart.h"
#include "ResourceError.h"
@@ -80,7 +82,10 @@ inline int wxNavTypeFromWebNavType(NavigationType type){
}
FrameLoaderClientWx::FrameLoaderClientWx()
- : m_webFrame(0)
+ : m_frame(0)
+ , m_pluginView(0)
+ , m_hasSentResponseToPlugin(false)
+ , m_webFrame(0)
{
}
@@ -257,6 +262,20 @@ void FrameLoaderClientWx::dispatchDidChangeLocationWithinPage()
notImplemented();
}
+void FrameLoaderClientWx::dispatchDidPushStateWithinPage()
+{
+ notImplemented();
+}
+
+void FrameLoaderClientWx::dispatchDidReplaceStateWithinPage()
+{
+ notImplemented();
+}
+
+void FrameLoaderClientWx::dispatchDidPopStateWithinPage()
+{
+ notImplemented();
+}
void FrameLoaderClientWx::dispatchWillClose()
{
@@ -408,7 +427,11 @@ void FrameLoaderClientWx::didChangeTitle(DocumentLoader *l)
void FrameLoaderClientWx::finishedLoading(DocumentLoader*)
{
- notImplemented();
+ if (m_pluginView) {
+ m_pluginView->didFinishLoading();
+ m_pluginView = 0;
+ m_hasSentResponseToPlugin = false;
+ }
}
@@ -579,9 +602,25 @@ void FrameLoaderClientWx::committedLoad(WebCore::DocumentLoader* loader, const c
{
if (!m_webFrame)
return;
- FrameLoader* fl = loader->frameLoader();
- fl->setEncoding(m_response.textEncodingName(), false);
- fl->addData(data, length);
+ if (!m_pluginView) {
+ FrameLoader* fl = loader->frameLoader();
+ fl->setEncoding(m_response.textEncodingName(), false);
+ fl->addData(data, length);
+ }
+
+ // We re-check here as the plugin can have been created
+ if (m_pluginView) {
+ if (!m_hasSentResponseToPlugin) {
+ m_pluginView->didReceiveResponse(loader->response());
+ // didReceiveResponse sets up a new stream to the plug-in. on a full-page plug-in, a failure in
+ // setting up this stream can cause the main document load to be cancelled, setting m_pluginView
+ // to null
+ if (!m_pluginView)
+ return;
+ m_hasSentResponseToPlugin = true;
+ }
+ m_pluginView->didReceiveData(data, length);
+ }
}
WebCore::ResourceError FrameLoaderClientWx::cancelledError(const WebCore::ResourceRequest& request)
@@ -812,16 +851,21 @@ ObjectContentType FrameLoaderClientWx::objectContentType(const KURL& url, const
return ObjectContentType();
}
-PassRefPtr<Widget> FrameLoaderClientWx::createPlugin(const IntSize&, HTMLPlugInElement*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually)
+PassRefPtr<Widget> FrameLoaderClientWx::createPlugin(const IntSize& size, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually)
{
- notImplemented();
+#if __WXMSW__ || __WXMAC__
+ RefPtr<PluginView> pv = PluginView::create(m_frame, size, element, url, paramNames, paramValues, mimeType, loadManually);
+ if (pv->status() == PluginStatusLoadedSuccessfully)
+ return pv;
+#endif
return 0;
}
void FrameLoaderClientWx::redirectDataToPlugin(Widget* pluginWidget)
{
- notImplemented();
- return;
+ ASSERT(!m_pluginView);
+ m_pluginView = static_cast<PluginView*>(pluginWidget);
+ m_hasSentResponseToPlugin = false;
}
ResourceError FrameLoaderClientWx::pluginWillHandleLoadError(const ResourceResponse& response)
@@ -843,8 +887,11 @@ String FrameLoaderClientWx::overrideMediaType() const
return String();
}
-void FrameLoaderClientWx::windowObjectCleared()
+void FrameLoaderClientWx::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld* world)
{
+ if (world != mainThreadNormalWorld())
+ return;
+
if (m_webView) {
wxWebViewWindowObjectClearedEvent wkEvent(m_webView);
Frame* coreFrame = m_webView->GetMainFrame()->GetFrame();
@@ -897,4 +944,11 @@ void FrameLoaderClientWx::transitionToCommittedForNewPage()
m_frame->createView(size, backgroundColor, transparent, IntSize(), false);
}
+bool FrameLoaderClientWx::shouldUsePluginDocument(const String &mimeType) const
+{
+ // NOTE: Plugin Documents are used for viewing PDFs, etc. inline, and should
+ // not be used for pages with plugins in them.
+ return false;
+}
+
}
diff --git a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
index ed11974..0c29941 100644
--- a/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
+++ b/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
@@ -31,7 +31,9 @@
#include "FrameLoaderClient.h"
#include "FrameLoader.h"
#include "KURL.h"
+#include "PluginView.h"
#include "ResourceResponse.h"
+#include "HTMLPlugInElement.h"
class wxWebFrame;
class wxWebView;
@@ -94,6 +96,9 @@ namespace WebCore {
virtual void dispatchDidCancelClientRedirect();
virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate);
virtual void dispatchDidChangeLocationWithinPage();
+ virtual void dispatchDidPushStateWithinPage();
+ virtual void dispatchDidReplaceStateWithinPage();
+ virtual void dispatchDidPopStateWithinPage();
virtual void dispatchWillClose();
virtual void dispatchDidReceiveIcon();
virtual void dispatchDidStartProvisionalLoad();
@@ -205,17 +210,21 @@ namespace WebCore {
virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
virtual String overrideMediaType() const;
- virtual void windowObjectCleared();
+ virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
virtual void documentElementAvailable();
virtual void didPerformFirstNavigation() const;
virtual void registerForIconNotification(bool listen = true);
+
+ virtual bool shouldUsePluginDocument(const String &mimeType) const;
private:
wxWebFrame *m_webFrame;
Frame* m_frame;
wxWebView *m_webView;
+ PluginView* m_pluginView;
+ bool m_hasSentResponseToPlugin;
ResourceResponse m_response;
bool m_firstData;
};
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.cpp b/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
index d55ad04..ff21ae0 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.cpp
@@ -105,17 +105,12 @@ void InspectorClientWx::inspectedURLChanged(const String& newURL)
notImplemented();
}
-void InspectorClientWx::populateSetting(const String& key, InspectorController::Setting& setting)
+void InspectorClientWx::populateSetting(const String& key, String* setting)
{
notImplemented();
}
-void InspectorClientWx::storeSetting(const String& key, const InspectorController::Setting& setting)
-{
- notImplemented();
-}
-
-void InspectorClientWx::removeSetting(const String& key)
+void InspectorClientWx::storeSetting(const String& key, const String& setting)
{
notImplemented();
}
diff --git a/WebKit/wx/WebKitSupport/InspectorClientWx.h b/WebKit/wx/WebKitSupport/InspectorClientWx.h
index 182df1b..f905817 100644
--- a/WebKit/wx/WebKitSupport/InspectorClientWx.h
+++ b/WebKit/wx/WebKitSupport/InspectorClientWx.h
@@ -60,10 +60,9 @@ public:
virtual void inspectedURLChanged(const String& newURL);
- virtual void populateSetting(const String& key, InspectorController::Setting&);
- virtual void storeSetting(const String& key, const InspectorController::Setting&);
- virtual void removeSetting(const String& key);
-
+ virtual void populateSetting(const String& key, String* value);
+ virtual void storeSetting(const String& key, const String& value);
+
virtual void inspectorWindowObjectCleared();
};
diff --git a/WebKit/wx/WebView.cpp b/WebKit/wx/WebView.cpp
index 1b27cde..2c752de 100644
--- a/WebKit/wx/WebView.cpp
+++ b/WebKit/wx/WebView.cpp
@@ -257,7 +257,6 @@ BEGIN_EVENT_TABLE(wxWebView, wxWindow)
EVT_SIZE(wxWebView::OnSize)
EVT_MOUSE_EVENTS(wxWebView::OnMouseEvents)
EVT_CONTEXT_MENU(wxWebView::OnContextMenuEvents)
- EVT_MENU(wxID_ANY, wxWebView::OnMenuSelectEvents)
EVT_KEY_DOWN(wxWebView::OnKeyEvents)
EVT_KEY_UP(wxWebView::OnKeyEvents)
EVT_CHAR(wxWebView::OnKeyEvents)
@@ -339,6 +338,10 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position,
settings->setDatabasesEnabled(true);
#endif
+#if __WXMSW__ || __WXMAC__
+ settings->setPluginsEnabled(true);
+#endif
+
m_isInitialized = true;
return true;
@@ -348,6 +351,9 @@ wxWebView::~wxWebView()
{
m_beingDestroyed = true;
+ while (HasCapture())
+ ReleaseMouse();
+
if (m_mainFrame && m_mainFrame->GetFrame())
m_mainFrame->GetFrame()->loader()->detachFromParent();
@@ -646,6 +652,7 @@ void wxWebView::OnMouseEvents(wxMouseEvent& event)
void wxWebView::OnContextMenuEvents(wxContextMenuEvent& event)
{
+ Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxWebView::OnMenuSelectEvents), NULL, this);
m_impl->page->contextMenuController()->clearContextMenu();
wxPoint localEventPoint = ScreenToClient(event.GetPosition());
@@ -675,10 +682,18 @@ void wxWebView::OnContextMenuEvents(wxContextMenuEvent& event)
return;
PopupMenu(menuWx, localEventPoint);
+
+ Disconnect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxWebView::OnMenuSelectEvents), NULL, this);
}
void wxWebView::OnMenuSelectEvents(wxCommandEvent& event)
{
+ // we shouldn't hit this unless there's a context menu showing
+ WebCore::ContextMenu* coreMenu = m_impl->page->contextMenuController()->contextMenu();
+ ASSERT(coreMenu);
+ if (!coreMenu)
+ return;
+
WebCore::ContextMenuItem* item = WebCore::ContextMenu::itemWithId (event.GetId());
if (!item)
return;