本文整理汇总了C++中ipc::ArgumentEncoder类的典型用法代码示例。如果您正苦于以下问题:C++ ArgumentEncoder类的具体用法?C++ ArgumentEncoder怎么用?C++ ArgumentEncoder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ArgumentEncoder类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: encode
void AssistedNodeInformation::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << elementRect;
encoder << selectionRect;
encoder << minimumScaleFactor;
encoder << maximumScaleFactor;
encoder << nodeFontSize;
encoder << hasNextNode;
encoder << hasPreviousNode;
encoder << isAutocorrect;
encoder << isRTL;
encoder.encodeEnum(autocapitalizeType);
encoder.encodeEnum(elementType);
encoder << formAction;
encoder << selectOptions;
encoder << selectedIndex;
encoder << isMultiSelect;
encoder << isReadOnly;
encoder << allowsUserScaling;
encoder << allowsUserScalingIgnoringForceAlwaysScaling;
encoder << insideFixedPosition;
encoder << value;
encoder << valueAsNumber;
encoder << title;
encoder.encodeEnum(autofillFieldName);
}
开发者ID:,项目名称:,代码行数:26,代码来源:
示例2:
void Coder<WebCore::CertificateInfo>::encode(Encoder& encoder, const WebCore::CertificateInfo& certificateInfo)
{
// FIXME: Cocoa CertificateInfo is a CF object tree. Generalize CF type coding so we don't need to use ArgumentCoder here.
IPC::ArgumentEncoder argumentEncoder;
argumentEncoder << certificateInfo;
encoder << static_cast<uint64_t>(argumentEncoder.bufferSize());
encoder.encodeFixedLengthData(argumentEncoder.buffer(), argumentEncoder.bufferSize());
}
开发者ID:fanghongjia,项目名称:JavaScriptCore,代码行数:8,代码来源:NetworkCacheCoders.cpp
示例3: encode
void WebContextMenuItemData::encode(IPC::ArgumentEncoder& encoder) const
{
// WebContextMenuItemDatas with a selection handler are meant to exist solely in the UIProcess and should never be sent over IPC.
ASSERT(!m_selectionHandler);
encoder.encodeEnum(m_type);
encoder.encodeEnum(m_action);
encoder << m_title;
encoder << m_checked;
encoder << m_enabled;
encoder << m_submenu;
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:12,代码来源:WebContextMenuItemData.cpp
示例4: encode
void WebPageCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << viewSize;
encoder << viewState;
encoder << store;
encoder.encodeEnum(drawingAreaType);
encoder << pageGroupData;
encoder << drawsBackground;
encoder << isEditable;
encoder << drawsTransparentBackground;
encoder << underlayColor;
encoder << useFixedLayout;
encoder << fixedLayoutSize;
encoder.encodeEnum(paginationMode);
encoder << paginationBehavesLikeColumns;
encoder << pageLength;
encoder << gapBetweenPages;
encoder << userAgent;
encoder << itemStates;
encoder << sessionID;
encoder << highestUsedBackForwardItemID;
encoder << userContentControllerID;
encoder << visitedLinkTableID;
encoder << websiteDataStoreID;
encoder << canRunBeforeUnloadConfirmPanel;
encoder << canRunModal;
encoder << deviceScaleFactor;
encoder << topContentInset;
encoder << mediaVolume;
encoder << muted;
encoder << mayStartMediaWhenInWindow;
encoder << minimumLayoutSize;
encoder << autoSizingShouldExpandToViewHeight;
encoder.encodeEnum(scrollPinningBehavior);
encoder << backgroundExtendsBeyondPage;
encoder.encodeEnum(layerHostingMode);
encoder << mimeTypesWithCustomContentProviders;
#if ENABLE(REMOTE_INSPECTOR)
encoder << allowsRemoteInspection;
#endif
#if PLATFORM(MAC)
encoder << colorSpace;
#endif
#if PLATFORM(IOS)
encoder << screenSize;
encoder << availableScreenSize;
encoder << textAutosizingWidth;
#endif
encoder << appleMailPaginationQuirkEnabled;
}
开发者ID:houzhenggang,项目名称:webkit,代码行数:52,代码来源:WebPageCreationParameters.cpp
示例5: encode
void NetworkResourceLoadParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << identifier;
encoder << webPageID;
encoder << webFrameID;
encoder << sessionID;
encoder << request;
encoder << static_cast<bool>(request.httpBody());
if (request.httpBody()) {
EncoderAdapter httpBodyEncoderAdapter;
request.httpBody()->encode(httpBodyEncoderAdapter);
encoder << httpBodyEncoderAdapter.dataReference();
const Vector<FormDataElement>& elements = request.httpBody()->elements();
size_t fileCount = 0;
for (size_t i = 0, count = elements.size(); i < count; ++i) {
if (elements[i].m_type == FormDataElement::encodedFile)
++fileCount;
}
SandboxExtension::HandleArray requestBodySandboxExtensions;
requestBodySandboxExtensions.allocate(fileCount);
size_t extensionIndex = 0;
for (size_t i = 0, count = elements.size(); i < count; ++i) {
const FormDataElement& element = elements[i];
if (element.m_type == FormDataElement::encodedFile) {
const String& path = element.m_shouldGenerateFile ? element.m_generatedFilename : element.m_filename;
SandboxExtension::createHandle(path, SandboxExtension::ReadOnly, requestBodySandboxExtensions[extensionIndex++]);
}
}
encoder << requestBodySandboxExtensions;
}
if (request.url().isLocalFile()) {
SandboxExtension::Handle requestSandboxExtension;
SandboxExtension::createHandle(request.url().fileSystemPath(), SandboxExtension::ReadOnly, requestSandboxExtension);
encoder << requestSandboxExtension;
}
encoder.encodeEnum(priority);
encoder.encodeEnum(contentSniffingPolicy);
encoder.encodeEnum(allowStoredCredentials);
encoder.encodeEnum(clientCredentialPolicy);
encoder << shouldClearReferrerOnHTTPSToHTTPRedirect;
encoder << isMainResource;
}
开发者ID:CannedFish,项目名称:webkitgtk,代码行数:47,代码来源:NetworkResourceLoadParameters.cpp
示例6: postMessageToInjectedBundle
void WebContext::postMessageToInjectedBundle(const String& messageName, API::Object* messageBody)
{
if (m_processes.isEmpty()) {
if (m_processModel == ProcessModelSharedSecondaryProcess)
m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
return;
}
for (auto& process : m_processes) {
// FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
IPC::ArgumentEncoder messageData;
messageData.encode(messageName);
messageData.encode(WebContextUserMessageEncoder(messageBody, *process.get()));
process->send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
}
}
开发者ID:,项目名称:,代码行数:17,代码来源:
示例7: encode
void UserData::encode(IPC::ArgumentEncoder& encoder, const API::Object* object) const
{
if (!object) {
encoder.encodeEnum(API::Object::Type::Null);
return;
}
encode(encoder, *object);
}
开发者ID:CannedFish,项目名称:webkitgtk,代码行数:9,代码来源:UserData.cpp
示例8: encode
void NetworkProcessCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << privateBrowsingEnabled;
encoder.encodeEnum(cacheModel);
encoder << diskCacheSizeOverride;
encoder << canHandleHTTPSServerTrustEvaluation;
encoder << diskCacheDirectory;
encoder << diskCacheDirectoryExtensionHandle;
#if ENABLE(NETWORK_CACHE)
encoder << shouldEnableNetworkCache;
encoder << shouldEnableNetworkCacheEfficacyLogging;
#endif
#if ENABLE(SECCOMP_FILTERS)
encoder << cookieStorageDirectory;
#endif
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
encoder << uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
encoder << cookieStorageDirectoryExtensionHandle;
encoder << containerCachesDirectoryExtensionHandle;
encoder << parentBundleDirectoryExtensionHandle;
#endif
encoder << shouldUseTestingNetworkSession;
encoder << urlSchemesRegisteredForCustomProtocols;
#if PLATFORM(COCOA)
encoder << parentProcessName;
encoder << uiProcessBundleIdentifier;
encoder << nsURLCacheMemoryCapacity;
encoder << nsURLCacheDiskCapacity;
encoder << httpProxy;
encoder << httpsProxy;
#if TARGET_OS_IPHONE || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
IPC::encode(encoder, networkATSContext.get());
#endif
#endif
#if USE(SOUP)
encoder << cookiePersistentStoragePath;
encoder << cookiePersistentStorageType;
encoder.encodeEnum(cookieAcceptPolicy);
encoder << ignoreTLSErrors;
encoder << languages;
#endif
}
开发者ID:rhythmkay,项目名称:webkit,代码行数:44,代码来源:NetworkProcessCreationParameters.cpp
示例9:
void HTTPBody::Element::encode(IPC::ArgumentEncoder& encoder) const
{
encoder.encodeEnum(type);
encoder << data;
encoder << filePath;
encoder << fileStart;
encoder << fileLength;
encoder << expectedFileModificationTime;
encoder << blobURLString;
}
开发者ID:,项目名称:,代码行数:10,代码来源:
示例10: encode
void QuickLookDocumentData::encode(IPC::ArgumentEncoder& encoder) const
{
uint64_t size = 0;
for (const auto& data : m_data)
size += CFDataGetLength(data.get());
encoder << size;
for (const auto& data : m_data)
encoder.encodeFixedLengthData(CFDataGetBytePtr(data.get()), CFDataGetLength(data.get()), 1);
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:10,代码来源:QuickLookDocumentData.cpp
示例11: encode
void PlatformPopupMenuData::encode(IPC::ArgumentEncoder& encoder) const
{
#if PLATFORM(COCOA)
encoder << fontInfo;
encoder << shouldPopOver;
encoder << hideArrows;
encoder.encodeEnum(menuSize);
#else
UNUSED_PARAM(encoder);
#endif
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:11,代码来源:PlatformPopupMenuData.cpp
示例12: PLATFORM
void Plugin::Parameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << url.string();
encoder << names;
encoder << values;
encoder << mimeType;
encoder << isFullFramePlugin;
encoder << shouldUseManualLoader;
#if PLATFORM(COCOA)
encoder.encodeEnum(layerHostingMode);
#endif
}
开发者ID:edcwconan,项目名称:webkit,代码行数:12,代码来源:Plugin.cpp
示例13: encode
void WebPageCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << viewSize;
encoder << viewState;
encoder << store;
encoder.encodeEnum(drawingAreaType);
encoder << pageGroupData;
encoder << drawsBackground;
encoder << drawsTransparentBackground;
encoder << underlayColor;
encoder << areMemoryCacheClientCallsEnabled;
encoder << useFixedLayout;
encoder << fixedLayoutSize;
encoder.encodeEnum(paginationMode);
encoder << paginationBehavesLikeColumns;
encoder << pageLength;
encoder << gapBetweenPages;
encoder << userAgent;
encoder << sessionState;
encoder << highestUsedBackForwardItemID;
encoder << visitedLinkTableID;
encoder << canRunBeforeUnloadConfirmPanel;
encoder << canRunModal;
encoder << deviceScaleFactor;
encoder << mediaVolume;
encoder << mayStartMediaWhenInWindow;
encoder << minimumLayoutSize;
encoder << autoSizingShouldExpandToViewHeight;
encoder.encodeEnum(scrollPinningBehavior);
encoder << backgroundExtendsBeyondPage;
encoder.encodeEnum(layerHostingMode);
#if PLATFORM(COCOA)
encoder << colorSpace;
#endif
#if PLATFORM(IOS)
encoder << viewportScreenSize;
#endif
}
开发者ID:MYSHLIFE,项目名称:webkit,代码行数:40,代码来源:WebPageCreationParameters.cpp
示例14:
void WebsiteData::Entry::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << SecurityOriginData::fromSecurityOrigin(*origin);
encoder.encodeEnum(type);
}
开发者ID:fanghongjia,项目名称:JavaScriptCore,代码行数:5,代码来源:WebsiteData.cpp
示例15: encode
void WebProcessCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << injectedBundlePath;
encoder << injectedBundlePathExtensionHandle;
encoder << initializationUserData;
encoder << applicationCacheDirectory;
encoder << applicationCacheFlatFileSubdirectoryName;
encoder << applicationCacheDirectoryExtensionHandle;
encoder << webSQLDatabaseDirectory;
encoder << webSQLDatabaseDirectoryExtensionHandle;
encoder << mediaCacheDirectory;
encoder << mediaCacheDirectoryExtensionHandle;
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
encoder << uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
encoder << cookieStorageDirectoryExtensionHandle;
encoder << containerCachesDirectoryExtensionHandle;
encoder << containerTemporaryDirectoryExtensionHandle;
#endif
encoder << mediaKeyStorageDirectory;
encoder << mediaKeyStorageDirectoryExtensionHandle;
encoder << shouldUseTestingNetworkSession;
encoder << urlSchemesRegisteredAsEmptyDocument;
encoder << urlSchemesRegisteredAsSecure;
encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy;
encoder << urlSchemesForWhichDomainRelaxationIsForbidden;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
encoder << urlSchemesRegisteredAsDisplayIsolated;
encoder << urlSchemesRegisteredAsCORSEnabled;
encoder << urlSchemesRegisteredAsAlwaysRevalidated;
#if ENABLE(CACHE_PARTITIONING)
encoder << urlSchemesRegisteredAsCachePartitioned;
#endif
encoder.encodeEnum(cacheModel);
encoder << shouldAlwaysUseComplexTextCodePath;
encoder << shouldEnableMemoryPressureReliefLogging;
encoder << shouldSuppressMemoryPressureHandler;
encoder << shouldUseFontSmoothing;
encoder << resourceLoadStatisticsEnabled;
encoder << fontWhitelist;
encoder << iconDatabaseEnabled;
encoder << terminationTimeout;
encoder << languages;
encoder << textCheckerState;
encoder << fullKeyboardAccessEnabled;
encoder << defaultRequestTimeoutInterval;
#if PLATFORM(COCOA) || USE(CFNETWORK)
encoder << uiProcessBundleIdentifier;
#endif
#if PLATFORM(COCOA)
encoder << presenterApplicationPid;
encoder << accessibilityEnhancedUserInterfaceEnabled;
encoder << acceleratedCompositingPort;
encoder << uiProcessBundleResourcePath;
encoder << uiProcessBundleResourcePathExtensionHandle;
encoder << shouldEnableJIT;
encoder << shouldEnableFTLJIT;
encoder << !!bundleParameterData;
if (bundleParameterData)
encoder << bundleParameterData->dataReference();
#endif
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
encoder << notificationPermissions;
#endif
encoder << plugInAutoStartOriginHashes;
encoder << plugInAutoStartOrigins;
encoder << memoryCacheDisabled;
#if ENABLE(SERVICE_CONTROLS)
encoder << hasImageServices;
encoder << hasSelectionServices;
encoder << hasRichContentServices;
#endif
#if ENABLE(NETSCAPE_PLUGIN_API)
encoder << pluginLoadClientPolicies;
#endif
#if TARGET_OS_IPHONE || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
IPC::encode(encoder, networkATSContext.get());
#endif
}
开发者ID:edcwconan,项目名称:webkit,代码行数:86,代码来源:WebProcessCreationParameters.cpp
示例16: encode
void WebProcessCreationParameters::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << injectedBundlePath;
encoder << injectedBundlePathExtensionHandle;
encoder << applicationCacheDirectory;
encoder << applicationCacheDirectoryExtensionHandle;
encoder << webSQLDatabaseDirectory;
encoder << webSQLDatabaseDirectoryExtensionHandle;
encoder << diskCacheDirectory;
encoder << diskCacheDirectoryExtensionHandle;
encoder << cookieStorageDirectory;
#if PLATFORM(IOS)
encoder << cookieStorageDirectoryExtensionHandle;
encoder << openGLCacheDirectoryExtensionHandle;
encoder << containerTemporaryDirectoryExtensionHandle;
encoder << hstsDatabasePathExtensionHandle;
#endif
encoder << shouldUseTestingNetworkSession;
encoder << urlSchemesRegistererdAsEmptyDocument;
encoder << urlSchemesRegisteredAsSecure;
encoder << urlSchemesForWhichDomainRelaxationIsForbidden;
encoder << urlSchemesRegisteredAsLocal;
encoder << urlSchemesRegisteredAsNoAccess;
encoder << urlSchemesRegisteredAsDisplayIsolated;
encoder << urlSchemesRegisteredAsCORSEnabled;
#if ENABLE(CACHE_PARTITIONING)
encoder << urlSchemesRegisteredAsCachePartitioned;
#endif
#if ENABLE(CUSTOM_PROTOCOLS)
encoder << urlSchemesRegisteredForCustomProtocols;
#endif
#if USE(SOUP)
#if !ENABLE(CUSTOM_PROTOCOLS)
encoder << urlSchemesRegistered;
#endif
encoder << cookiePersistentStoragePath;
encoder << cookiePersistentStorageType;
encoder.encodeEnum(cookieAcceptPolicy);
encoder << ignoreTLSErrors;
#endif
encoder.encodeEnum(cacheModel);
encoder << shouldAlwaysUseComplexTextCodePath;
encoder << shouldUseFontSmoothing;
encoder << iconDatabaseEnabled;
encoder << terminationTimeout;
encoder << languages;
encoder << textCheckerState;
encoder << fullKeyboardAccessEnabled;
encoder << defaultRequestTimeoutInterval;
#if PLATFORM(COCOA) || USE(CFNETWORK)
encoder << uiProcessBundleIdentifier;
#endif
#if PLATFORM(COCOA)
encoder << presenterApplicationPid;
encoder << accessibilityEnhancedUserInterfaceEnabled;
encoder << nsURLCacheMemoryCapacity;
encoder << nsURLCacheDiskCapacity;
encoder << acceleratedCompositingPort;
encoder << uiProcessBundleResourcePath;
encoder << uiProcessBundleResourcePathExtensionHandle;
encoder << shouldForceScreenFontSubstitution;
encoder << shouldEnableKerningAndLigaturesByDefault;
encoder << shouldEnableJIT;
encoder << shouldEnableFTLJIT;
encoder << shouldEnableMemoryPressureReliefLogging;
encoder << !!bundleParameterData;
if (bundleParameterData)
encoder << bundleParameterData->dataReference();
#endif
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
encoder << notificationPermissions;
#endif
#if ENABLE(NETWORK_PROCESS)
encoder << usesNetworkProcess;
#endif
encoder << plugInAutoStartOriginHashes;
encoder << plugInAutoStartOrigins;
encoder << memoryCacheDisabled;
#if ENABLE(SERVICE_CONTROLS)
encoder << hasImageServices;
encoder << hasSelectionServices;
#endif
}
开发者ID:morpheus502,项目名称:webkit,代码行数:87,代码来源:WebProcessCreationParameters.cpp
示例17: ENABLE
//.........这里部分代码省略.........
parameters.databaseDirectory = databaseDirectory();
if (!parameters.databaseDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(parameters.databaseDirectory, parameters.databaseDirectoryExtensionHandle);
parameters.diskCacheDirectory = diskCacheDirectory();
if (!parameters.diskCacheDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle);
parameters.cookieStorageDirectory = cookieStorageDirectory();
if (!parameters.cookieStorageDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
parameters.cacheModel = m_cacheModel;
parameters.languages = userPreferredLanguages();
copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
copyToVector(m_schemesToRegisterAsLocal, parameters.urlSchemesRegisteredAsLocal);
copyToVector(m_schemesToRegisterAsNoAccess, parameters.urlSchemesRegisteredAsNoAccess);
copyToVector(m_schemesToRegisterAsDisplayIsolated, parameters.urlSchemesRegisteredAsDisplayIsolated);
copyToVector(m_schemesToRegisterAsCORSEnabled, parameters.urlSchemesRegisteredAsCORSEnabled);
#if ENABLE(CACHE_PARTITIONING)
copyToVector(m_schemesToRegisterAsCachePartitioned, parameters.urlSchemesRegisteredAsCachePartitioned);
#endif
parameters.shouldAlwaysUseComplexTextCodePath = m_alwaysUsesComplexTextCodePath;
parameters.shouldUseFontSmoothing = m_shouldUseFontSmoothing;
parameters.iconDatabaseEnabled = !iconDatabasePath().isEmpty();
parameters.terminationTimeout = (m_processModel == ProcessModelSharedSecondaryProcess) ? sharedSecondaryProcessShutdownTimeout : 0;
parameters.textCheckerState = TextChecker::state();
parameters.fullKeyboardAccessEnabled = WebProcessProxy::fullKeyboardAccessEnabled();
parameters.defaultRequestTimeoutInterval = API::URLRequest::defaultTimeoutInterval();
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
// FIXME: There should be a generic way for supplements to add to the intialization parameters.
supplement<WebNotificationManagerProxy>()->populateCopyOfNotificationPermissions(parameters.notificationPermissions);
#endif
#if ENABLE(NETWORK_PROCESS)
parameters.usesNetworkProcess = m_usesNetworkProcess;
#endif
parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
copyToVector(m_plugInAutoStartProvider.autoStartOrigins(), parameters.plugInAutoStartOrigins);
parameters.memoryCacheDisabled = m_memoryCacheDisabled;
#if ENABLE(SERVICE_CONTROLS)
parameters.hasImageServices = ServicesController::shared().hasImageServices();
parameters.hasSelectionServices = ServicesController::shared().hasSelectionServices();
ServicesController::shared().refreshExistingServices(this);
#endif
// Add any platform specific parameters
platformInitializeWebProcess(parameters);
RefPtr<API::Object> injectedBundleInitializationUserData = m_injectedBundleClient.getInjectedBundleInitializationUserData(this);
if (!injectedBundleInitializationUserData)
injectedBundleInitializationUserData = m_injectedBundleInitializationUserData;
process->send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get(), *process)), 0);
#if PLATFORM(COCOA)
process->send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0);
#endif
if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
process->send(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
m_processes.append(process);
if (m_processModel == ProcessModelSharedSecondaryProcess) {
for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
std::pair<String, RefPtr<API::Object>>& message = m_messagesToInjectedBundlePostedToEmptyContext[i];
IPC::ArgumentEncoder messageData;
messageData.encode(message.first);
messageData.encode(WebContextUserMessageEncoder(message.second.get(), *process));
process->send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
}
m_messagesToInjectedBundlePostedToEmptyContext.clear();
} else
ASSERT(m_messagesToInjectedBundlePostedToEmptyContext.isEmpty());
#if ENABLE(REMOTE_INSPECTOR)
// Initialize remote inspector connection now that we have a sub-process that is hosting one of our web views.
Inspector::RemoteInspector::shared();
#endif
return *process;
}
开发者ID:,项目名称:,代码行数:101,代码来源:
示例18: encode
void PageState::encode(IPC::ArgumentEncoder& encoder) const
{
encoder << title;
encoder << mainFrameState;
encoder.encodeEnum(shouldOpenExternalURLsPolicy);
}
开发者ID:edcwconan,项目名称:webkit,代码行数:6,代码来源:SessionState.cpp
注:本文中的ipc::ArgumentEncoder类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论