Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Side by Side Diff: third_party/WebKit/Source/core/page/ContextMenuController.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Igalia S.L 3 * Copyright (C) 2010 Igalia S.L
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 21 matching lines...) Expand all
32 #include "core/events/MouseEvent.h" 32 #include "core/events/MouseEvent.h"
33 #include "core/events/RelatedEvent.h" 33 #include "core/events/RelatedEvent.h"
34 #include "core/frame/LocalFrame.h" 34 #include "core/frame/LocalFrame.h"
35 #include "core/html/HTMLMenuElement.h" 35 #include "core/html/HTMLMenuElement.h"
36 #include "core/input/EventHandler.h" 36 #include "core/input/EventHandler.h"
37 #include "core/page/ContextMenuClient.h" 37 #include "core/page/ContextMenuClient.h"
38 #include "core/page/ContextMenuProvider.h" 38 #include "core/page/ContextMenuProvider.h"
39 #include "core/page/CustomContextMenuProvider.h" 39 #include "core/page/CustomContextMenuProvider.h"
40 #include "platform/ContextMenu.h" 40 #include "platform/ContextMenu.h"
41 #include "platform/ContextMenuItem.h" 41 #include "platform/ContextMenuItem.h"
42 #include "wtf/PtrUtil.h"
43 #include <memory>
42 44
43 namespace blink { 45 namespace blink {
44 46
45 using namespace HTMLNames; 47 using namespace HTMLNames;
46 48
47 ContextMenuController::ContextMenuController(Page*, ContextMenuClient* client) 49 ContextMenuController::ContextMenuController(Page*, ContextMenuClient* client)
48 : m_client(client) 50 : m_client(client)
49 { 51 {
50 DCHECK(client); 52 DCHECK(client);
51 } 53 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 m_contextMenu = createContextMenu(frame, location); 139 m_contextMenu = createContextMenu(frame, location);
138 if (!m_contextMenu) { 140 if (!m_contextMenu) {
139 clearContextMenu(); 141 clearContextMenu();
140 return; 142 return;
141 } 143 }
142 144
143 m_menuProvider->populateContextMenu(m_contextMenu.get()); 145 m_menuProvider->populateContextMenu(m_contextMenu.get());
144 showContextMenu(nullptr); 146 showContextMenu(nullptr);
145 } 147 }
146 148
147 PassOwnPtr<ContextMenu> ContextMenuController::createContextMenu(Event* event) 149 std::unique_ptr<ContextMenu> ContextMenuController::createContextMenu(Event* eve nt)
148 { 150 {
149 ASSERT(event); 151 ASSERT(event);
150 152
151 if (!event->isMouseEvent()) 153 if (!event->isMouseEvent())
152 return nullptr; 154 return nullptr;
153 155
154 MouseEvent* mouseEvent = toMouseEvent(event); 156 MouseEvent* mouseEvent = toMouseEvent(event);
155 return createContextMenu(event->target()->toNode()->document().frame(), mous eEvent->absoluteLocation()); 157 return createContextMenu(event->target()->toNode()->document().frame(), mous eEvent->absoluteLocation());
156 } 158 }
157 159
158 PassOwnPtr<ContextMenu> ContextMenuController::createContextMenu(LocalFrame* fra me, const LayoutPoint& location) 160 std::unique_ptr<ContextMenu> ContextMenuController::createContextMenu(LocalFrame * frame, const LayoutPoint& location)
159 { 161 {
160 HitTestRequest::HitTestRequestType type = HitTestRequest::ReadOnly | HitTest Request::Active; 162 HitTestRequest::HitTestRequestType type = HitTestRequest::ReadOnly | HitTest Request::Active;
161 HitTestResult result(type, location); 163 HitTestResult result(type, location);
162 164
163 if (frame) 165 if (frame)
164 result = frame->eventHandler().hitTestResultAtPoint(location, type); 166 result = frame->eventHandler().hitTestResultAtPoint(location, type);
165 167
166 if (!result.innerNodeOrImageMapImage()) 168 if (!result.innerNodeOrImageMapImage())
167 return nullptr; 169 return nullptr;
168 170
169 m_hitTestResult = result; 171 m_hitTestResult = result;
170 172
171 return adoptPtr(new ContextMenu); 173 return wrapUnique(new ContextMenu);
172 } 174 }
173 175
174 void ContextMenuController::showContextMenu(Event* event) 176 void ContextMenuController::showContextMenu(Event* event)
175 { 177 {
176 bool fromTouch = false; 178 bool fromTouch = false;
177 if (event && event->isMouseEvent()) { 179 if (event && event->isMouseEvent()) {
178 MouseEvent* mouseEvent = static_cast<MouseEvent*>(event); 180 MouseEvent* mouseEvent = static_cast<MouseEvent*>(event);
179 fromTouch = mouseEvent->fromTouch(); 181 fromTouch = mouseEvent->fromTouch();
180 } 182 }
181 183
182 if (m_client->showContextMenu(m_contextMenu.get(), fromTouch) && event) 184 if (m_client->showContextMenu(m_contextMenu.get(), fromTouch) && event)
183 event->setDefaultHandled(); 185 event->setDefaultHandled();
184 } 186 }
185 187
186 void ContextMenuController::contextMenuItemSelected(const ContextMenuItem* item) 188 void ContextMenuController::contextMenuItemSelected(const ContextMenuItem* item)
187 { 189 {
188 ASSERT(item->type() == ActionType || item->type() == CheckableActionType); 190 ASSERT(item->type() == ActionType || item->type() == CheckableActionType);
189 191
190 if (item->action() < ContextMenuItemBaseCustomTag || item->action() > Contex tMenuItemLastCustomTag) 192 if (item->action() < ContextMenuItemBaseCustomTag || item->action() > Contex tMenuItemLastCustomTag)
191 return; 193 return;
192 194
193 ASSERT(m_menuProvider); 195 ASSERT(m_menuProvider);
194 m_menuProvider->contextMenuItemSelected(item); 196 m_menuProvider->contextMenuItemSelected(item);
195 } 197 }
196 198
197 } // namespace blink 199 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698