本文整理汇总了C++中SecurityOrigin::canRequestNoSuborigin方法的典型用法代码示例。如果您正苦于以下问题:C++ SecurityOrigin::canRequestNoSuborigin方法的具体用法?C++ SecurityOrigin::canRequestNoSuborigin怎么用?C++ SecurityOrigin::canRequestNoSuborigin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SecurityOrigin
的用法示例。
在下文中一共展示了SecurityOrigin::canRequestNoSuborigin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: connect
void EventSource::connect() {
DCHECK_EQ(kConnecting, m_state);
DCHECK(!m_loader);
DCHECK(getExecutionContext());
ExecutionContext& executionContext = *this->getExecutionContext();
ResourceRequest request(m_currentURL);
request.setHTTPMethod(HTTPNames::GET);
request.setHTTPHeaderField(HTTPNames::Accept, "text/event-stream");
request.setHTTPHeaderField(HTTPNames::Cache_Control, "no-cache");
request.setRequestContext(WebURLRequest::RequestContextEventSource);
request.setExternalRequestStateFromRequestorAddressSpace(
executionContext.securityContext().addressSpace());
if (m_parser && !m_parser->lastEventId().isEmpty()) {
// HTTP headers are Latin-1 byte strings, but the Last-Event-ID header is
// encoded as UTF-8.
// TODO(davidben): This should be captured in the type of
// setHTTPHeaderField's arguments.
CString lastEventIdUtf8 = m_parser->lastEventId().utf8();
request.setHTTPHeaderField(
HTTPNames::Last_Event_ID,
AtomicString(reinterpret_cast<const LChar*>(lastEventIdUtf8.data()),
lastEventIdUtf8.length()));
}
SecurityOrigin* origin = executionContext.getSecurityOrigin();
ThreadableLoaderOptions options;
options.preflightPolicy = PreventPreflight;
options.crossOriginRequestPolicy = UseAccessControl;
options.contentSecurityPolicyEnforcement =
ContentSecurityPolicy::shouldBypassMainWorld(&executionContext)
? DoNotEnforceContentSecurityPolicy
: EnforceContentSecurityPolicy;
ResourceLoaderOptions resourceLoaderOptions;
resourceLoaderOptions.allowCredentials =
(origin->canRequestNoSuborigin(m_currentURL) || m_withCredentials)
? AllowStoredCredentials
: DoNotAllowStoredCredentials;
resourceLoaderOptions.credentialsRequested =
m_withCredentials ? ClientRequestedCredentials
: ClientDidNotRequestCredentials;
resourceLoaderOptions.dataBufferingPolicy = DoNotBufferData;
resourceLoaderOptions.securityOrigin = origin;
InspectorInstrumentation::willSendEventSourceRequest(&executionContext, this);
// InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient
// will be called synchronously.
m_loader = ThreadableLoader::create(executionContext, this, options,
resourceLoaderOptions);
m_loader->start(request);
}