Changeset 166228 in webkit
- Timestamp:
- Mar 25, 2014 2:53:26 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r166224 r166228 1 2014-03-24 Michał Pakuła vel Rutka <m.pakula@samsung.com> 2 3 [EFL][WK2] Add an API to set process model 4 https://bugs.webkit.org/show_bug.cgi?id=130133 5 6 Reviewed by Gyuyoung Kim. 7 8 Implement an API to set and get process model in ewk_context. 9 By default process model enum value is set to EWK_PROCESS_MODEL_SHARED_SECONDARY 10 which keeps current behaviour. Setting EWK_PROCESS_MODEL_MULTIPLE_SECONDARY 11 will make each web view use separate web process, also enables network process. 12 13 * UIProcess/API/efl/ewk_context.cpp: 14 (toWKProcessModel): 15 (EwkContext::setProcessModel): 16 (toEwkProcessModel): 17 (EwkContext::processModel): 18 (ewk_context_process_model_set): 19 (ewk_context_process_model_get): 20 * UIProcess/API/efl/ewk_context.h: 21 * UIProcess/API/efl/ewk_context_private.h: 22 * UIProcess/API/efl/tests/test_ewk2_context.cpp: 23 (TEST_F): 24 1 25 2014-03-24 Chris Fleizach <cfleizach@apple.com> 2 26 -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
r165718 r166228 238 238 } 239 239 240 inline WKProcessModel toWKProcessModel(Ewk_Process_Model processModel) 241 { 242 switch (processModel) { 243 case EWK_PROCESS_MODEL_SHARED_SECONDARY: 244 return kWKProcessModelSharedSecondaryProcess; 245 case EWK_PROCESS_MODEL_MULTIPLE_SECONDARY: 246 return kWKProcessModelMultipleSecondaryProcesses; 247 } 248 ASSERT_NOT_REACHED(); 249 250 return kWKProcessModelSharedSecondaryProcess; 251 } 252 253 void EwkContext::setProcessModel(Ewk_Process_Model processModel) 254 { 255 WKProcessModel newWKProcessModel = toWKProcessModel(processModel); 256 257 if (WKContextGetProcessModel(m_context.get()) == newWKProcessModel) 258 return; 259 260 WKContextSetUsesNetworkProcess(m_context.get(), newWKProcessModel == kWKProcessModelMultipleSecondaryProcesses); 261 WKContextSetProcessModel(m_context.get(), newWKProcessModel); 262 } 263 264 inline Ewk_Process_Model toEwkProcessModel(WKProcessModel processModel) 265 { 266 switch (processModel) { 267 case kWKProcessModelSharedSecondaryProcess: 268 return EWK_PROCESS_MODEL_SHARED_SECONDARY; 269 case kWKProcessModelMultipleSecondaryProcesses: 270 return EWK_PROCESS_MODEL_MULTIPLE_SECONDARY; 271 } 272 ASSERT_NOT_REACHED(); 273 274 return EWK_PROCESS_MODEL_SHARED_SECONDARY; 275 } 276 277 Ewk_Process_Model EwkContext::processModel() const 278 { 279 return toEwkProcessModel(WKContextGetProcessModel(m_context.get())); 280 } 281 240 282 #if ENABLE(NETSCAPE_PLUGIN_API) 241 283 void EwkContext::setAdditionalPluginPath(const String& path) … … 470 512 impl->setMessageFromInjectedBundleCallback(callback, userData); 471 513 } 514 515 Eina_Bool ewk_context_process_model_set(Ewk_Context* ewkContext, Ewk_Process_Model processModel) 516 { 517 #if ENABLE(NETWORK_PROCESS) 518 EWK_OBJ_GET_IMPL_OR_RETURN(EwkContext, ewkContext, impl, false); 519 520 impl->setProcessModel(processModel); 521 522 return true; 523 #else 524 UNUSED_PARAM(ewkContext); 525 UNUSED_PARAM(processModel); 526 return false; 527 #endif 528 } 529 530 Ewk_Process_Model ewk_context_process_model_get(const Ewk_Context* ewkContext) 531 { 532 #if ENABLE(NETWORK_PROCESS) 533 EWK_OBJ_GET_IMPL_OR_RETURN(const EwkContext, ewkContext, impl, EWK_PROCESS_MODEL_SHARED_SECONDARY); 534 535 return impl->processModel(); 536 #else 537 UNUSED_PARAM(ewkContext); 538 return EWK_PROCESS_MODEL_SHARED_SECONDARY; 539 #endif 540 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_context.h
r165718 r166228 74 74 /// Creates a type name for the Ewk_Cache_Model. 75 75 typedef enum Ewk_Cache_Model Ewk_Cache_Model; 76 77 /** 78 * \enum Ewk_Process_Model 79 * 80 * @brief Contains option for process model 81 */ 82 enum Ewk_Process_Model { 83 EWK_PROCESS_MODEL_SHARED_SECONDARY, 84 EWK_PROCESS_MODEL_MULTIPLE_SECONDARY 85 }; 86 87 /// Creates a type name for the Ewk_Process_Model. 88 typedef enum Ewk_Process_Model Ewk_Process_Model; 76 89 77 90 /** … … 363 376 EAPI void ewk_context_message_from_injected_bundle_callback_set(Ewk_Context *context, Ewk_Context_Message_From_Injected_Bundle_Cb callback, void *user_data); 364 377 378 /** 379 * Sets a process model for @a context. 380 * 381 * Sets a process model for web views, which will be used to decide how 382 * processes should be handled. Default value is 383 * EWK_PROCESS_MODEL_SHARED_SECONDARY which means that there is only one 384 * web process. When EWK_PROCESS_MODEL_MULTIPLE_SECONDARY is set a 385 * network process is introduced and every web view starts new web process. 386 * This function should be used before first web process is spawned. 387 * 388 * @param context context object to set process model 389 * @param process_model a #Ewk_Process_Model 390 */ 391 EAPI Eina_Bool ewk_context_process_model_set(Ewk_Context *context, Ewk_Process_Model process_model); 392 393 /** 394 * Gets the process model for @a context. 395 * 396 * @param context context object to query 397 * 398 * @return the process model for the @a context 399 */ 400 EAPI Ewk_Process_Model ewk_context_process_model_get(const Ewk_Context *context); 401 365 402 #ifdef __cplusplus 366 403 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h
r165718 r166228 76 76 Ewk_Cache_Model cacheModel() const; 77 77 78 void setProcessModel(Ewk_Process_Model); 79 80 Ewk_Process_Model processModel() const; 81 78 82 WKContextRef wkContext() const { return m_context.get(); } 79 83 -
trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp
r165718 r166228 119 119 } 120 120 121 TEST_F(EWK2ContextTest, ewk_context_process_model) 122 { 123 Ewk_Context* context = ewk_view_context_get(webView()); 124 125 ASSERT_EQ(EWK_PROCESS_MODEL_SHARED_SECONDARY, ewk_context_process_model_get(context)); 126 } 127 121 128 TEST_F(EWK2ContextTest, ewk_context_new) 122 129 {
Note: See TracChangeset
for help on using the changeset viewer.