Commit 44062a95 authored by aroben's avatar aroben

Reviewed by Geoff.

        Fix: <rdar://problem/4903003> ContextMenuController leaks Events

        No layout tests possible.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
        to manage the lifetime of Shared objects.



git-svn-id: svn://svn.chromium.org/blink/trunk@18740 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 98a22a9e
2007-01-10 Adam Roben <aroben@apple.com>
Reviewed by Geoff.
Fix: <rdar://problem/4903003> ContextMenuController leaks Events
No layout tests possible.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected): Use RefPtr
to manage the lifetime of Shared objects.
2007-01-10 Rob Buis <buis@kde.org> 2007-01-10 Rob Buis <buis@kde.org>
Reviewed by Sam. Reviewed by Sam.
......
...@@ -186,8 +186,10 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item) ...@@ -186,8 +186,10 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
if (frame->editor()->shouldInsertText(item->title(), frame->selectionController()->toRange().get(), if (frame->editor()->shouldInsertText(item->title(), frame->selectionController()->toRange().get(),
EditorInsertActionPasted)) { EditorInsertActionPasted)) {
Document* document = frame->document(); Document* document = frame->document();
applyCommand(new ReplaceSelectionCommand(document, createFragmentFromMarkup(document, item->title(), ""), RefPtr<ReplaceSelectionCommand> command =
true, false, true)); new ReplaceSelectionCommand(document, createFragmentFromMarkup(document, item->title(), ""),
true, false, true);
applyCommand(command);
frame->revealSelection(RenderLayer::gAlignToEdgeIfNeeded); frame->revealSelection(RenderLayer::gAlignToEdgeIfNeeded);
} }
break; break;
...@@ -200,8 +202,10 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item) ...@@ -200,8 +202,10 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
case ContextMenuItemTagSearchWeb: { case ContextMenuItemTagSearchWeb: {
String url = makeGoogleSearchURL(frame->selectedText()); String url = makeGoogleSearchURL(frame->selectedText());
ResourceRequest request = ResourceRequest(url); ResourceRequest request = ResourceRequest(url);
if (frame->page()) if (Page* page = frame->page()) {
frame->page()->mainFrame()->loader()->urlSelected(FrameLoadRequest(request), new Event()); RefPtr<Event> event = new Event();
page->mainFrame()->loader()->urlSelected(FrameLoadRequest(request), event.get());
}
break; break;
} }
case ContextMenuItemTagLookUpInDictionary: case ContextMenuItemTagLookUpInDictionary:
...@@ -209,10 +213,11 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item) ...@@ -209,10 +213,11 @@ void ContextMenuController::contextMenuItemSelected(ContextMenuItem* item)
m_client->lookUpInDictionary(frame); m_client->lookUpInDictionary(frame);
break; break;
case ContextMenuItemTagOpenLink: { case ContextMenuItemTagOpenLink: {
if (Frame* targetFrame = result.targetFrame()) if (Frame* targetFrame = result.targetFrame()) {
RefPtr<Event> event = new Event();
targetFrame->loader()->load(FrameLoadRequest(ResourceRequest(result.absoluteLinkURL(), targetFrame->loader()->load(FrameLoadRequest(ResourceRequest(result.absoluteLinkURL(),
frame->loader()->outgoingReferrer())), true, new Event(), 0, HashMap<String, String>()); frame->loader()->outgoingReferrer())), true, event.get(), 0, HashMap<String, String>());
else } else
openNewWindow(result.absoluteLinkURL(), frame); openNewWindow(result.absoluteLinkURL(), frame);
} }
case ContextMenuItemTagBold: case ContextMenuItemTagBold:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment