refactor: make InitWithWebContents
and InspectableWebContents
take a unique_ptr
(#30920)
* refactor: make InitWithWebContents take a unique_ptr Signed-off-by: Darshan Sen <darshan.sen@postman.com> * refactor: make InspectableWebContents take a unique_ptr Signed-off-by: Darshan Sen <darshan.sen@postman.com>
This commit is contained in:
parent
6fdf350bea
commit
efa70131e2
4 changed files with 20 additions and 20 deletions
|
@ -784,10 +784,7 @@ void WebContents::InitWithSessionAndOptions(
|
||||||
gin::Handle<api::Session> session,
|
gin::Handle<api::Session> session,
|
||||||
const gin_helper::Dictionary& options) {
|
const gin_helper::Dictionary& options) {
|
||||||
Observe(owned_web_contents.get());
|
Observe(owned_web_contents.get());
|
||||||
// TODO(zcbenz): Make InitWithWebContents take unique_ptr.
|
InitWithWebContents(std::move(owned_web_contents), session->browser_context(),
|
||||||
// At the time of writing we are going through a refactoring and I don't want
|
|
||||||
// to make other people's work harder.
|
|
||||||
InitWithWebContents(owned_web_contents.release(), session->browser_context(),
|
|
||||||
IsGuest());
|
IsGuest());
|
||||||
|
|
||||||
inspectable_web_contents_->GetView()->SetDelegate(this);
|
inspectable_web_contents_->GetView()->SetDelegate(this);
|
||||||
|
@ -884,36 +881,39 @@ void WebContents::InitWithExtensionView(v8::Isolate* isolate,
|
||||||
|
|
||||||
// Allow toggling DevTools for background pages
|
// Allow toggling DevTools for background pages
|
||||||
Observe(web_contents);
|
Observe(web_contents);
|
||||||
InitWithWebContents(web_contents, GetBrowserContext(), IsGuest());
|
InitWithWebContents(std::unique_ptr<content::WebContents>(web_contents),
|
||||||
|
GetBrowserContext(), IsGuest());
|
||||||
inspectable_web_contents_->GetView()->SetDelegate(this);
|
inspectable_web_contents_->GetView()->SetDelegate(this);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void WebContents::InitWithWebContents(content::WebContents* web_contents,
|
void WebContents::InitWithWebContents(
|
||||||
|
std::unique_ptr<content::WebContents> web_contents,
|
||||||
ElectronBrowserContext* browser_context,
|
ElectronBrowserContext* browser_context,
|
||||||
bool is_guest) {
|
bool is_guest) {
|
||||||
browser_context_ = browser_context;
|
browser_context_ = browser_context;
|
||||||
web_contents->SetDelegate(this);
|
web_contents->SetDelegate(this);
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_PRINTING)
|
#if BUILDFLAG(ENABLE_PRINTING)
|
||||||
PrintPreviewMessageHandler::CreateForWebContents(web_contents);
|
PrintPreviewMessageHandler::CreateForWebContents(web_contents.get());
|
||||||
PrintViewManagerElectron::CreateForWebContents(web_contents);
|
PrintViewManagerElectron::CreateForWebContents(web_contents.get());
|
||||||
printing::CreateCompositeClientIfNeeded(web_contents,
|
printing::CreateCompositeClientIfNeeded(web_contents.get(),
|
||||||
browser_context->GetUserAgent());
|
browser_context->GetUserAgent());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BUILDFLAG(ENABLE_PDF_VIEWER)
|
#if BUILDFLAG(ENABLE_PDF_VIEWER)
|
||||||
pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
|
pdf::PDFWebContentsHelper::CreateForWebContentsWithClient(
|
||||||
web_contents, std::make_unique<ElectronPDFWebContentsHelperClient>());
|
web_contents.get(),
|
||||||
|
std::make_unique<ElectronPDFWebContentsHelperClient>());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Determine whether the WebContents is offscreen.
|
// Determine whether the WebContents is offscreen.
|
||||||
auto* web_preferences = WebContentsPreferences::From(web_contents);
|
auto* web_preferences = WebContentsPreferences::From(web_contents.get());
|
||||||
offscreen_ = web_preferences && web_preferences->IsOffscreen();
|
offscreen_ = web_preferences && web_preferences->IsOffscreen();
|
||||||
|
|
||||||
// Create InspectableWebContents.
|
// Create InspectableWebContents.
|
||||||
inspectable_web_contents_ = std::make_unique<InspectableWebContents>(
|
inspectable_web_contents_ = std::make_unique<InspectableWebContents>(
|
||||||
web_contents, browser_context->prefs(), is_guest);
|
std::move(web_contents), browser_context->prefs(), is_guest);
|
||||||
inspectable_web_contents_->SetDelegate(this);
|
inspectable_web_contents_->SetDelegate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -432,7 +432,7 @@ class WebContents : public gin::Wrappable<WebContents>,
|
||||||
|
|
||||||
// Creates a InspectableWebContents object and takes ownership of
|
// Creates a InspectableWebContents object and takes ownership of
|
||||||
// |web_contents|.
|
// |web_contents|.
|
||||||
void InitWithWebContents(content::WebContents* web_contents,
|
void InitWithWebContents(std::unique_ptr<content::WebContents> web_contents,
|
||||||
ElectronBrowserContext* browser_context,
|
ElectronBrowserContext* browser_context,
|
||||||
bool is_guest);
|
bool is_guest);
|
||||||
|
|
||||||
|
|
|
@ -339,11 +339,11 @@ void InspectableWebContents::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||||
}
|
}
|
||||||
|
|
||||||
InspectableWebContents::InspectableWebContents(
|
InspectableWebContents::InspectableWebContents(
|
||||||
content::WebContents* web_contents,
|
std::unique_ptr<content::WebContents> web_contents,
|
||||||
PrefService* pref_service,
|
PrefService* pref_service,
|
||||||
bool is_guest)
|
bool is_guest)
|
||||||
: pref_service_(pref_service),
|
: pref_service_(pref_service),
|
||||||
web_contents_(web_contents),
|
web_contents_(std::move(web_contents)),
|
||||||
is_guest_(is_guest),
|
is_guest_(is_guest),
|
||||||
view_(CreateInspectableContentsView(this)) {
|
view_(CreateInspectableContentsView(this)) {
|
||||||
const base::Value* bounds_dict = pref_service_->Get(kDevToolsBoundsPref);
|
const base::Value* bounds_dict = pref_service_->Get(kDevToolsBoundsPref);
|
||||||
|
@ -356,9 +356,9 @@ InspectableWebContents::InspectableWebContents(
|
||||||
}
|
}
|
||||||
if (!IsPointInScreen(devtools_bounds_.origin())) {
|
if (!IsPointInScreen(devtools_bounds_.origin())) {
|
||||||
gfx::Rect display;
|
gfx::Rect display;
|
||||||
if (!is_guest && web_contents->GetNativeView()) {
|
if (!is_guest && web_contents_->GetNativeView()) {
|
||||||
display = display::Screen::GetScreen()
|
display = display::Screen::GetScreen()
|
||||||
->GetDisplayNearestView(web_contents->GetNativeView())
|
->GetDisplayNearestView(web_contents_->GetNativeView())
|
||||||
.bounds();
|
.bounds();
|
||||||
} else {
|
} else {
|
||||||
display = display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
|
display = display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
|
||||||
|
|
|
@ -44,7 +44,7 @@ class InspectableWebContents
|
||||||
static const List& GetAll();
|
static const List& GetAll();
|
||||||
static void RegisterPrefs(PrefRegistrySimple* pref_registry);
|
static void RegisterPrefs(PrefRegistrySimple* pref_registry);
|
||||||
|
|
||||||
InspectableWebContents(content::WebContents* web_contents,
|
InspectableWebContents(std::unique_ptr<content::WebContents> web_contents,
|
||||||
PrefService* pref_service,
|
PrefService* pref_service,
|
||||||
bool is_guest);
|
bool is_guest);
|
||||||
~InspectableWebContents() override;
|
~InspectableWebContents() override;
|
||||||
|
|
Loading…
Reference in a new issue