Changeset 163671 in webkit
- Timestamp:
- Feb 7, 2014 5:57:02 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r163669 r163671 1 2014-02-07 Anders Carlsson <andersca@apple.com> 2 3 Simplify web page creation 4 https://bugs.webkit.org/show_bug.cgi?id=128425 5 6 Reviewed by Andreas Kling. 7 8 Add a WebPageConfiguration class and stick the page group, preferences, session etc there 9 instead of adding more and more parameters to the WebPageProxy constructor. 10 11 Make WebContext::createWebPage fill in the missing pieces in the WebPageConfiguration object. 12 13 * UIProcess/API/ios/WKContentView.mm: 14 (-[WKContentView initWithFrame:configuration:]): 15 (-[WKContentView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]): 16 * UIProcess/API/mac/WKView.mm: 17 (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): 18 * UIProcess/WebContext.cpp: 19 (WebKit::WebContext::createWebPage): 20 * UIProcess/WebContext.h: 21 * UIProcess/WebPageProxy.cpp: 22 (WebKit::WebPageProxy::create): 23 (WebKit::WebPageProxy::WebPageProxy): 24 * UIProcess/WebPageProxy.h: 25 * UIProcess/WebProcessProxy.cpp: 26 (WebKit::WebProcessProxy::createWebPage): 27 * UIProcess/WebProcessProxy.h: 28 1 29 2014-02-07 Tim Horton <timothy_horton@apple.com> 2 30 -
trunk/Source/WebKit2/UIProcess/API/ios/WKContentView.mm
r163666 r163671 104 104 _pageClient = std::make_unique<PageClientImpl>(self); 105 105 106 _page = configuration.processClass->_context->createWebPage(*_pageClient, nullptr); 106 WebPageConfiguration webPageConfiguration; 107 108 _page = configuration.processClass->_context->createWebPage(*_pageClient, std::move(webPageConfiguration)); 107 109 _page->initializeWebPage(); 108 110 _page->setIntrinsicDeviceScaleFactor([UIScreen mainScreen].scale); … … 251 253 252 254 _pageClient = std::make_unique<PageClientImpl>(self); 253 _page = toImpl(contextRef)->createWebPage(*_pageClient, toImpl(pageGroupRef), toImpl(relatedPage)); 255 256 WebPageConfiguration webPageConfiguration; 257 webPageConfiguration.group = toImpl(pageGroupRef); 258 webPageConfiguration.relatedPage = toImpl(relatedPage); 259 260 _page = toImpl(contextRef)->createWebPage(*_pageClient, std::move(webPageConfiguration)); 254 261 _page->initializeWebPage(); 255 262 _page->setIntrinsicDeviceScaleFactor([UIScreen mainScreen].scale); -
trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm
r163669 r163671 2947 2947 _data = [[WKViewData alloc] init]; 2948 2948 2949 WebPageConfiguration webPageConfiguration; 2950 webPageConfiguration.pageGroup = toImpl(pageGroupRef); 2951 webPageConfiguration.relatedPage = toImpl(relatedPage); 2952 2949 2953 _data->_pageClient = std::make_unique<PageClientImpl>(self); 2950 _data->_page = toImpl(contextRef)->createWebPage(*_data->_pageClient, toImpl(pageGroupRef), toImpl(relatedPage));2954 _data->_page = toImpl(contextRef)->createWebPage(*_data->_pageClient, std::move(webPageConfiguration)); 2951 2955 _data->_page->setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]); 2952 2956 _data->_page->initializeWebPage(); -
trunk/Source/WebKit2/UIProcess/WebContext.cpp
r163656 r163671 764 764 } 765 765 766 PassRefPtr<WebPageProxy> WebContext::createWebPage(PageClient& pageClient, WebPageGroup* pageGroup, API::Session& session, WebPageProxy* relatedPage) 767 { 766 PassRefPtr<WebPageProxy> WebContext::createWebPage(PageClient& pageClient, WebPageConfiguration configuration) 767 { 768 if (!configuration.pageGroup) 769 configuration.pageGroup = &m_defaultPageGroup.get(); 770 if (!configuration.preferences) 771 configuration.preferences = &configuration.pageGroup->preferences(); 772 if (!configuration.session) 773 configuration.session = configuration.preferences->privateBrowsingEnabled() ? &API::Session::legacyPrivateSession() : &API::Session::defaultSession(); 774 768 775 RefPtr<WebProcessProxy> process; 769 776 if (m_processModel == ProcessModelSharedSecondaryProcess) { … … 773 780 process = m_processes.last(); 774 781 m_haveInitialEmptyProcess = false; 775 } else if ( relatedPage) {782 } else if (configuration.relatedPage) { 776 783 // Sharing processes, e.g. when creating the page via window.open(). 777 process = & relatedPage->process();784 process = &configuration.relatedPage->process(); 778 785 } else 779 786 process = &createNewWebProcessRespectingProcessCountLimit(); 780 787 } 781 788 782 return process->createWebPage(pageClient, pageGroup ? *pageGroup : m_defaultPageGroup.get(), session); 783 } 784 785 PassRefPtr<WebPageProxy> WebContext::createWebPage(PageClient& pageClient, WebPageGroup* pageGroup, WebPageProxy* relatedPage) 786 { 787 WebPageGroup* group = pageGroup ? pageGroup : &m_defaultPageGroup.get(); 788 return createWebPage(pageClient, group, group->preferences().privateBrowsingEnabled() ? API::Session::legacyPrivateSession() : API::Session::defaultSession(), relatedPage); 789 return process->createWebPage(pageClient, std::move(configuration)); 789 790 } 790 791 -
trunk/Source/WebKit2/UIProcess/WebContext.h
r163121 r163671 75 75 class WebPageProxy; 76 76 struct StatisticsData; 77 struct WebPageConfiguration; 77 78 struct WebProcessCreationParameters; 78 79 … … 157 158 StorageManager& storageManager() const { return *m_storageManager; } 158 159 159 PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageGroup*, API::Session&, WebPageProxy* relatedPage = 0); 160 PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageGroup*, WebPageProxy* relatedPage = 0); 160 PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageConfiguration); 161 161 162 162 const String& injectedBundlePath() const { return m_injectedBundlePath; } -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r163666 r163671 247 247 #endif // !LOG_DISABLED 248 248 249 PassRefPtr<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, WebPageGroup& pageGroup, WebPreferences& preferences, API::Session& session, uint64_t pageID)250 { 251 return adoptRef(new WebPageProxy(pageClient, process, page Group, preferences, session, pageID));252 } 253 254 WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, WebPageGroup& pageGroup, WebPreferences& preferences, API::Session& session, uint64_t pageID)249 PassRefPtr<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration) 250 { 251 return adoptRef(new WebPageProxy(pageClient, process, pageID, configuration)); 252 } 253 254 WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration) 255 255 : m_pageClient(pageClient) 256 256 , m_loaderClient(std::make_unique<API::LoaderClient>()) … … 258 258 , m_uiClient(std::make_unique<API::UIClient>()) 259 259 , m_process(process) 260 , m_pageGroup( pageGroup)261 , m_preferences( preferences)260 , m_pageGroup(*configuration.pageGroup) 261 , m_preferences(*configuration.preferences) 262 262 , m_mainFrame(nullptr) 263 263 , m_userAgent(standardUserAgent()) … … 302 302 #endif 303 303 , m_pageID(pageID) 304 , m_session( session)304 , m_session(*configuration.session) 305 305 , m_isPageSuspended(false) 306 306 #if PLATFORM(MAC) … … 370 370 // FIXME: If we ever expose the session storage size as a preference, we need to pass it here. 371 371 m_process->context().storageManager().createSessionStorageNamespace(m_pageID, m_process->isValid() ? m_process->connection() : 0, std::numeric_limits<unsigned>::max()); 372 setSession( session);372 setSession(*configuration.session); 373 373 } 374 374 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r163663 r163671 324 324 #endif 325 325 326 struct WebPageConfiguration { 327 WebPageGroup* pageGroup = nullptr; 328 WebPreferences* preferences = nullptr; 329 API::Session* session = nullptr; 330 WebPageProxy* relatedPage = nullptr; 331 }; 332 326 333 class WebPageProxy : public API::ObjectImpl<API::Object::Type::Page> 327 334 #if ENABLE(INPUT_TYPE_COLOR) … … 332 339 , public IPC::MessageSender { 333 340 public: 334 static PassRefPtr<WebPageProxy> create(PageClient&, WebProcessProxy&, WebPageGroup&, WebPreferences&, API::Session&, uint64_t pageID);341 static PassRefPtr<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&); 335 342 virtual ~WebPageProxy(); 336 343 … … 880 887 881 888 private: 882 WebPageProxy(PageClient&, WebProcessProxy&, WebPageGroup&, WebPreferences&, API::Session&, uint64_t pageID);889 WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&); 883 890 void platformInitialize(); 884 891 -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp
r163597 r163671 169 169 } 170 170 171 PassRefPtr<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, WebPageGroup& pageGroup, API::Session& session)171 PassRefPtr<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, const WebPageConfiguration& configuration) 172 172 { 173 173 uint64_t pageID = generatePageID(); 174 RefPtr<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, page Group, pageGroup.preferences(), session, pageID);174 RefPtr<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, pageID, configuration); 175 175 m_pageMap.set(pageID, webPage.get()); 176 176 globalPageMap().set(pageID, webPage.get()); -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.h
r162271 r163671 79 79 80 80 static WebPageProxy* webPage(uint64_t pageID); 81 PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageGroup&, API::Session&);81 PassRefPtr<WebPageProxy> createWebPage(PageClient&, const WebPageConfiguration&); 82 82 void addExistingWebPage(WebPageProxy*, uint64_t pageID); 83 83 void removeWebPage(uint64_t pageID);
Note: See TracChangeset
for help on using the changeset viewer.