Vector<WebContextMenuItemData> kitItems(const Vector<WebCore::ContextMenuItem>& coreItemVector, WebCore::ContextMenu* menu) { Vector<WebContextMenuItemData> result; result.reserveCapacity(coreItemVector.size()); for (unsigned i = 0; i < coreItemVector.size(); ++i) result.append(WebContextMenuItemData(coreItemVector[i], menu)); return result; }
bool WebContextMenuItemData::decode(CoreIPC::ArgumentDecoder& decoder, WebContextMenuItemData& item) { WebCore::ContextMenuItemType type; if (!decoder.decodeEnum(type)) return false; WebCore::ContextMenuAction action; if (!decoder.decodeEnum(action)) return false; String title; if (!decoder.decode(title)) return false; bool checked; if (!decoder.decode(checked)) return false; bool enabled; if (!decoder.decode(enabled)) return false; Vector<WebContextMenuItemData> submenu; if (!decoder.decode(submenu)) return false; switch (type) { case WebCore::ActionType: case WebCore::SeparatorType: case WebCore::CheckableActionType: item = WebContextMenuItemData(type, action, title, enabled, checked); break; case WebCore::SubmenuType: item = WebContextMenuItemData(action, title, enabled, submenu); break; default: ASSERT_NOT_REACHED(); return false; } return true; }
WebContextMenuItem* WebContextMenuItem::separatorItem() { DEFINE_STATIC_LOCAL(WebContextMenuItem*, separatorItem, (adoptRef(new WebContextMenuItem(WebContextMenuItemData(WebCore::SeparatorType, WebCore::ContextMenuItemTagNoAction, String(), true, false))).leakRef())); return separatorItem; }