| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007-2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2007-2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 v8SetReturnValue(info, v8::String::NewSymbol("windows")); | 49 v8SetReturnValue(info, v8::String::NewSymbol("windows")); |
| 50 #else // Unix-like systems | 50 #else // Unix-like systems |
| 51 v8SetReturnValue(info, v8::String::NewSymbol("linux")); | 51 v8SetReturnValue(info, v8::String::NewSymbol("linux")); |
| 52 #endif | 52 #endif |
| 53 } | 53 } |
| 54 | 54 |
| 55 void V8InspectorFrontendHost::portMethodCustom(const v8::FunctionCallbackInfo<v8
::Value>&) | 55 void V8InspectorFrontendHost::portMethodCustom(const v8::FunctionCallbackInfo<v8
::Value>&) |
| 56 { | 56 { |
| 57 } | 57 } |
| 58 | 58 |
| 59 static void populateContextMenuItems(v8::Local<v8::Array>& itemArray, ContextMen
u& menu) | 59 static bool populateContextMenuItems(v8::Local<v8::Array>& itemArray, ContextMen
u& menu) |
| 60 { | 60 { |
| 61 for (size_t i = 0; i < itemArray->Length(); ++i) { | 61 for (size_t i = 0; i < itemArray->Length(); ++i) { |
| 62 v8::Local<v8::Object> item = v8::Local<v8::Object>::Cast(itemArray->Get(
i)); | 62 v8::Local<v8::Object> item = v8::Local<v8::Object>::Cast(itemArray->Get(
i)); |
| 63 v8::Local<v8::Value> type = item->Get(v8::String::NewSymbol("type")); | 63 v8::Local<v8::Value> type = item->Get(v8::String::NewSymbol("type")); |
| 64 v8::Local<v8::Value> id = item->Get(v8::String::NewSymbol("id")); | 64 v8::Local<v8::Value> id = item->Get(v8::String::NewSymbol("id")); |
| 65 v8::Local<v8::Value> label = item->Get(v8::String::NewSymbol("label")); | 65 v8::Local<v8::Value> label = item->Get(v8::String::NewSymbol("label")); |
| 66 v8::Local<v8::Value> enabled = item->Get(v8::String::NewSymbol("enabled"
)); | 66 v8::Local<v8::Value> enabled = item->Get(v8::String::NewSymbol("enabled"
)); |
| 67 v8::Local<v8::Value> checked = item->Get(v8::String::NewSymbol("checked"
)); | 67 v8::Local<v8::Value> checked = item->Get(v8::String::NewSymbol("checked"
)); |
| 68 v8::Local<v8::Value> subItems = item->Get(v8::String::NewSymbol("subItem
s")); | 68 v8::Local<v8::Value> subItems = item->Get(v8::String::NewSymbol("subItem
s")); |
| 69 if (!type->IsString()) | 69 if (!type->IsString()) |
| 70 continue; | 70 continue; |
| 71 String typeString = toWebCoreStringWithNullCheck(type.As<v8::String>()); | 71 String typeString = toWebCoreStringWithNullCheck(type.As<v8::String>()); |
| 72 if (typeString == "separator") { | 72 if (typeString == "separator") { |
| 73 ContextMenuItem item(ContextMenuItem(SeparatorType, | 73 ContextMenuItem item(ContextMenuItem(SeparatorType, |
| 74 ContextMenuItemCustomTagNoAction, | 74 ContextMenuItemCustomTagNoAction, |
| 75 String())); | 75 String())); |
| 76 menu.appendItem(item); | 76 menu.appendItem(item); |
| 77 } else if (typeString == "subMenu" && subItems->IsArray()) { | 77 } else if (typeString == "subMenu" && subItems->IsArray()) { |
| 78 ContextMenu subMenu; | 78 ContextMenu subMenu; |
| 79 v8::Local<v8::Array> subItemsArray = v8::Local<v8::Array>::Cast(subI
tems); | 79 v8::Local<v8::Array> subItemsArray = v8::Local<v8::Array>::Cast(subI
tems); |
| 80 populateContextMenuItems(subItemsArray, subMenu); | 80 if (!populateContextMenuItems(subItemsArray, subMenu)) |
| 81 return false; |
| 82 V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<WithNullChec
k>, labelString, label, false); |
| 81 ContextMenuItem item(SubmenuType, | 83 ContextMenuItem item(SubmenuType, |
| 82 ContextMenuItemCustomTagNoAction, | 84 ContextMenuItemCustomTagNoAction, |
| 83 toWebCoreStringWithNullCheck(label), | 85 labelString, |
| 84 &subMenu); | 86 &subMenu); |
| 85 menu.appendItem(item); | 87 menu.appendItem(item); |
| 86 } else { | 88 } else { |
| 87 ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMe
nuItemBaseCustomTag + id->ToInt32()->Value()); | 89 ContextMenuAction typedId = static_cast<ContextMenuAction>(ContextMe
nuItemBaseCustomTag + id->ToInt32()->Value()); |
| 88 ContextMenuItem menuItem((typeString == "checkbox" ? CheckableAction
Type : ActionType), typedId, toWebCoreStringWithNullCheck(label)); | 90 ContextMenuItem menuItem((typeString == "checkbox" ? CheckableAction
Type : ActionType), typedId, toWebCoreStringWithNullCheck(label)); |
| 89 if (checked->IsBoolean()) | 91 if (checked->IsBoolean()) |
| 90 menuItem.setChecked(checked->ToBoolean()->Value()); | 92 menuItem.setChecked(checked->ToBoolean()->Value()); |
| 91 if (enabled->IsBoolean()) | 93 if (enabled->IsBoolean()) |
| 92 menuItem.setEnabled(enabled->ToBoolean()->Value()); | 94 menuItem.setEnabled(enabled->ToBoolean()->Value()); |
| 93 menu.appendItem(menuItem); | 95 menu.appendItem(menuItem); |
| 94 } | 96 } |
| 95 } | 97 } |
| 98 return true; |
| 96 } | 99 } |
| 97 | 100 |
| 98 void V8InspectorFrontendHost::showContextMenuMethodCustom(const v8::FunctionCall
backInfo<v8::Value>& info) | 101 void V8InspectorFrontendHost::showContextMenuMethodCustom(const v8::FunctionCall
backInfo<v8::Value>& info) |
| 99 { | 102 { |
| 100 if (info.Length() < 2) | 103 if (info.Length() < 2) |
| 101 return; | 104 return; |
| 102 | 105 |
| 103 v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(info[0]); | 106 v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(info[0]); |
| 104 if (!V8MouseEvent::wrapperTypeInfo.equals(toWrapperTypeInfo(eventWrapper))) | 107 if (!V8MouseEvent::wrapperTypeInfo.equals(toWrapperTypeInfo(eventWrapper))) |
| 105 return; | 108 return; |
| 106 | 109 |
| 107 Event* event = V8Event::toNative(eventWrapper); | 110 Event* event = V8Event::toNative(eventWrapper); |
| 108 if (!info[1]->IsArray()) | 111 if (!info[1]->IsArray()) |
| 109 return; | 112 return; |
| 110 | 113 |
| 111 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(info[1]); | 114 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(info[1]); |
| 112 ContextMenu menu; | 115 ContextMenu menu; |
| 113 populateContextMenuItems(array, menu); | 116 if (!populateContextMenuItems(array, menu)) |
| 117 return; |
| 114 | 118 |
| 115 InspectorFrontendHost* frontendHost = V8InspectorFrontendHost::toNative(info
.Holder()); | 119 InspectorFrontendHost* frontendHost = V8InspectorFrontendHost::toNative(info
.Holder()); |
| 116 Vector<ContextMenuItem> items = menu.items(); | 120 Vector<ContextMenuItem> items = menu.items(); |
| 117 frontendHost->showContextMenu(event, items); | 121 frontendHost->showContextMenu(event, items); |
| 118 } | 122 } |
| 119 | 123 |
| 120 static void histogramEnumeration(const char* name, const v8::FunctionCallbackInf
o<v8::Value>& info, int boundaryValue) | 124 static void histogramEnumeration(const char* name, const v8::FunctionCallbackInf
o<v8::Value>& info, int boundaryValue) |
| 121 { | 125 { |
| 122 if (info.Length() < 1 || !info[0]->IsInt32()) | 126 if (info.Length() < 1 || !info[0]->IsInt32()) |
| 123 return; | 127 return; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 137 histogramEnumeration("DevTools.PanelShown", info, 20); | 141 histogramEnumeration("DevTools.PanelShown", info, 20); |
| 138 } | 142 } |
| 139 | 143 |
| 140 void V8InspectorFrontendHost::recordSettingChangedMethodCustom(const v8::Functio
nCallbackInfo<v8::Value>& info) | 144 void V8InspectorFrontendHost::recordSettingChangedMethodCustom(const v8::Functio
nCallbackInfo<v8::Value>& info) |
| 141 { | 145 { |
| 142 histogramEnumeration("DevTools.SettingChanged", info, 100); | 146 histogramEnumeration("DevTools.SettingChanged", info, 100); |
| 143 } | 147 } |
| 144 | 148 |
| 145 } // namespace WebCore | 149 } // namespace WebCore |
| 146 | 150 |
| OLD | NEW |