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)19 sessions::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)28 void 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