static bool canAccessFrame(v8::Isolate* isolate, LocalDOMWindow* accessingWindow, SecurityOrigin* targetFrameOrigin, DOMWindow* targetWindow, SecurityReportingOption reportingOption = ReportSecurityError) { if (isOriginAccessibleFromDOMWindow(targetFrameOrigin, accessingWindow)) return true; if (reportingOption == ReportSecurityError && targetWindow) accessingWindow->printErrorMessage(targetWindow->crossDomainAccessErrorMessage(accessingWindow)); return false; }
static bool canAccessFrame(v8::Isolate* isolate, LocalDOMWindow* accessingWindow, SecurityOrigin* targetFrameOrigin, DOMWindow* targetWindow, ExceptionState& exceptionState) { if (isOriginAccessibleFromDOMWindow(targetFrameOrigin, accessingWindow)) return true; if (targetWindow) exceptionState.throwSecurityError(targetWindow->sanitizedCrossDomainAccessErrorMessage(accessingWindow), targetWindow->crossDomainAccessErrorMessage(accessingWindow)); return false; }
static bool canAccessFrame(v8::Isolate* isolate, SecurityOrigin* targetFrameOrigin, DOMWindow* targetWindow, SecurityReportingOption reportingOption = ReportSecurityError) { LocalDOMWindow* callingWindow = callingDOMWindow(isolate); // It's important to check that targetWindow is a LocalDOMWindow: it's // possible for a remote frame and local frame to have the same security // origin, depending on the model being used to allocate Frames between // processes. See https://crbug.com/601629. if (targetWindow->isLocalDOMWindow() && isOriginAccessibleFromDOMWindow(targetFrameOrigin, callingWindow)) return true; if (reportingOption == ReportSecurityError && targetWindow) callingWindow->printErrorMessage(targetWindow->crossDomainAccessErrorMessage(callingWindow)); return false; }