1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "components/sessions/content/session_tab_helper.h" 6 7 #include "chrome/common/buildflags.h" 8 9 #if BUILDFLAG(ENABLE_SESSION_SERVICE) 10 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/sessions/session_service.h" 12 #include "chrome/browser/sessions/session_service_factory.h" 13 #include "content/public/browser/web_contents.h" 14 #endif 15 16 namespace { 17 18 #if BUILDFLAG(ENABLE_SESSION_SERVICE) GetSessionTabHelperDelegate(content::WebContents * web_contents)19sessions::SessionTabHelperDelegate* GetSessionTabHelperDelegate( 20 content::WebContents* web_contents) { 21 return SessionServiceFactory::GetForProfile( 22 Profile::FromBrowserContext(web_contents->GetBrowserContext())); 23 } 24 #endif 25 26 } // namespace 27 CreateSessionServiceTabHelper(content::WebContents * contents)28void CreateSessionServiceTabHelper(content::WebContents* contents) { 29 if (sessions::SessionTabHelper::FromWebContents(contents)) 30 return; 31 32 #if BUILDFLAG(ENABLE_SESSION_SERVICE) 33 sessions::SessionTabHelper::DelegateLookup lookup = 34 base::BindRepeating(&GetSessionTabHelperDelegate); 35 #else 36 sessions::SessionTabHelper::DelegateLookup lookup; 37 #endif 38 sessions::SessionTabHelper::CreateForWebContents(contents, std::move(lookup)); 39 } 40