void RCCFileInfo::writeDataInfo(RCCResourceLibrary &lib) { const bool text = (lib.m_format == RCCResourceLibrary::C_Code || lib.m_format == RCCResourceLibrary::Go_Code); //some info if (text) { if (m_language != QLocale::C) { lib.writeString(" // "); lib.writeByteArray(resourceName().toLocal8Bit()); lib.writeString(" ["); lib.writeByteArray(QByteArray::number(m_country)); lib.writeString("::"); lib.writeByteArray(QByteArray::number(m_language)); lib.writeString("[\n "); } else { lib.writeString(" // "); lib.writeByteArray(resourceName().toUtf8()); lib.writeString("\n "); } } //pointer data if (m_flags & RCCFileInfo::Directory) { // name offset lib.writeNumber4(m_nameOffset); // flags lib.writeNumber2(m_flags); // child count lib.writeNumber4(m_children.size()); // first child offset lib.writeNumber4(m_childOffset); } else { // name offset lib.writeNumber4(m_nameOffset); // flags lib.writeNumber2(m_flags); // locale lib.writeNumber2(m_country); lib.writeNumber2(m_language); //data offset lib.writeNumber4(m_dataOffset); } if (text) lib.writeChar('\n'); }
/* ------------------------------------------------------------------------- This will be called when this file shandler is preraped to be used for, opening or constructing a file. The open/new etc. functions are called strait after calling this function. ------------------------------------------------------------------------- */ void CCrashContainer::ConstructL(CEikButtonGroupContainer* aCba) { iCba = aCba; CreateWindowL(); iServerIsOn = IsServerOn(); iBgContext = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgAreaMain,TRect(0,0,1,1), ETrue); iResId = -1; TFindFile AppFile(CCoeEnv::Static()->FsSession()); if(KErrNone == AppFile.FindByDir(KCrashResourceFileName, KNullDesC)) { TFileName resourceName(AppFile.File()); BaflUtils::NearestLanguageFile(CEikonEnv::Static()->FsSession(), resourceName); iResId = CEikonEnv::Static()->AddResourceFileL(resourceName); } SetRect(CEikonEnv::Static()->EikAppUi()->ClientRect()); ActivateL(); SetMenuL(); DrawNow(); ChangeIconAndNameL(); }
v8::Local<v8::Value> V8WorkerContextEventListener::callListenerFunction(ScriptExecutionContext* context, v8::Handle<v8::Value> jsEvent, Event* event) { V8GCController::checkMemoryUsage(); v8::Local<v8::Function> handlerFunction = getListenerFunction(context); v8::Local<v8::Object> receiver = getReceiverObject(context, event); if (handlerFunction.IsEmpty() || receiver.IsEmpty()) return v8::Local<v8::Value>(); InspectorInstrumentationCookie cookie; if (InspectorInstrumentation::timelineAgentEnabled(context)) { String resourceName("undefined"); int lineNumber = 1; v8::ScriptOrigin origin = handlerFunction->GetScriptOrigin(); if (!origin.ResourceName().IsEmpty()) { resourceName = toWebCoreString(origin.ResourceName()); lineNumber = handlerFunction->GetScriptLineNumber() + 1; } cookie = InspectorInstrumentation::willCallFunction(context, resourceName, lineNumber); } v8::Handle<v8::Value> parameters[1] = { jsEvent }; V8RecursionScope recursionScope(context); v8::Local<v8::Value> result = handlerFunction->Call(receiver, 1, parameters); InspectorInstrumentation::didCallFunction(cookie); return result; }
v8::Local<v8::Value> V8WorkerGlobalScopeEventListener::callListenerFunction(ExecutionContext* context, v8::Handle<v8::Value> jsEvent, Event* event) { v8::Local<v8::Function> handlerFunction = getListenerFunction(context); v8::Local<v8::Object> receiver = getReceiverObject(context, event); if (handlerFunction.IsEmpty() || receiver.IsEmpty()) return v8::Local<v8::Value>(); InspectorInstrumentationCookie cookie; if (InspectorInstrumentation::timelineAgentEnabled(context)) { String resourceName("undefined"); int lineNumber = 1; v8::Handle<v8::Function> originalFunction = getBoundFunction(handlerFunction); v8::ScriptOrigin origin = originalFunction->GetScriptOrigin(); if (!origin.ResourceName().IsEmpty()) { V8TRYCATCH_FOR_V8STRINGRESOURCE_RETURN(V8StringResource<>, stringResourceName, origin.ResourceName(), v8::Local<v8::Value>()); resourceName = stringResourceName; lineNumber = originalFunction->GetScriptLineNumber() + 1; } cookie = InspectorInstrumentation::willCallFunction(context, resourceName, lineNumber); } v8::Isolate* isolate = toIsolate(context); v8::Handle<v8::Value> parameters[1] = { jsEvent }; v8::Local<v8::Value> result = V8ScriptRunner::callFunction(handlerFunction, context, receiver, WTF_ARRAY_LENGTH(parameters), parameters, isolate); InspectorInstrumentation::didCallFunction(cookie); return result; }
String WebSocketHandshake::clientLocation() const { StringBuilder builder; builder.append(m_secure ? "wss" : "ws"); builder.append("://"); builder.append(hostName(m_url, m_secure)); builder.append(resourceName(m_url)); return builder.toString(); }
LexerException *Lexer::lexerException(QString message) const { int column, line; computeColumnAndLineForPosition(source(), _position, column, line); QString text = extractLine(source(), line); if(!text.isEmpty()) { QString cursor = QString(" ").repeated(column - 1).append("^"); message += "\n" + text + "\n" + cursor; } return LexerException::make(message, resourceName(), line); }
CString WebSocketHandshake::clientHandshakeMessage() const { // Keep the following consistent with clientHandshakeRequest(). StringBuilder builder; builder.append("GET "); builder.append(resourceName(m_url)); builder.append(" HTTP/1.1\r\n"); Vector<String> fields; fields.append("Upgrade: websocket"); fields.append("Connection: Upgrade"); fields.append("Host: " + hostName(m_url, m_secure)); fields.append("Origin: " + clientOrigin()); if (!m_clientProtocol.isEmpty()) fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol); KURL url = httpURLForAuthenticationAndCookies(); if (m_context->isDocument()) { Document* document = toDocument(m_context); String cookie = cookieRequestHeaderFieldValue(document, url); if (!cookie.isEmpty()) fields.append("Cookie: " + cookie); // Set "Cookie2: <cookie>" if cookies 2 exists for url? } // Add no-cache headers to avoid compatibility issue. // There are some proxies that rewrite "Connection: upgrade" // to "Connection: close" in the response if a request doesn't contain // these headers. fields.append("Pragma: no-cache"); fields.append("Cache-Control: no-cache"); fields.append("Sec-WebSocket-Key: " + m_secWebSocketKey); fields.append("Sec-WebSocket-Version: 13"); const String extensionValue = m_extensionDispatcher.createHeaderValue(); if (extensionValue.length()) fields.append("Sec-WebSocket-Extensions: " + extensionValue); // Add a User-Agent header. fields.append("User-Agent: " + m_context->userAgent(m_context->url())); // Fields in the handshake are sent by the client in a random order; the // order is not meaningful. Thus, it's ok to send the order we constructed // the fields. for (size_t i = 0; i < fields.size(); i++) { builder.append(fields[i]); builder.append("\r\n"); } builder.append("\r\n"); return builder.toString().utf8(); }
void RetrieveCollectionsTask::doStart(KIMAP::Session *session) { Akonadi::Collection root; root.setName(resourceName()); root.setRemoteId(rootRemoteId()); root.setContentMimeTypes(QStringList(Akonadi::Collection::mimeType())); root.setParentCollection(Akonadi::Collection::root()); root.addAttribute(new NoSelectAttribute(true)); Akonadi::CachePolicy policy; policy.setInheritFromParent(false); policy.setSyncOnDemand(true); QStringList localParts; localParts << QLatin1String(Akonadi::MessagePart::Envelope) << QLatin1String(Akonadi::MessagePart::Header); int cacheTimeout = 60; if (isDisconnectedModeEnabled()) { // For disconnected mode we also cache the body // and we keep all data indifinitely localParts << QLatin1String(Akonadi::MessagePart::Body); cacheTimeout = -1; } policy.setLocalParts(localParts); policy.setCacheTimeout(cacheTimeout); policy.setIntervalCheckTime(intervalCheckTime()); root.setCachePolicy(policy); m_reportedCollections.insert(QString(), root); // this is ugly, but the result of LSUB is unfortunately not a sub-set of LIST // it also contains subscribed but currently not available (eg. deleted) mailboxes // so we need to use both and exclude mailboxes in LSUB but not in LIST if (isSubscriptionEnabled()) { KIMAP::ListJob *fullListJob = new KIMAP::ListJob(session); fullListJob->setIncludeUnsubscribed(true); fullListJob->setQueriedNamespaces(serverNamespaces()); connect(fullListJob, &KIMAP::ListJob::mailBoxesReceived, this, &RetrieveCollectionsTask::onFullMailBoxesReceived); connect(fullListJob, &KIMAP::ListJob::result, this, &RetrieveCollectionsTask::onFullMailBoxesReceiveDone); fullListJob->start(); } KIMAP::ListJob *listJob = new KIMAP::ListJob(session); listJob->setIncludeUnsubscribed(!isSubscriptionEnabled()); listJob->setQueriedNamespaces(serverNamespaces()); connect(listJob, &KIMAP::ListJob::mailBoxesReceived, this, &RetrieveCollectionsTask::onMailBoxesReceived); connect(listJob, &KIMAP::ListJob::result, this, &RetrieveCollectionsTask::onMailBoxesReceiveDone); listJob->start(); }
v8::Local<v8::Value> V8Proxy::callFunction(v8::Handle<v8::Function> function, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[]) { /// M: add for systrace TRACE_METHOD() V8GCController::checkMemoryUsage(); v8::Local<v8::Value> result; { if (m_recursion >= kMaxRecursionDepth) { v8::Local<v8::String> code = v8::String::New("throw new RangeError('Maximum call stack size exceeded.')"); if (code.IsEmpty()) return result; v8::Local<v8::Script> script = v8::Script::Compile(code); if (script.IsEmpty()) return result; script->Run(); return result; } // Evaluating the JavaScript could cause the frame to be deallocated, // so we start the keep alive timer here. // Frame::keepAlive method adds the ref count of the frame and sets a // timer to decrease the ref count. It assumes that the current JavaScript // execution finishs before firing the timer. m_frame->keepAlive(); InspectorInstrumentationCookie cookie; if (InspectorInstrumentation::hasFrontends()) { v8::ScriptOrigin origin = function->GetScriptOrigin(); String resourceName("undefined"); int lineNumber = 1; if (!origin.ResourceName().IsEmpty()) { resourceName = toWebCoreString(origin.ResourceName()); lineNumber = function->GetScriptLineNumber() + 1; } cookie = InspectorInstrumentation::willCallFunction(m_frame, resourceName, lineNumber); } m_recursion++; result = function->Call(receiver, argc, args); m_recursion--; InspectorInstrumentation::didCallFunction(cookie); } // Release the storage mutex if applicable. didLeaveScriptContext(); if (v8::V8::IsDead()) handleFatalErrorInV8(); return result; }
String WebSocketHandshake::clientLocation() const { StringBuilder builder; builder.append(m_secure ? "wss" : "ws"); builder.append("://"); builder.append(m_url.host().lower()); if (m_url.port()) { if ((!m_secure && m_url.port() != 80) || (m_secure && m_url.port() != 443)) { builder.append(":"); builder.append(String::number(m_url.port())); } } builder.append(resourceName(m_url)); return builder.toString(); }
/* ------------------------------------------------------------------------- This will be called when this file shandler is paped to be used for, opening or constructing a file. The open/new etc. functions are called strait after calling this function. ------------------------------------------------------------------------- */ void CTraceContainer::ConstructL(CEikButtonGroupContainer* aCba) { iCba = aCba; TMemoryInfoV1Buf memInfoBuf; UserHal::MemoryInfo(memInfoBuf); iTotalRamInBytes = (memInfoBuf().iTotalRamInBytes / 1000); CreateWindowL(); iServerIsOn = IsServerOn(); iBgContext = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgScreen,TRect(0,0,1,1), ETrue); iResId = -1; TFindFile AppFile(CCoeEnv::Static()->FsSession()); if(KErrNone == AppFile.FindByDir(KTraceResourceFileName, KNullDesC)) { TFileName resourceName(AppFile.File()); BaflUtils::NearestLanguageFile(CEikonEnv::Static()->FsSession(), resourceName); iResId = CEikonEnv::Static()->AddResourceFileL(resourceName); } SetRect(CEikonEnv::Static()->EikAppUi()->ClientRect()); TFindFile ImgFile(CCoeEnv::Static()->FsSession()); if(KErrNone == ImgFile.FindByDir(KTraceIconsFileName, KNullDesC)) { TRect ThisRect(Rect()); ThisRect.Shrink(4,4); TInt HeightMe = (ThisRect.Height() / 2); TSize MskImgSiz(ThisRect.Width(),HeightMe); iMaskImg= LoadImageL(ImgFile.File(), 4, 5,MskImgSiz,EAspectRatioNotPreserved); } ActivateL(); SetMenuL(); DrawNow(); iTimeOutTimer = CTimeOutTimer::NewL(EPriorityNormal,*this); ChangeIconAndNameL(); if(iServerIsOn) { ForegroundChangedL(ETrue); } }
CString WebSocketHandshake::clientHandshakeMessage() const { // Keep the following consistent with clientHandshakeRequest(). StringBuilder builder; builder.append("GET "); builder.append(resourceName(m_url)); builder.append(" HTTP/1.1\r\n"); Vector<String> fields; fields.append("Upgrade: WebSocket"); fields.append("Connection: Upgrade"); fields.append("Host: " + hostName(m_url, m_secure)); fields.append("Origin: " + clientOrigin()); if (!m_clientProtocol.isEmpty()) fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol); KURL url = httpURLForAuthenticationAndCookies(); if (m_context->isDocument()) { Document* document = static_cast<Document*>(m_context); String cookie = cookieRequestHeaderFieldValue(document, url); if (!cookie.isEmpty()) fields.append("Cookie: " + cookie); // Set "Cookie2: <cookie>" if cookies 2 exists for url? } fields.append("Sec-WebSocket-Key1: " + m_secWebSocketKey1); fields.append("Sec-WebSocket-Key2: " + m_secWebSocketKey2); // Fields in the handshake are sent by the client in a random order; the // order is not meaningful. Thus, it's ok to send the order we constructed // the fields. for (size_t i = 0; i < fields.size(); i++) { builder.append(fields[i]); builder.append("\r\n"); } builder.append("\r\n"); CString handshakeHeader = builder.toString().utf8(); char* characterBuffer = 0; CString msg = CString::newUninitialized(handshakeHeader.length() + sizeof(m_key3), characterBuffer); memcpy(characterBuffer, handshakeHeader.data(), handshakeHeader.length()); memcpy(characterBuffer + handshakeHeader.length(), m_key3, sizeof(m_key3)); return msg; }
// _ReadResourceInfo const void* ResourceFile::_ReadResourceInfo(const MemArea& area, const resource_info* info, type_code type, bool* readIndices) { int32 id = _GetInt32(info->ri_id); int32 index = _GetInt32(info->ri_index); uint16 nameSize = _GetUInt16(info->ri_name_size); const char* name = info->ri_name; // check the values bool ignore = false; // index if (index < 1 || index > fResourceCount) { Warnings::AddCurrentWarning("Invalid index field in resource " "info table: %lu.", index); ignore = true; } if (!ignore) { if (readIndices[index - 1]) { throw Exception("Multiple resource infos with the same index " "field: %ld.", index); } readIndices[index - 1] = true; } // name size if (!area.check(name, nameSize)) { throw Exception("Invalid name size (%d) for index %ld in " "resource info table.", (int)nameSize, index); } // check, if name is null terminated if (name[nameSize - 1] != 0) { Warnings::AddCurrentWarning("Name for index %ld in " "resource info table is not null " "terminated.", index); } // set the values if (!ignore) { BString resourceName(name, nameSize); if (ResourceItem* item = ItemAt(index - 1)) item->SetIdentity(type, id, resourceName.String()); else { throw Exception("Unexpected error: No resource item at index " "%ld.", index); } } return skip_bytes(name, nameSize); }
/* ------------------------------------------------------------------------- This will be called when this file shandler is preraped to be used for, opening or constructing a file. The open/new etc. functions are called strait after calling this function. ------------------------------------------------------------------------- */ void CYBrowserFileHandler1::ConstructL() { CreateWindowL(); TFindFile AppFile(CCoeEnv::Static()->FsSession()); if(KErrNone == AppFile.FindByDir(KMyResourceFileName, KNullDesC)) { TFileName resourceName(AppFile.File()); BaflUtils::NearestLanguageFile(CEikonEnv::Static()->FsSession(), resourceName); iResId = CEikonEnv::Static()->AddResourceFileL(resourceName); } SetRect(CEikonEnv::Static()->EikAppUi()->ClientRect()); ActivateL(); SetMenuL(); }
CString WebSocketHandshake::clientHandshakeMessage() const { // Keep the following consistent with clientHandshakeRequest(). StringBuilder builder; builder.append("GET "); builder.append(resourceName(m_url)); builder.append(" HTTP/1.1\r\n"); Vector<String> fields; fields.append("Upgrade: websocket"); fields.append("Connection: Upgrade"); fields.append("Host: " + hostName(m_url, m_secure)); fields.append("Origin: " + clientOrigin()); if (!m_clientProtocol.isEmpty()) fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol); KURL url = httpURLForAuthenticationAndCookies(); if (m_context->isDocument()) { Document* document = static_cast<Document*>(m_context); String cookie = cookieRequestHeaderFieldValue(document, url); if (!cookie.isEmpty()) fields.append("Cookie: " + cookie); // Set "Cookie2: <cookie>" if cookies 2 exists for url? } fields.append("Sec-WebSocket-Key: " + m_secWebSocketKey); fields.append("Sec-WebSocket-Version: 13"); const String extensionValue = m_extensionDispatcher.createHeaderValue(); if (extensionValue.length()) fields.append("Sec-WebSocket-Extensions: " + extensionValue); // Fields in the handshake are sent by the client in a random order; the // order is not meaningful. Thus, it's ok to send the order we constructed // the fields. for (size_t i = 0; i < fields.size(); i++) { builder.append(fields[i]); builder.append("\r\n"); } builder.append("\r\n"); return builder.toString().utf8(); }
CString WebSocketHandshake::clientHandshakeMessage() const { StringBuilder builder; builder.append("GET "); builder.append(resourceName(m_url)); builder.append(" HTTP/1.1\r\n"); builder.append("Upgrade: WebSocket\r\n"); builder.append("Connection: Upgrade\r\n"); builder.append("Host: "); builder.append(m_url.host().lower()); if (m_url.port()) { if ((!m_secure && m_url.port() != 80) || (m_secure && m_url.port() != 443)) { builder.append(":"); builder.append(String::number(m_url.port())); } } builder.append("\r\n"); builder.append("Origin: "); builder.append(clientOrigin()); builder.append("\r\n"); if (!m_clientProtocol.isEmpty()) { builder.append("WebSocket-Protocol: "); builder.append(m_clientProtocol); builder.append("\r\n"); } KURL url = httpURLForAuthenticationAndCookies(); // FIXME: set authentication information or cookies for url. // Set "Authorization: <credentials>" if authentication information exists for url. if (m_context->isDocument()) { Document* document = static_cast<Document*>(m_context); String cookie = cookieRequestHeaderFieldValue(document, url); if (!cookie.isEmpty()) { builder.append("Cookie: "); builder.append(cookie); builder.append("\r\n"); } // Set "Cookie2: <cookie>" if cookies 2 exists for url? } builder.append("\r\n"); return builder.toString().utf8(); }
v8::Local<v8::Value> V8Proxy::instrumentedCallFunction(Frame* frame, v8::Handle<v8::Function> function, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[]) { V8GCController::checkMemoryUsage(); if (V8RecursionScope::recursionLevel() >= kMaxRecursionDepth) return handleMaxRecursionDepthExceeded(); ScriptExecutionContext* context = frame ? frame->document() : 0; InspectorInstrumentationCookie cookie; if (InspectorInstrumentation::hasFrontends() && context) { String resourceName("undefined"); int lineNumber = 1; v8::ScriptOrigin origin = function->GetScriptOrigin(); if (!origin.ResourceName().IsEmpty()) { resourceName = toWebCoreString(origin.ResourceName()); lineNumber = function->GetScriptLineNumber() + 1; } cookie = InspectorInstrumentation::willCallFunction(context, resourceName, lineNumber); } v8::Local<v8::Value> result; { #if PLATFORM(CHROMIUM) TRACE_EVENT0("v8", "v8.callFunction"); #endif V8RecursionScope recursionScope(context); result = function->Call(receiver, argc, args); } InspectorInstrumentation::didCallFunction(cookie); if (v8::V8::IsDead()) handleFatalErrorInV8(); return result; }
v8::Local<v8::Value> V8Proxy::callFunction(v8::Handle<v8::Function> function, v8::Handle<v8::Object> receiver, int argc, v8::Handle<v8::Value> args[]) { V8GCController::checkMemoryUsage(); v8::Local<v8::Value> result; { V8ConsoleMessage::Scope scope; if (m_recursion >= kMaxRecursionDepth) { v8::Local<v8::String> code = v8::String::New("throw new RangeError('Maximum call stack size exceeded.')"); if (code.IsEmpty()) return result; v8::Local<v8::Script> script = v8::Script::Compile(code); if (script.IsEmpty()) return result; script->Run(); return result; } // Evaluating the JavaScript could cause the frame to be deallocated, // so we start the keep alive timer here. // Frame::keepAlive method adds the ref count of the frame and sets a // timer to decrease the ref count. It assumes that the current JavaScript // execution finishs before firing the timer. m_frame->keepAlive(); #if ENABLE(INSPECTOR) Page* inspectedPage = InspectorTimelineAgent::instanceCount() ? m_frame->page(): 0; if (inspectedPage) { if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) { v8::ScriptOrigin origin = function->GetScriptOrigin(); String resourceName("undefined"); int lineNumber = 1; if (!origin.ResourceName().IsEmpty()) { resourceName = toWebCoreString(origin.ResourceName()); lineNumber = function->GetScriptLineNumber() + 1; } timelineAgent->willCallFunction(resourceName, lineNumber); } else inspectedPage = 0; } #endif // !ENABLE(INSPECTOR) m_recursion++; result = function->Call(receiver, argc, args); m_recursion--; #if ENABLE(INSPECTOR) if (inspectedPage) if (InspectorTimelineAgent* timelineAgent = inspectedPage->inspectorTimelineAgent()) timelineAgent->didCallFunction(); #endif // !ENABLE(INSPECTOR) } // Release the storage mutex if applicable. didLeaveScriptContext(); if (v8::V8::IsDead()) handleFatalErrorInV8(); return result; }
bool ServiceManager::initialize(int width, int height) { if (effects) return true; mlt_properties properties = MLT_SERVICE_PROPERTIES(service); // Create and initialize Effects const char* fileName = mlt_properties_get(properties, "resource"); if (!fileName) { mlt_log(service, MLT_LOG_ERROR, "No 'resource' property found\n"); return false; } bool isTransparent = mlt_properties_get_int(properties, "transparent") || mlt_service_identify(service) == filter_type; parameters = new ServiceParameters(service); effects = WebVfx::createEffects(fileName, width, height, parameters, isTransparent); if (!effects) { mlt_log(service, MLT_LOG_ERROR, "Failed to create WebVfx Effects for resource %s\n", fileName); return false; } // Iterate over image map - save source and target image names, // and create an ImageProducer for each extra image. char* factory = mlt_properties_get(properties, "factory"); WebVfx::Effects::ImageTypeMapIterator it(effects->getImageTypeMap()); while (it.hasNext()) { it.next(); const QString& imageName = it.key(); switch (it.value()) { case WebVfx::Effects::SourceImageType: sourceImageName = imageName; break; case WebVfx::Effects::TargetImageType: targetImageName = imageName; break; case WebVfx::Effects::ExtraImageType: { if (!imageProducers) imageProducers = new std::vector<ImageProducer*>(3); // Property prefix "producer.<name>." QString producerPrefix("producer."); producerPrefix.append(imageName).append("."); // Find producer.<name>.resource property QString resourceName(producerPrefix); resourceName.append("resource"); char* resource = mlt_properties_get(properties, resourceName.toLatin1().constData()); if (resource) { mlt_producer producer = mlt_factory_producer(mlt_service_profile(service), factory, resource); if (!producer) { mlt_log(service, MLT_LOG_ERROR, "WebVfx failed to create extra image producer for %s\n", resourceName.toLatin1().constData()); return false; } // Copy producer.<name>.* properties onto producer mlt_properties_pass(MLT_PRODUCER_PROPERTIES(producer), properties, producerPrefix.toLatin1().constData()); // Append ImageProducer to vector imageProducers->insert(imageProducers->end(), new ImageProducer(imageName, producer)); } else mlt_log(service, MLT_LOG_WARNING, "WebVfx no producer resource property specified for extra image %s\n", resourceName.toLatin1().constData()); break; } default: mlt_log(service, MLT_LOG_ERROR, "Invalid WebVfx image type %d\n", it.value()); break; } } return true; }
CString WebSocketHandshake::clientHandshakeMessage() const { // Keep the following consistent with clientHandshakeRequest(). StringBuilder builder; builder.append("GET "); builder.append(resourceName(m_url)); builder.append(" HTTP/1.1\r\n"); Vector<String> fields; if (m_useHixie76Protocol) fields.append("Upgrade: WebSocket"); else fields.append("Upgrade: websocket"); fields.append("Connection: Upgrade"); fields.append("Host: " + hostName(m_url, m_secure)); fields.append("Origin: " + clientOrigin()); if (!m_clientProtocol.isEmpty()) fields.append("Sec-WebSocket-Protocol: " + m_clientProtocol); KURL url = httpURLForAuthenticationAndCookies(); if (m_context->isDocument()) { Document* document = static_cast<Document*>(m_context); String cookie = cookieRequestHeaderFieldValue(document, url); if (!cookie.isEmpty()) fields.append("Cookie: " + cookie); // Set "Cookie2: <cookie>" if cookies 2 exists for url? } if (m_useHixie76Protocol) { fields.append("Sec-WebSocket-Key1: " + m_hixie76SecWebSocketKey1); fields.append("Sec-WebSocket-Key2: " + m_hixie76SecWebSocketKey2); } else { fields.append("Sec-WebSocket-Key: " + m_secWebSocketKey); fields.append("Sec-WebSocket-Version: 13"); const String extensionValue = m_extensionDispatcher.createHeaderValue(); if (extensionValue.length()) fields.append("Sec-WebSocket-Extensions: " + extensionValue); } // Fields in the handshake are sent by the client in a random order; the // order is not meaningful. Thus, it's ok to send the order we constructed // the fields. for (size_t i = 0; i < fields.size(); i++) { builder.append(fields[i]); builder.append("\r\n"); } builder.append("\r\n"); CString handshakeHeader = builder.toString().utf8(); // Hybi-10 handshake is complete at this point. if (!m_useHixie76Protocol) return handshakeHeader; // Hixie-76 protocol requires sending eight-byte data (so-called "key3") after the request header fields. char* characterBuffer = 0; CString msg = CString::newUninitialized(handshakeHeader.length() + sizeof(m_hixie76Key3), characterBuffer); memcpy(characterBuffer, handshakeHeader.data(), handshakeHeader.length()); memcpy(characterBuffer + handshakeHeader.length(), m_hixie76Key3, sizeof(m_hixie76Key3)); return msg; }
bool ResourceNameDialog::acceptable() const { QString resultResourceName = resourceName(); return (!resultResourceName.isEmpty() && !mScript->hasResource(resourceName())); }
/// Load texture data using the specified file name void Texture::threadedLoad(DELEGATE_CBK<void, CachedResource_wptr> onLoadCallback) { TextureLoadInfo info; // Each texture face/layer must be in a comma separated list stringstreamImpl textureLocationList(assetLocation()); stringstreamImpl textureFileList(assetName()); bool loadFromFile = false; vector<stringImpl> fileNames; // We loop over every texture in the above list and store it in this // temporary string stringImpl currentTextureFile; stringImpl currentTextureLocation; stringImpl currentTextureFullPath; while (std::getline(textureLocationList, currentTextureLocation, ',') && std::getline(textureFileList, currentTextureFile, ',')) { Util::Trim(currentTextureFile); // Skip invalid entries if (!currentTextureFile.empty()) { fileNames.push_back( (currentTextureLocation.empty() ? Paths::g_texturesLocation : currentTextureLocation) + "/" + currentTextureFile); _descriptor._sourceFileList.push_back(currentTextureFile); } } loadFromFile = !fileNames.empty(); hashMap<U64, ImageTools::ImageData> dataStorage; for(const stringImpl& file : fileNames) { // Attempt to load the current entry if (!loadFile(info, file, dataStorage[_ID(file.c_str())])) { // Invalid texture files are not handled yet, so stop loading return; } info._layerIndex++; if (_textureData._textureType == TextureType::TEXTURE_CUBE_ARRAY) { if (info._layerIndex == 6) { info._layerIndex = 0; info._cubeMapCount++; } } } if (loadFromFile) { if (_textureData._textureType == TextureType::TEXTURE_CUBE_MAP || _textureData._textureType == TextureType::TEXTURE_CUBE_ARRAY) { if (info._layerIndex != 6) { Console::errorfn( Locale::get(_ID("ERROR_TEXTURE_LOADER_CUBMAP_INIT_COUNT")), resourceName().c_str()); return; } } if (_textureData._textureType == TextureType::TEXTURE_2D_ARRAY || _textureData._textureType == TextureType::TEXTURE_2D_ARRAY_MS) { if (info._layerIndex != _numLayers) { Console::errorfn( Locale::get(_ID("ERROR_TEXTURE_LOADER_ARRAY_INIT_COUNT")), resourceName().c_str()); return; } } if (_textureData._textureType == TextureType::TEXTURE_CUBE_ARRAY) { if (info._cubeMapCount != _numLayers) { Console::errorfn( Locale::get(_ID("ERROR_TEXTURE_LOADER_ARRAY_INIT_COUNT")), resourceName().c_str()); return; } } } }