Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> | 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> |
| 4 * Copyright (C) 2012 Google Inc. All rights reserved. | 4 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 178 v8::Local<v8::Value> info[] = { scriptHostWrapper, windowGlobal, v8::Number: :New(context->GetIsolate(), id) }; | 178 v8::Local<v8::Value> info[] = { scriptHostWrapper, windowGlobal, v8::Number: :New(context->GetIsolate(), id) }; |
| 179 v8::MicrotasksScope microtasksScope(isolate, v8::MicrotasksScope::kDoNotRunM icrotasks); | 179 v8::MicrotasksScope microtasksScope(isolate, v8::MicrotasksScope::kDoNotRunM icrotasks); |
| 180 v8::Local<v8::Value> injectedScriptValue; | 180 v8::Local<v8::Value> injectedScriptValue; |
| 181 if (!function->Call(context, windowGlobal, WTF_ARRAY_LENGTH(info), info).ToL ocal(&injectedScriptValue)) | 181 if (!function->Call(context, windowGlobal, WTF_ARRAY_LENGTH(info), info).ToL ocal(&injectedScriptValue)) |
| 182 return v8::Local<v8::Object>(); | 182 return v8::Local<v8::Object>(); |
| 183 if (!injectedScriptValue->IsObject()) | 183 if (!injectedScriptValue->IsObject()) |
| 184 return v8::Local<v8::Object>(); | 184 return v8::Local<v8::Object>(); |
| 185 return injectedScriptValue.As<v8::Object>(); | 185 return injectedScriptValue.As<v8::Object>(); |
| 186 } | 186 } |
| 187 | 187 |
| 188 | |
| 189 InjectedScriptManager::ScopedGlobalObjectExtension::ScopedGlobalObjectExtension( InjectedScript* current, InjectedScriptManager* manager, v8::MaybeLocal<v8::Obje ct> extension) | |
| 190 : m_symbol(V8Debugger::scopeExtensionSymbol(current->isolate())) | |
|
dgozman
2016/03/17 20:56:11
Let's create this lazily.
kozy
2016/03/17 21:05:22
Done.
| |
| 191 , m_context(current->context()) | |
| 192 { | |
| 193 v8::Local<v8::Object> extensionObject; | |
| 194 if (!extension.ToLocal(&extensionObject)) | |
| 195 return; | |
| 196 | |
| 197 if (!manager) { | |
| 198 setOnGlobal(current->context()->Global(), extensionObject); | |
| 199 } else { | |
| 200 InjectedScriptManager::IdToInjectedScriptMap::iterator end = manager->m_ idToInjectedScript.end(); | |
| 201 for (InjectedScriptManager::IdToInjectedScriptMap::iterator it = manager ->m_idToInjectedScript.begin(); it != end; ++it) { | |
| 202 if (it->second->canAccessInspectedWindow()) | |
| 203 setOnGlobal(it->second->context()->Global(), extensionObject); | |
| 204 } | |
| 205 } | |
| 206 } | |
| 207 | |
| 208 InjectedScriptManager::ScopedGlobalObjectExtension::~ScopedGlobalObjectExtension () | |
| 209 { | |
| 210 for (size_t i = 0; i < m_globals.size(); ++i) | |
| 211 m_globals[i]->ToObject(m_context).ToLocalChecked()->Delete(m_context, m_ symbol); | |
| 212 } | |
| 213 | |
| 214 void InjectedScriptManager::ScopedGlobalObjectExtension::setOnGlobal(v8::Local<v 8::Object> global, v8::Local<v8::Object> extension) | |
| 215 { | |
| 216 if (global->Set(m_context, m_symbol, extension).FromMaybe(false)) | |
| 217 m_globals.append(global); | |
| 218 } | |
| 219 | |
| 188 } // namespace blink | 220 } // namespace blink |
| OLD | NEW |