Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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 std::unique_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 std::unique_ptr<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 std::unique_ptr<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()); |
|
Lei Zhang
2016/05/19 07:21:33
BTW, switch to the unique_ptr version at some poin
dcheng
2016/05/19 07:34:25
Yes, I'm intentionally limiting the scope of my ch
| |
| 362 } | 362 } |
| 363 | 363 |
| 364 return tab_list; | 364 return tab_list; |
| 365 } | 365 } |
| 366 | 366 |
| 367 // static | 367 // static |
| 368 std::unique_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) { |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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 |
| OLD | NEW |