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

Side by Side Diff: Source/bindings/core/v8/custom/V8DevToolsHostCustom.cpp

Issue 1097273002: Refactor core/v8/* methods to take isolate as first parameter (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 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) 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
49 { 49 {
50 #if OS(MACOSX) 50 #if OS(MACOSX)
51 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "mac")); 51 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "mac"));
52 #elif OS(WIN) 52 #elif OS(WIN)
53 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "windows")); 53 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "windows"));
54 #else // Unix-like systems 54 #else // Unix-like systems
55 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "linux")); 55 v8SetReturnValue(info, v8AtomicString(info.GetIsolate(), "linux"));
56 #endif 56 #endif
57 } 57 }
58 58
59 static bool populateContextMenuItems(const v8::Local<v8::Array>& itemArray, Cont extMenu& menu, v8::Isolate* isolate) 59 static bool populateContextMenuItems(v8::Isolate* isolate, const v8::Local<v8::A rray>& itemArray, ContextMenu& menu)
60 { 60 {
61 v8::Local<v8::Context> context = isolate->GetCurrentContext(); 61 v8::Local<v8::Context> context = isolate->GetCurrentContext();
62 for (size_t i = 0; i < itemArray->Length(); ++i) { 62 for (size_t i = 0; i < itemArray->Length(); ++i) {
63 v8::Local<v8::Object> item = itemArray->Get(context, i).ToLocalChecked() .As<v8::Object>(); 63 v8::Local<v8::Object> item = itemArray->Get(context, i).ToLocalChecked() .As<v8::Object>();
64 v8::Local<v8::Value> type; 64 v8::Local<v8::Value> type;
65 v8::Local<v8::Value> id; 65 v8::Local<v8::Value> id;
66 v8::Local<v8::Value> label; 66 v8::Local<v8::Value> label;
67 v8::Local<v8::Value> enabled; 67 v8::Local<v8::Value> enabled;
68 v8::Local<v8::Value> checked; 68 v8::Local<v8::Value> checked;
69 v8::Local<v8::Value> subItems; 69 v8::Local<v8::Value> subItems;
70 if (!item->Get(context, v8AtomicString(isolate, "type")).ToLocal(&type) 70 if (!item->Get(context, v8AtomicString(isolate, "type")).ToLocal(&type)
71 || !item->Get(context, v8AtomicString(isolate, "id")).ToLocal(&id) 71 || !item->Get(context, v8AtomicString(isolate, "id")).ToLocal(&id)
72 || !item->Get(context, v8AtomicString(isolate, "label")).ToLocal(&la bel) 72 || !item->Get(context, v8AtomicString(isolate, "label")).ToLocal(&la bel)
73 || !item->Get(context, v8AtomicString(isolate, "enabled")).ToLocal(& enabled) 73 || !item->Get(context, v8AtomicString(isolate, "enabled")).ToLocal(& enabled)
74 || !item->Get(context, v8AtomicString(isolate, "checked")).ToLocal(& checked) 74 || !item->Get(context, v8AtomicString(isolate, "checked")).ToLocal(& checked)
75 || !item->Get(context, v8AtomicString(isolate, "subItems")).ToLocal( &subItems)) 75 || !item->Get(context, v8AtomicString(isolate, "subItems")).ToLocal( &subItems))
76 return false; 76 return false;
77 if (!type->IsString()) 77 if (!type->IsString())
78 continue; 78 continue;
79 String typeString = toCoreStringWithNullCheck(type.As<v8::String>()); 79 String typeString = toCoreStringWithNullCheck(type.As<v8::String>());
80 if (typeString == "separator") { 80 if (typeString == "separator") {
81 ContextMenuItem item(ContextMenuItem(SeparatorType, 81 ContextMenuItem item(ContextMenuItem(SeparatorType,
82 ContextMenuItemCustomTagNoAction, 82 ContextMenuItemCustomTagNoAction,
83 String(), 83 String(),
84 String())); 84 String()));
85 menu.appendItem(item); 85 menu.appendItem(item);
86 } else if (typeString == "subMenu" && subItems->IsArray()) { 86 } else if (typeString == "subMenu" && subItems->IsArray()) {
87 ContextMenu subMenu; 87 ContextMenu subMenu;
88 v8::Local<v8::Array> subItemsArray = v8::Local<v8::Array>::Cast(subI tems); 88 v8::Local<v8::Array> subItemsArray = v8::Local<v8::Array>::Cast(subI tems);
89 if (!populateContextMenuItems(subItemsArray, subMenu, isolate)) 89 if (!populateContextMenuItems(isolate, subItemsArray, subMenu))
90 return false; 90 return false;
91 TOSTRING_DEFAULT(V8StringResource<TreatNullAsNullString>, labelStrin g, label, false); 91 TOSTRING_DEFAULT(V8StringResource<TreatNullAsNullString>, labelStrin g, label, false);
92 ContextMenuItem item(SubmenuType, 92 ContextMenuItem item(SubmenuType,
93 ContextMenuItemCustomTagNoAction, 93 ContextMenuItemCustomTagNoAction,
94 labelString, 94 labelString,
95 String(), 95 String(),
96 &subMenu); 96 &subMenu);
97 menu.appendItem(item); 97 menu.appendItem(item);
98 } else { 98 } else {
99 int32_t int32Id; 99 int32_t int32Id;
(...skipping 20 matching lines...) Expand all
120 v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(info[0]); 120 v8::Local<v8::Object> eventWrapper = v8::Local<v8::Object>::Cast(info[0]);
121 if (!V8MouseEvent::wrapperTypeInfo.equals(toWrapperTypeInfo(eventWrapper))) 121 if (!V8MouseEvent::wrapperTypeInfo.equals(toWrapperTypeInfo(eventWrapper)))
122 return; 122 return;
123 123
124 Event* event = V8Event::toImpl(eventWrapper); 124 Event* event = V8Event::toImpl(eventWrapper);
125 if (!info[1]->IsArray()) 125 if (!info[1]->IsArray())
126 return; 126 return;
127 127
128 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(info[1]); 128 v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(info[1]);
129 ContextMenu menu; 129 ContextMenu menu;
130 if (!populateContextMenuItems(array, menu, info.GetIsolate())) 130 if (!populateContextMenuItems(info.GetIsolate(), array, menu))
131 return; 131 return;
132 132
133 DevToolsHost* devtoolsHost = V8DevToolsHost::toImpl(info.Holder()); 133 DevToolsHost* devtoolsHost = V8DevToolsHost::toImpl(info.Holder());
134 Vector<ContextMenuItem> items = menu.items(); 134 Vector<ContextMenuItem> items = menu.items();
135 devtoolsHost->showContextMenu(event, items); 135 devtoolsHost->showContextMenu(event, items);
136 } 136 }
137 137
138 void V8DevToolsHost::showContextMenuAtPointMethodCustom(const v8::FunctionCallba ckInfo<v8::Value>& info) 138 void V8DevToolsHost::showContextMenuAtPointMethodCustom(const v8::FunctionCallba ckInfo<v8::Value>& info)
139 { 139 {
140 if (info.Length() < 3) 140 if (info.Length() < 3)
141 return; 141 return;
142 142
143 ExceptionState exceptionState(ExceptionState::ExecutionContext, "showContext MenuAtPoint", "DevToolsHost", info.Holder(), info.GetIsolate()); 143 ExceptionState exceptionState(ExceptionState::ExecutionContext, "showContext MenuAtPoint", "DevToolsHost", info.Holder(), info.GetIsolate());
144 144
145 TONATIVE_VOID_EXCEPTIONSTATE(float, x, toRestrictedFloat(info.GetIsolate(), info[0], exceptionState), exceptionState); 145 TONATIVE_VOID_EXCEPTIONSTATE(float, x, toRestrictedFloat(info.GetIsolate(), info[0], exceptionState), exceptionState);
146 TONATIVE_VOID_EXCEPTIONSTATE(float, y, toRestrictedFloat(info.GetIsolate(), info[1], exceptionState), exceptionState); 146 TONATIVE_VOID_EXCEPTIONSTATE(float, y, toRestrictedFloat(info.GetIsolate(), info[1], exceptionState), exceptionState);
147 147
148 v8::Local<v8::Value> array = v8::Local<v8::Value>::Cast(info[2]); 148 v8::Local<v8::Value> array = v8::Local<v8::Value>::Cast(info[2]);
149 if (!array->IsArray()) 149 if (!array->IsArray())
150 return; 150 return;
151 ContextMenu menu; 151 ContextMenu menu;
152 if (!populateContextMenuItems(v8::Local<v8::Array>::Cast(array), menu, info. GetIsolate())) 152 if (!populateContextMenuItems(info.GetIsolate(), v8::Local<v8::Array>::Cast( array), menu))
153 return; 153 return;
154 154
155 Document* document = nullptr; 155 Document* document = nullptr;
156 if (info.Length() >= 4 && v8::Local<v8::Value>::Cast(info[3])->IsObject()) { 156 if (info.Length() >= 4 && v8::Local<v8::Value>::Cast(info[3])->IsObject()) {
157 v8::Local<v8::Object> documentWrapper = v8::Local<v8::Object>::Cast(info [3]); 157 v8::Local<v8::Object> documentWrapper = v8::Local<v8::Object>::Cast(info [3]);
158 if (!V8HTMLDocument::wrapperTypeInfo.equals(toWrapperTypeInfo(documentWr apper))) 158 if (!V8HTMLDocument::wrapperTypeInfo.equals(toWrapperTypeInfo(documentWr apper)))
159 return; 159 return;
160 document = V8HTMLDocument::toImpl(documentWrapper); 160 document = V8HTMLDocument::toImpl(documentWrapper);
161 } else { 161 } else {
162 v8::Isolate* isolate = info.GetIsolate(); 162 v8::Isolate* isolate = info.GetIsolate();
163 v8::Local<v8::Object> windowWrapper = V8Window::findInstanceInPrototypeC hain(isolate->GetEnteredContext()->Global(), isolate); 163 v8::Local<v8::Object> windowWrapper = V8Window::findInstanceInPrototypeC hain(isolate->GetEnteredContext()->Global(), isolate);
164 if (windowWrapper.IsEmpty()) 164 if (windowWrapper.IsEmpty())
165 return; 165 return;
166 DOMWindow* window = V8Window::toImpl(windowWrapper); 166 DOMWindow* window = V8Window::toImpl(windowWrapper);
167 document = window ? toLocalDOMWindow(window)->document() : nullptr; 167 document = window ? toLocalDOMWindow(window)->document() : nullptr;
168 } 168 }
169 if (!document || !document->frame()) 169 if (!document || !document->frame())
170 return; 170 return;
171 171
172 DevToolsHost* devtoolsHost = V8DevToolsHost::toImpl(info.Holder()); 172 DevToolsHost* devtoolsHost = V8DevToolsHost::toImpl(info.Holder());
173 Vector<ContextMenuItem> items = menu.items(); 173 Vector<ContextMenuItem> items = menu.items();
174 devtoolsHost->showContextMenu(document->frame(), x, y, items); 174 devtoolsHost->showContextMenu(document->frame(), x, y, items);
175 } 175 }
176 176
177 } // namespace blink 177 } // namespace blink
178 178
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/custom/V8CustomEventCustom.cpp ('k') | Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698