Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: chrome/browser/extensions/extension_tab_util.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_tab_util.h" 5 #include "chrome/browser/extensions/extension_tab_util.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 324
325 std::string ExtensionTabUtil::GetTabStatusText(bool is_loading) { 325 std::string ExtensionTabUtil::GetTabStatusText(bool is_loading) {
326 return is_loading ? keys::kStatusValueLoading : keys::kStatusValueComplete; 326 return is_loading ? keys::kStatusValueLoading : keys::kStatusValueComplete;
327 } 327 }
328 328
329 int ExtensionTabUtil::GetWindowIdOfTab(const WebContents* web_contents) { 329 int ExtensionTabUtil::GetWindowIdOfTab(const WebContents* web_contents) {
330 return SessionTabHelper::IdForWindowContainingTab(web_contents); 330 return SessionTabHelper::IdForWindowContainingTab(web_contents);
331 } 331 }
332 332
333 // static 333 // static
334 scoped_ptr<api::tabs::Tab> ExtensionTabUtil::CreateTabObject( 334 std::unique_ptr<api::tabs::Tab> ExtensionTabUtil::CreateTabObject(
335 WebContents* contents, 335 WebContents* contents,
336 TabStripModel* tab_strip, 336 TabStripModel* tab_strip,
337 int tab_index, 337 int tab_index,
338 const Extension* extension) { 338 const Extension* extension) {
339 // If we have a matching AppWindow with a controller, get the tab value 339 // If we have a matching AppWindow with a controller, get the tab value
340 // from its controller instead. 340 // from its controller instead.
341 WindowController* controller = GetAppWindowController(contents); 341 WindowController* controller = GetAppWindowController(contents);
342 if (controller && 342 if (controller &&
343 (!extension || controller->IsVisibleToExtension(extension))) { 343 (!extension || controller->IsVisibleToExtension(extension))) {
344 return controller->CreateTabObject(extension, tab_index); 344 return controller->CreateTabObject(extension, tab_index);
345 } 345 }
346 scoped_ptr<api::tabs::Tab> result = 346 std::unique_ptr<api::tabs::Tab> result =
347 CreateTabObject(contents, tab_strip, tab_index); 347 CreateTabObject(contents, tab_strip, tab_index);
348 ScrubTabForExtension(extension, contents, result.get()); 348 ScrubTabForExtension(extension, contents, result.get());
349 return result; 349 return result;
350 } 350 }
351 351
352 base::ListValue* ExtensionTabUtil::CreateTabList( 352 base::ListValue* ExtensionTabUtil::CreateTabList(
353 const Browser* browser, 353 const Browser* browser,
354 const Extension* extension) { 354 const Extension* extension) {
355 base::ListValue* tab_list = new base::ListValue(); 355 base::ListValue* tab_list = new base::ListValue();
356 TabStripModel* tab_strip = browser->tab_strip_model(); 356 TabStripModel* tab_strip = browser->tab_strip_model();
357 for (int i = 0; i < tab_strip->count(); ++i) { 357 for (int i = 0; i < tab_strip->count(); ++i) {
358 tab_list->Append( 358 tab_list->Append(
359 CreateTabObject(tab_strip->GetWebContentsAt(i), tab_strip, i, extension) 359 CreateTabObject(tab_strip->GetWebContentsAt(i), tab_strip, i, extension)
360 ->ToValue() 360 ->ToValue()
361 .release()); 361 .release());
362 } 362 }
363 363
364 return tab_list; 364 return tab_list;
365 } 365 }
366 366
367 // static 367 // static
368 scoped_ptr<api::tabs::Tab> ExtensionTabUtil::CreateTabObject( 368 std::unique_ptr<api::tabs::Tab> ExtensionTabUtil::CreateTabObject(
369 content::WebContents* contents, 369 content::WebContents* contents,
370 TabStripModel* tab_strip, 370 TabStripModel* tab_strip,
371 int tab_index) { 371 int tab_index) {
372 // If we have a matching AppWindow with a controller, get the tab value 372 // If we have a matching AppWindow with a controller, get the tab value
373 // from its controller instead. 373 // from its controller instead.
374 WindowController* controller = GetAppWindowController(contents); 374 WindowController* controller = GetAppWindowController(contents);
375 if (controller) 375 if (controller)
376 return controller->CreateTabObject(nullptr, tab_index); 376 return controller->CreateTabObject(nullptr, tab_index);
377 377
378 if (!tab_strip) 378 if (!tab_strip)
379 ExtensionTabUtil::GetTabStripModel(contents, &tab_strip, &tab_index); 379 ExtensionTabUtil::GetTabStripModel(contents, &tab_strip, &tab_index);
380 bool is_loading = contents->IsLoading(); 380 bool is_loading = contents->IsLoading();
381 scoped_ptr<api::tabs::Tab> tab_object(new api::tabs::Tab); 381 std::unique_ptr<api::tabs::Tab> tab_object(new api::tabs::Tab);
382 tab_object->id.reset(new int(GetTabIdForExtensions(contents))); 382 tab_object->id.reset(new int(GetTabIdForExtensions(contents)));
383 tab_object->index = tab_index; 383 tab_object->index = tab_index;
384 tab_object->window_id = GetWindowIdOfTab(contents); 384 tab_object->window_id = GetWindowIdOfTab(contents);
385 tab_object->status.reset(new std::string(GetTabStatusText(is_loading))); 385 tab_object->status.reset(new std::string(GetTabStatusText(is_loading)));
386 tab_object->active = tab_strip && tab_index == tab_strip->active_index(); 386 tab_object->active = tab_strip && tab_index == tab_strip->active_index();
387 tab_object->selected = tab_strip && tab_index == tab_strip->active_index(); 387 tab_object->selected = tab_strip && tab_index == tab_strip->active_index();
388 tab_object->highlighted = tab_strip && tab_strip->IsTabSelected(tab_index); 388 tab_object->highlighted = tab_strip && tab_strip->IsTabSelected(tab_index);
389 tab_object->pinned = tab_strip && tab_strip->IsTabPinned(tab_index); 389 tab_object->pinned = tab_strip && tab_strip->IsTabPinned(tab_index);
390 tab_object->audible.reset(new bool(contents->WasRecentlyAudible())); 390 tab_object->audible.reset(new bool(contents->WasRecentlyAudible()));
391 tab_object->muted_info = CreateMutedInfo(contents); 391 tab_object->muted_info = CreateMutedInfo(contents);
(...skipping 13 matching lines...) Expand all
405 if (tab_strip) { 405 if (tab_strip) {
406 WebContents* opener = tab_strip->GetOpenerOfWebContentsAt(tab_index); 406 WebContents* opener = tab_strip->GetOpenerOfWebContentsAt(tab_index);
407 if (opener) 407 if (opener)
408 tab_object->opener_tab_id.reset(new int(GetTabIdForExtensions(opener))); 408 tab_object->opener_tab_id.reset(new int(GetTabIdForExtensions(opener)));
409 } 409 }
410 410
411 return tab_object; 411 return tab_object;
412 } 412 }
413 413
414 // static 414 // static
415 scoped_ptr<api::tabs::MutedInfo> ExtensionTabUtil::CreateMutedInfo( 415 std::unique_ptr<api::tabs::MutedInfo> ExtensionTabUtil::CreateMutedInfo(
416 content::WebContents* contents) { 416 content::WebContents* contents) {
417 DCHECK(contents); 417 DCHECK(contents);
418 scoped_ptr<api::tabs::MutedInfo> info(new api::tabs::MutedInfo); 418 std::unique_ptr<api::tabs::MutedInfo> info(new api::tabs::MutedInfo);
419 info->muted = contents->IsAudioMuted(); 419 info->muted = contents->IsAudioMuted();
420 switch (chrome::GetTabAudioMutedReason(contents)) { 420 switch (chrome::GetTabAudioMutedReason(contents)) {
421 case TabMutedReason::NONE: 421 case TabMutedReason::NONE:
422 break; 422 break;
423 case TabMutedReason::CONTEXT_MENU: 423 case TabMutedReason::CONTEXT_MENU:
424 case TabMutedReason::AUDIO_INDICATOR: 424 case TabMutedReason::AUDIO_INDICATOR:
425 info->reason = api::tabs::MUTED_INFO_REASON_USER; 425 info->reason = api::tabs::MUTED_INFO_REASON_USER;
426 break; 426 break;
427 case TabMutedReason::MEDIA_CAPTURE: 427 case TabMutedReason::MEDIA_CAPTURE:
428 info->reason = api::tabs::MUTED_INFO_REASON_CAPTURE; 428 info->reason = api::tabs::MUTED_INFO_REASON_CAPTURE;
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 return NULL; 620 return NULL;
621 } 621 }
622 622
623 bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension, 623 bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension,
624 Browser* browser) { 624 Browser* browser) {
625 if (!OptionsPageInfo::HasOptionsPage(extension)) 625 if (!OptionsPageInfo::HasOptionsPage(extension))
626 return false; 626 return false;
627 627
628 // Force the options page to open in non-OTR window, because it won't be 628 // Force the options page to open in non-OTR window, because it won't be
629 // able to save settings from OTR. 629 // able to save settings from OTR.
630 scoped_ptr<chrome::ScopedTabbedBrowserDisplayer> displayer; 630 std::unique_ptr<chrome::ScopedTabbedBrowserDisplayer> displayer;
631 if (browser->profile()->IsOffTheRecord()) { 631 if (browser->profile()->IsOffTheRecord()) {
632 displayer.reset(new chrome::ScopedTabbedBrowserDisplayer( 632 displayer.reset(new chrome::ScopedTabbedBrowserDisplayer(
633 browser->profile()->GetOriginalProfile())); 633 browser->profile()->GetOriginalProfile()));
634 browser = displayer->browser(); 634 browser = displayer->browser();
635 } 635 }
636 636
637 GURL url_to_navigate; 637 GURL url_to_navigate;
638 bool open_in_tab = OptionsPageInfo::ShouldOpenInTab(extension); 638 bool open_in_tab = OptionsPageInfo::ShouldOpenInTab(extension);
639 if (open_in_tab) { 639 if (open_in_tab) {
640 // Options page tab is simply e.g. chrome-extension://.../options.html. 640 // Options page tab is simply e.g. chrome-extension://.../options.html.
(...skipping 23 matching lines...) Expand all
664 chrome::ShowSingletonTabOverwritingNTP(browser, params); 664 chrome::ShowSingletonTabOverwritingNTP(browser, params);
665 return true; 665 return true;
666 } 666 }
667 667
668 // static 668 // static
669 bool ExtensionTabUtil::BrowserSupportsTabs(Browser* browser) { 669 bool ExtensionTabUtil::BrowserSupportsTabs(Browser* browser) {
670 return browser && browser->tab_strip_model() && !browser->is_devtools(); 670 return browser && browser->tab_strip_model() && !browser->is_devtools();
671 } 671 }
672 672
673 } // namespace extensions 673 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_tab_util.h ('k') | chrome/browser/extensions/extension_test_notification_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698