void V8WrapperInstantiationScope::convertException() { v8::Isolate* isolate = m_context->GetIsolate(); // TODO(jochen): Currently, Location is the only object for which we can reach this code path. Should be generalized. ExceptionState exceptionState(ExceptionState::ConstructionContext, "Location", isolate->GetCurrentContext()->Global(), isolate); LocalDOMWindow* callingWindow = callingDOMWindow(isolate); DOMWindow* targetWindow = toDOMWindow(m_context); exceptionState.throwSecurityError(targetWindow->sanitizedCrossDomainAccessErrorMessage(callingWindow), targetWindow->crossDomainAccessErrorMessage(callingWindow)); exceptionState.throwIfNeeded(); }
static void failedAccessCheckCallbackInMainThread(v8::Local<v8::Object> host, v8::AccessType type, v8::Local<v8::Value> data) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); Frame* target = findFrame(isolate, host, data); if (!target) return; DOMWindow* targetWindow = target->domWindow(); // FIXME: We should modify V8 to pass in more contextual information (context, property, and object). ExceptionState exceptionState(ExceptionState::UnknownContext, 0, 0, isolate->GetCurrentContext()->Global(), isolate); exceptionState.throwSecurityError(targetWindow->sanitizedCrossDomainAccessErrorMessage(currentDOMWindow(isolate)), targetWindow->crossDomainAccessErrorMessage(currentDOMWindow(isolate))); exceptionState.throwIfNeeded(); }