| Index: third_party/WebKit/Source/core/inspector/InjectedScriptManager.cpp
|
| diff --git a/third_party/WebKit/Source/core/inspector/InjectedScriptManager.cpp b/third_party/WebKit/Source/core/inspector/InjectedScriptManager.cpp
|
| deleted file mode 100644
|
| index 2a36bc9c0fbd809c771e7bc0d3b14496984dae99..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/Source/core/inspector/InjectedScriptManager.cpp
|
| +++ /dev/null
|
| @@ -1,188 +0,0 @@
|
| -/*
|
| - * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
|
| - * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
|
| - * Copyright (C) 2012 Google Inc. All rights reserved.
|
| - *
|
| - * Redistribution and use in source and binary forms, with or without
|
| - * modification, are permitted provided that the following conditions
|
| - * are met:
|
| - *
|
| - * 1. Redistributions of source code must retain the above copyright
|
| - * notice, this list of conditions and the following disclaimer.
|
| - * 2. Redistributions in binary form must reproduce the above copyright
|
| - * notice, this list of conditions and the following disclaimer in the
|
| - * documentation and/or other materials provided with the distribution.
|
| - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
|
| - * its contributors may be used to endorse or promote products derived
|
| - * from this software without specific prior written permission.
|
| - *
|
| - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
|
| - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
| - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
|
| - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
| - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
| - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
| - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
| - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| - */
|
| -
|
| -#include "core/inspector/InjectedScriptManager.h"
|
| -
|
| -#include "bindings/core/v8/V8Binding.h"
|
| -#include "core/inspector/InjectedScript.h"
|
| -#include "core/inspector/InjectedScriptHost.h"
|
| -#include "core/inspector/InjectedScriptNative.h"
|
| -#include "core/inspector/RemoteObjectId.h"
|
| -#include "core/inspector/v8/V8Debugger.h"
|
| -#include "core/inspector/v8/V8DebuggerClient.h"
|
| -#include "core/inspector/v8/V8InjectedScriptHost.h"
|
| -#include "public/platform/Platform.h"
|
| -#include "public/platform/WebData.h"
|
| -#include "wtf/PassOwnPtr.h"
|
| -
|
| -namespace blink {
|
| -
|
| -PassOwnPtr<InjectedScriptManager> InjectedScriptManager::create(V8DebuggerClient* client)
|
| -{
|
| - return adoptPtr(new InjectedScriptManager(client));
|
| -}
|
| -
|
| -InjectedScriptManager::InjectedScriptManager(V8DebuggerClient* client)
|
| - : m_injectedScriptHost(InjectedScriptHost::create())
|
| - , m_customObjectFormatterEnabled(false)
|
| - , m_client(client)
|
| -{
|
| -}
|
| -
|
| -InjectedScriptManager::~InjectedScriptManager()
|
| -{
|
| -}
|
| -
|
| -void InjectedScriptManager::disconnect()
|
| -{
|
| - m_injectedScriptHost->disconnect();
|
| - m_injectedScriptHost.clear();
|
| -}
|
| -
|
| -InjectedScriptHost* InjectedScriptManager::injectedScriptHost()
|
| -{
|
| - return m_injectedScriptHost.get();
|
| -}
|
| -
|
| -InjectedScript* InjectedScriptManager::findInjectedScript(int id) const
|
| -{
|
| - IdToInjectedScriptMap::const_iterator it = m_idToInjectedScript.find(id);
|
| - if (it != m_idToInjectedScript.end())
|
| - return it->value.get();
|
| - return nullptr;
|
| -}
|
| -
|
| -InjectedScript* InjectedScriptManager::findInjectedScript(RemoteObjectIdBase* objectId) const
|
| -{
|
| - return objectId ? findInjectedScript(objectId->contextId()) : nullptr;
|
| -}
|
| -
|
| -void InjectedScriptManager::discardInjectedScripts()
|
| -{
|
| - m_idToInjectedScript.clear();
|
| -}
|
| -
|
| -int InjectedScriptManager::discardInjectedScriptFor(v8::Local<v8::Context> context)
|
| -{
|
| - int contextId = V8Debugger::contextId(context);
|
| - discardInjectedScript(contextId);
|
| - return contextId;
|
| -}
|
| -
|
| -void InjectedScriptManager::discardInjectedScript(int contextId)
|
| -{
|
| - m_idToInjectedScript.remove(contextId);
|
| -}
|
| -
|
| -void InjectedScriptManager::releaseObjectGroup(const String& objectGroup)
|
| -{
|
| - Vector<int> keys;
|
| - keys.appendRange(m_idToInjectedScript.keys().begin(), m_idToInjectedScript.keys().end());
|
| - for (auto& key : keys) {
|
| - IdToInjectedScriptMap::iterator s = m_idToInjectedScript.find(key);
|
| - if (s != m_idToInjectedScript.end())
|
| - s->value->releaseObjectGroup(objectGroup); // m_idToInjectedScript may change here.
|
| - }
|
| -}
|
| -
|
| -void InjectedScriptManager::setCustomObjectFormatterEnabled(bool enabled)
|
| -{
|
| - m_customObjectFormatterEnabled = enabled;
|
| - IdToInjectedScriptMap::iterator end = m_idToInjectedScript.end();
|
| - for (IdToInjectedScriptMap::iterator it = m_idToInjectedScript.begin(); it != end; ++it) {
|
| - it->value->setCustomObjectFormatterEnabled(enabled);
|
| - }
|
| -}
|
| -
|
| -InjectedScript* InjectedScriptManager::injectedScriptFor(v8::Local<v8::Context> context)
|
| -{
|
| - v8::Context::Scope scope(context);
|
| - int contextId = V8Debugger::contextId(context);
|
| -
|
| - IdToInjectedScriptMap::iterator it = m_idToInjectedScript.find(contextId);
|
| - if (it != m_idToInjectedScript.end())
|
| - return it->value.get();
|
| -
|
| - v8::Local<v8::Context> callingContext = context->GetIsolate()->GetCallingContext();
|
| - if (!callingContext.IsEmpty() && !m_client->callingContextCanAccessContext(callingContext, context))
|
| - return nullptr;
|
| -
|
| - RefPtr<InjectedScriptNative> injectedScriptNative = adoptRef(new InjectedScriptNative(context->GetIsolate()));
|
| -
|
| - const WebData& injectedScriptSourceResource = Platform::current()->loadResource("InjectedScriptSource.js");
|
| - String injectedScriptSource(injectedScriptSourceResource.data(), injectedScriptSourceResource.size());
|
| -
|
| - v8::Local<v8::Object> object = createInjectedScript(injectedScriptSource, context, contextId, injectedScriptNative.get());
|
| - OwnPtr<InjectedScript> result = adoptPtr(new InjectedScript(this, context, object, m_client, injectedScriptNative.release(), contextId));
|
| - InjectedScript* resultPtr = result.get();
|
| - if (m_customObjectFormatterEnabled)
|
| - result->setCustomObjectFormatterEnabled(m_customObjectFormatterEnabled);
|
| - m_idToInjectedScript.set(contextId, result.release());
|
| - return resultPtr;
|
| -}
|
| -
|
| -v8::Local<v8::Object> InjectedScriptManager::createInjectedScript(const String& scriptSource, v8::Local<v8::Context> context, int id, InjectedScriptNative* injectedScriptNative)
|
| -{
|
| - v8::Isolate* isolate = context->GetIsolate();
|
| - v8::Context::Scope scope(context);
|
| -
|
| - v8::Local<v8::FunctionTemplate> wrapperTemplate = m_injectedScriptHost->wrapperTemplate(isolate);
|
| - if (wrapperTemplate.IsEmpty()) {
|
| - wrapperTemplate = V8InjectedScriptHost::createWrapperTemplate(isolate);
|
| - m_injectedScriptHost->setWrapperTemplate(wrapperTemplate, isolate);
|
| - }
|
| -
|
| - v8::Local<v8::Object> scriptHostWrapper = V8InjectedScriptHost::wrap(wrapperTemplate, context, m_injectedScriptHost);
|
| - if (scriptHostWrapper.IsEmpty())
|
| - return v8::Local<v8::Object>();
|
| -
|
| - injectedScriptNative->setOnInjectedScriptHost(scriptHostWrapper);
|
| -
|
| - // Inject javascript into the context. The compiled script is supposed to evaluate into
|
| - // a single anonymous function(it's anonymous to avoid cluttering the global object with
|
| - // inspector's stuff) the function is called a few lines below with InjectedScriptHost wrapper,
|
| - // injected script id and explicit reference to the inspected global object. The function is expected
|
| - // to create and configure InjectedScript instance that is going to be used by the inspector.
|
| - v8::Local<v8::Value> value;
|
| - if (!m_client->compileAndRunInternalScript(scriptSource).ToLocal(&value))
|
| - return v8::Local<v8::Object>();
|
| - ASSERT(value->IsFunction());
|
| -
|
| - v8::Local<v8::Object> windowGlobal = context->Global();
|
| - v8::Local<v8::Value> info[] = { scriptHostWrapper, windowGlobal, v8::Number::New(context->GetIsolate(), id) };
|
| - v8::Local<v8::Value> injectedScriptValue;
|
| - if (!m_client->callInternalFunction(v8::Local<v8::Function>::Cast(value), windowGlobal, WTF_ARRAY_LENGTH(info), info).ToLocal(&injectedScriptValue))
|
| - return v8::Local<v8::Object>();
|
| - if (!injectedScriptValue->IsObject())
|
| - return v8::Local<v8::Object>();
|
| - return injectedScriptValue.As<v8::Object>();
|
| -}
|
| -
|
| -} // namespace blink
|
|
|