| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/power/renderer_freezer.h" | 5 #include "chrome/browser/chromeos/power/renderer_freezer.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 } | 305 } |
| 306 | 306 |
| 307 // Tests that the RendererFreezer does not freeze renderers that are hosting | 307 // Tests that the RendererFreezer does not freeze renderers that are hosting |
| 308 // extensions that use GCM. | 308 // extensions that use GCM. |
| 309 TEST_F(RendererFreezerTestWithExtensions, DoesNotFreezeGcmExtensionRenderers) { | 309 TEST_F(RendererFreezerTestWithExtensions, DoesNotFreezeGcmExtensionRenderers) { |
| 310 Init(); | 310 Init(); |
| 311 | 311 |
| 312 // First build the GCM extension. | 312 // First build the GCM extension. |
| 313 scoped_refptr<extensions::Extension> gcm_app = | 313 scoped_refptr<extensions::Extension> gcm_app = |
| 314 extensions::ExtensionBuilder() | 314 extensions::ExtensionBuilder() |
| 315 .SetManifest(std::move( | 315 .SetManifest( |
| 316 extensions::DictionaryBuilder() | 316 extensions::DictionaryBuilder() |
| 317 .Set("name", "GCM App") | 317 .Set("name", "GCM App") |
| 318 .Set("version", "1.0.0") | 318 .Set("version", "1.0.0") |
| 319 .Set("manifest_version", 2) | 319 .Set("manifest_version", 2) |
| 320 .Set("app", | 320 .Set("app", |
| 321 std::move(extensions::DictionaryBuilder().Set( | 321 extensions::DictionaryBuilder() |
| 322 "background", | 322 .Set("background", |
| 323 std::move(extensions::DictionaryBuilder().Set( | 323 extensions::DictionaryBuilder() |
| 324 "scripts", | 324 .Set("scripts", extensions::ListBuilder() |
| 325 std::move(extensions::ListBuilder().Append( | 325 .Append("background.js") |
| 326 "background.js"))))))) | 326 .Build()) |
| 327 .Build()) |
| 328 .Build()) |
| 327 .Set("permissions", | 329 .Set("permissions", |
| 328 std::move(extensions::ListBuilder().Append("gcm"))))) | 330 extensions::ListBuilder().Append("gcm").Build()) |
| 331 .Build()) |
| 329 .Build(); | 332 .Build(); |
| 330 | 333 |
| 331 // Now install it and give it a renderer. | 334 // Now install it and give it a renderer. |
| 332 extensions::ExtensionSystem::Get(profile_) | 335 extensions::ExtensionSystem::Get(profile_) |
| 333 ->extension_service() | 336 ->extension_service() |
| 334 ->AddExtension(gcm_app.get()); | 337 ->AddExtension(gcm_app.get()); |
| 335 CreateRenderProcessForExtension(gcm_app.get()); | 338 CreateRenderProcessForExtension(gcm_app.get()); |
| 336 | 339 |
| 337 EXPECT_EQ(kSetShouldNotFreezeRenderer, test_delegate_->GetActions()); | 340 EXPECT_EQ(kSetShouldNotFreezeRenderer, test_delegate_->GetActions()); |
| 338 } | 341 } |
| 339 | 342 |
| 340 // Tests that the RendererFreezer freezes renderers that are hosting extensions | 343 // Tests that the RendererFreezer freezes renderers that are hosting extensions |
| 341 // that do not use GCM. | 344 // that do not use GCM. |
| 342 TEST_F(RendererFreezerTestWithExtensions, FreezesNonGcmExtensionRenderers) { | 345 TEST_F(RendererFreezerTestWithExtensions, FreezesNonGcmExtensionRenderers) { |
| 343 Init(); | 346 Init(); |
| 344 | 347 |
| 345 // First build the extension. | 348 // First build the extension. |
| 346 scoped_refptr<extensions::Extension> background_app = | 349 scoped_refptr<extensions::Extension> background_app = |
| 347 extensions::ExtensionBuilder() | 350 extensions::ExtensionBuilder() |
| 348 .SetManifest(std::move( | 351 .SetManifest( |
| 349 extensions::DictionaryBuilder() | 352 extensions::DictionaryBuilder() |
| 350 .Set("name", "Background App") | 353 .Set("name", "Background App") |
| 351 .Set("version", "1.0.0") | 354 .Set("version", "1.0.0") |
| 352 .Set("manifest_version", 2) | 355 .Set("manifest_version", 2) |
| 353 .Set("app", | 356 .Set("app", |
| 354 std::move(extensions::DictionaryBuilder().Set( | 357 extensions::DictionaryBuilder() |
| 355 "background", | 358 .Set("background", |
| 356 std::move(extensions::DictionaryBuilder().Set( | 359 extensions::DictionaryBuilder() |
| 357 "scripts", | 360 .Set("scripts", extensions::ListBuilder() |
| 358 std::move(extensions::ListBuilder().Append( | 361 .Append("background.js") |
| 359 "background.js"))))))))) | 362 .Build()) |
| 363 .Build()) |
| 364 .Build()) |
| 365 .Build()) |
| 360 .Build(); | 366 .Build(); |
| 361 | 367 |
| 362 // Now install it and give it a renderer. | 368 // Now install it and give it a renderer. |
| 363 extensions::ExtensionSystem::Get(profile_) | 369 extensions::ExtensionSystem::Get(profile_) |
| 364 ->extension_service() | 370 ->extension_service() |
| 365 ->AddExtension(background_app.get()); | 371 ->AddExtension(background_app.get()); |
| 366 CreateRenderProcessForExtension(background_app.get()); | 372 CreateRenderProcessForExtension(background_app.get()); |
| 367 | 373 |
| 368 EXPECT_EQ(kSetShouldFreezeRenderer, test_delegate_->GetActions()); | 374 EXPECT_EQ(kSetShouldFreezeRenderer, test_delegate_->GetActions()); |
| 369 } | 375 } |
| 370 | 376 |
| 371 } // namespace chromeos | 377 } // namespace chromeos |
| OLD | NEW |