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

Side by Side Diff: extensions/browser/api/management/management_api.cc

Issue 1902873002: Convert //extensions/browser/api from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 "extensions/browser/api/management/management_api.h" 5 #include "extensions/browser/api/management/management_api.h"
6 6
7 #include <memory>
7 #include <string> 8 #include <string>
8 #include <utility> 9 #include <utility>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/bind.h" 12 #include "base/bind.h"
12 #include "base/json/json_writer.h" 13 #include "base/json/json_writer.h"
13 #include "base/lazy_instance.h" 14 #include "base/lazy_instance.h"
14 #include "base/logging.h" 15 #include "base/logging.h"
15 #include "base/memory/linked_ptr.h" 16 #include "base/memory/linked_ptr.h"
16 #include "base/memory/scoped_ptr.h"
17 #include "base/metrics/histogram.h" 17 #include "base/metrics/histogram.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "base/strings/string_util.h" 19 #include "base/strings/string_util.h"
20 #include "base/strings/utf_string_conversions.h" 20 #include "base/strings/utf_string_conversions.h"
21 #include "build/build_config.h" 21 #include "build/build_config.h"
22 #include "content/public/browser/browser_context.h" 22 #include "content/public/browser/browser_context.h"
23 #include "extensions/browser/api/extensions_api_client.h" 23 #include "extensions/browser/api/extensions_api_client.h"
24 #include "extensions/browser/api/management/management_api_constants.h" 24 #include "extensions/browser/api/management/management_api_constants.h"
25 #include "extensions/browser/event_router.h" 25 #include "extensions/browser/event_router.h"
26 #include "extensions/browser/extension_prefs.h" 26 #include "extensions/browser/extension_prefs.h"
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 AddExtensionInfo(registry->disabled_extensions(), &extensions, 273 AddExtensionInfo(registry->disabled_extensions(), &extensions,
274 browser_context()); 274 browser_context());
275 AddExtensionInfo(registry->terminated_extensions(), &extensions, 275 AddExtensionInfo(registry->terminated_extensions(), &extensions,
276 browser_context()); 276 browser_context());
277 277
278 results_ = management::GetAll::Results::Create(extensions); 278 results_ = management::GetAll::Results::Create(extensions);
279 return true; 279 return true;
280 } 280 }
281 281
282 bool ManagementGetFunction::RunSync() { 282 bool ManagementGetFunction::RunSync() {
283 scoped_ptr<management::Get::Params> params( 283 std::unique_ptr<management::Get::Params> params(
284 management::Get::Params::Create(*args_)); 284 management::Get::Params::Create(*args_));
285 EXTENSION_FUNCTION_VALIDATE(params.get()); 285 EXTENSION_FUNCTION_VALIDATE(params.get());
286 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context()); 286 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
287 287
288 const Extension* extension = 288 const Extension* extension =
289 registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 289 registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
290 if (!extension) { 290 if (!extension) {
291 error_ = 291 error_ =
292 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id); 292 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
293 return false; 293 return false;
294 } 294 }
295 295
296 results_ = management::Get::Results::Create( 296 results_ = management::Get::Results::Create(
297 CreateExtensionInfo(*extension, browser_context())); 297 CreateExtensionInfo(*extension, browser_context()));
298 298
299 return true; 299 return true;
300 } 300 }
301 301
302 bool ManagementGetSelfFunction::RunSync() { 302 bool ManagementGetSelfFunction::RunSync() {
303 results_ = management::Get::Results::Create( 303 results_ = management::Get::Results::Create(
304 CreateExtensionInfo(*extension_, browser_context())); 304 CreateExtensionInfo(*extension_, browser_context()));
305 305
306 return true; 306 return true;
307 } 307 }
308 308
309 bool ManagementGetPermissionWarningsByIdFunction::RunSync() { 309 bool ManagementGetPermissionWarningsByIdFunction::RunSync() {
310 scoped_ptr<management::GetPermissionWarningsById::Params> params( 310 std::unique_ptr<management::GetPermissionWarningsById::Params> params(
311 management::GetPermissionWarningsById::Params::Create(*args_)); 311 management::GetPermissionWarningsById::Params::Create(*args_));
312 EXTENSION_FUNCTION_VALIDATE(params.get()); 312 EXTENSION_FUNCTION_VALIDATE(params.get());
313 313
314 const Extension* extension = 314 const Extension* extension =
315 ExtensionRegistry::Get(browser_context()) 315 ExtensionRegistry::Get(browser_context())
316 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 316 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
317 if (!extension) { 317 if (!extension) {
318 error_ = 318 error_ =
319 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id); 319 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
320 return false; 320 return false;
321 } 321 }
322 322
323 std::vector<std::string> warnings = CreateWarningsList(extension); 323 std::vector<std::string> warnings = CreateWarningsList(extension);
324 results_ = management::GetPermissionWarningsById::Results::Create(warnings); 324 results_ = management::GetPermissionWarningsById::Results::Create(warnings);
325 return true; 325 return true;
326 } 326 }
327 327
328 bool ManagementGetPermissionWarningsByManifestFunction::RunAsync() { 328 bool ManagementGetPermissionWarningsByManifestFunction::RunAsync() {
329 scoped_ptr<management::GetPermissionWarningsByManifest::Params> params( 329 std::unique_ptr<management::GetPermissionWarningsByManifest::Params> params(
330 management::GetPermissionWarningsByManifest::Params::Create(*args_)); 330 management::GetPermissionWarningsByManifest::Params::Create(*args_));
331 EXTENSION_FUNCTION_VALIDATE(params.get()); 331 EXTENSION_FUNCTION_VALIDATE(params.get());
332 332
333 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 333 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
334 ->Get(browser_context()) 334 ->Get(browser_context())
335 ->GetDelegate(); 335 ->GetDelegate();
336 336
337 if (delegate) { 337 if (delegate) {
338 delegate->GetPermissionWarningsByManifestFunctionDelegate( 338 delegate->GetPermissionWarningsByManifestFunctionDelegate(
339 this, params->manifest_str); 339 this, params->manifest_str);
340 340
341 // Matched with a Release() in OnParseSuccess/Failure(). 341 // Matched with a Release() in OnParseSuccess/Failure().
342 AddRef(); 342 AddRef();
343 343
344 // Response is sent async in OnParseSuccess/Failure(). 344 // Response is sent async in OnParseSuccess/Failure().
345 return true; 345 return true;
346 } else { 346 } else {
347 // TODO(lfg) add error string 347 // TODO(lfg) add error string
348 OnParseFailure(""); 348 OnParseFailure("");
349 return false; 349 return false;
350 } 350 }
351 } 351 }
352 352
353 void ManagementGetPermissionWarningsByManifestFunction::OnParseSuccess( 353 void ManagementGetPermissionWarningsByManifestFunction::OnParseSuccess(
354 scoped_ptr<base::Value> value) { 354 std::unique_ptr<base::Value> value) {
355 if (!value->IsType(base::Value::TYPE_DICTIONARY)) { 355 if (!value->IsType(base::Value::TYPE_DICTIONARY)) {
356 OnParseFailure(keys::kManifestParseError); 356 OnParseFailure(keys::kManifestParseError);
357 return; 357 return;
358 } 358 }
359 const base::DictionaryValue* parsed_manifest = 359 const base::DictionaryValue* parsed_manifest =
360 static_cast<const base::DictionaryValue*>(value.get()); 360 static_cast<const base::DictionaryValue*>(value.get());
361 361
362 scoped_refptr<Extension> extension = 362 scoped_refptr<Extension> extension =
363 Extension::Create(base::FilePath(), Manifest::INVALID_LOCATION, 363 Extension::Create(base::FilePath(), Manifest::INVALID_LOCATION,
364 *parsed_manifest, Extension::NO_FLAGS, &error_); 364 *parsed_manifest, Extension::NO_FLAGS, &error_);
(...skipping 14 matching lines...) Expand all
379 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure( 379 void ManagementGetPermissionWarningsByManifestFunction::OnParseFailure(
380 const std::string& error) { 380 const std::string& error) {
381 error_ = error; 381 error_ = error;
382 SendResponse(false); 382 SendResponse(false);
383 383
384 // Matched with AddRef() in RunAsync(). 384 // Matched with AddRef() in RunAsync().
385 Release(); 385 Release();
386 } 386 }
387 387
388 bool ManagementLaunchAppFunction::RunSync() { 388 bool ManagementLaunchAppFunction::RunSync() {
389 scoped_ptr<management::LaunchApp::Params> params( 389 std::unique_ptr<management::LaunchApp::Params> params(
390 management::LaunchApp::Params::Create(*args_)); 390 management::LaunchApp::Params::Create(*args_));
391 EXTENSION_FUNCTION_VALIDATE(params.get()); 391 EXTENSION_FUNCTION_VALIDATE(params.get());
392 const Extension* extension = 392 const Extension* extension =
393 ExtensionRegistry::Get(browser_context()) 393 ExtensionRegistry::Get(browser_context())
394 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 394 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
395 if (!extension) { 395 if (!extension) {
396 error_ = 396 error_ =
397 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id); 397 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
398 return false; 398 return false;
399 } 399 }
400 if (!extension->is_app()) { 400 if (!extension->is_app()) {
401 error_ = ErrorUtils::FormatErrorMessage(keys::kNotAnAppError, params->id); 401 error_ = ErrorUtils::FormatErrorMessage(keys::kNotAnAppError, params->id);
402 return false; 402 return false;
403 } 403 }
404 404
405 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 405 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
406 ->Get(browser_context()) 406 ->Get(browser_context())
407 ->GetDelegate(); 407 ->GetDelegate();
408 return delegate->LaunchAppFunctionDelegate(extension, browser_context()); 408 return delegate->LaunchAppFunctionDelegate(extension, browser_context());
409 } 409 }
410 410
411 ManagementSetEnabledFunction::ManagementSetEnabledFunction() { 411 ManagementSetEnabledFunction::ManagementSetEnabledFunction() {
412 } 412 }
413 413
414 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() { 414 ManagementSetEnabledFunction::~ManagementSetEnabledFunction() {
415 } 415 }
416 416
417 ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() { 417 ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
418 scoped_ptr<management::SetEnabled::Params> params( 418 std::unique_ptr<management::SetEnabled::Params> params(
419 management::SetEnabled::Params::Create(*args_)); 419 management::SetEnabled::Params::Create(*args_));
420 EXTENSION_FUNCTION_VALIDATE(params.get()); 420 EXTENSION_FUNCTION_VALIDATE(params.get());
421 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context()); 421 ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
422 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 422 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
423 ->Get(browser_context()) 423 ->Get(browser_context())
424 ->GetDelegate(); 424 ->GetDelegate();
425 425
426 extension_id_ = params->id; 426 extension_id_ = params->id;
427 427
428 const Extension* extension = 428 const Extension* extension =
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 Finish(success, error); 595 Finish(success, error);
596 } 596 }
597 597
598 ManagementUninstallFunction::ManagementUninstallFunction() { 598 ManagementUninstallFunction::ManagementUninstallFunction() {
599 } 599 }
600 600
601 ManagementUninstallFunction::~ManagementUninstallFunction() { 601 ManagementUninstallFunction::~ManagementUninstallFunction() {
602 } 602 }
603 603
604 ExtensionFunction::ResponseAction ManagementUninstallFunction::Run() { 604 ExtensionFunction::ResponseAction ManagementUninstallFunction::Run() {
605 scoped_ptr<management::Uninstall::Params> params( 605 std::unique_ptr<management::Uninstall::Params> params(
606 management::Uninstall::Params::Create(*args_)); 606 management::Uninstall::Params::Create(*args_));
607 EXTENSION_FUNCTION_VALIDATE(params.get()); 607 EXTENSION_FUNCTION_VALIDATE(params.get());
608 608
609 bool show_confirm_dialog = params->options.get() && 609 bool show_confirm_dialog = params->options.get() &&
610 params->options->show_confirm_dialog.get() && 610 params->options->show_confirm_dialog.get() &&
611 *params->options->show_confirm_dialog; 611 *params->options->show_confirm_dialog;
612 return Uninstall(params->id, show_confirm_dialog); 612 return Uninstall(params->id, show_confirm_dialog);
613 } 613 }
614 614
615 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() { 615 ManagementUninstallSelfFunction::ManagementUninstallSelfFunction() {
616 } 616 }
617 617
618 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() { 618 ManagementUninstallSelfFunction::~ManagementUninstallSelfFunction() {
619 } 619 }
620 620
621 ExtensionFunction::ResponseAction ManagementUninstallSelfFunction::Run() { 621 ExtensionFunction::ResponseAction ManagementUninstallSelfFunction::Run() {
622 scoped_ptr<management::UninstallSelf::Params> params( 622 std::unique_ptr<management::UninstallSelf::Params> params(
623 management::UninstallSelf::Params::Create(*args_)); 623 management::UninstallSelf::Params::Create(*args_));
624 EXTENSION_FUNCTION_VALIDATE(params.get()); 624 EXTENSION_FUNCTION_VALIDATE(params.get());
625 EXTENSION_FUNCTION_VALIDATE(extension_.get()); 625 EXTENSION_FUNCTION_VALIDATE(extension_.get());
626 626
627 bool show_confirm_dialog = params->options.get() && 627 bool show_confirm_dialog = params->options.get() &&
628 params->options->show_confirm_dialog.get() && 628 params->options->show_confirm_dialog.get() &&
629 *params->options->show_confirm_dialog; 629 *params->options->show_confirm_dialog;
630 return Uninstall(extension_->id(), show_confirm_dialog); 630 return Uninstall(extension_->id(), show_confirm_dialog);
631 } 631 }
632 632
(...skipping 15 matching lines...) Expand all
648 SendResponse(created); 648 SendResponse(created);
649 Release(); 649 Release();
650 } 650 }
651 651
652 bool ManagementCreateAppShortcutFunction::RunAsync() { 652 bool ManagementCreateAppShortcutFunction::RunAsync() {
653 if (!user_gesture()) { 653 if (!user_gesture()) {
654 error_ = keys::kGestureNeededForCreateAppShortcutError; 654 error_ = keys::kGestureNeededForCreateAppShortcutError;
655 return false; 655 return false;
656 } 656 }
657 657
658 scoped_ptr<management::CreateAppShortcut::Params> params( 658 std::unique_ptr<management::CreateAppShortcut::Params> params(
659 management::CreateAppShortcut::Params::Create(*args_)); 659 management::CreateAppShortcut::Params::Create(*args_));
660 EXTENSION_FUNCTION_VALIDATE(params.get()); 660 EXTENSION_FUNCTION_VALIDATE(params.get());
661 const Extension* extension = 661 const Extension* extension =
662 ExtensionRegistry::Get(browser_context()) 662 ExtensionRegistry::Get(browser_context())
663 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 663 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
664 if (!extension) { 664 if (!extension) {
665 error_ = 665 error_ =
666 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id); 666 ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id);
667 return false; 667 return false;
668 } 668 }
(...skipping 30 matching lines...) Expand all
699 // Response is sent async in OnCloseShortcutPrompt(). 699 // Response is sent async in OnCloseShortcutPrompt().
700 return true; 700 return true;
701 } 701 }
702 702
703 bool ManagementSetLaunchTypeFunction::RunSync() { 703 bool ManagementSetLaunchTypeFunction::RunSync() {
704 if (!user_gesture()) { 704 if (!user_gesture()) {
705 error_ = keys::kGestureNeededForSetLaunchTypeError; 705 error_ = keys::kGestureNeededForSetLaunchTypeError;
706 return false; 706 return false;
707 } 707 }
708 708
709 scoped_ptr<management::SetLaunchType::Params> params( 709 std::unique_ptr<management::SetLaunchType::Params> params(
710 management::SetLaunchType::Params::Create(*args_)); 710 management::SetLaunchType::Params::Create(*args_));
711 EXTENSION_FUNCTION_VALIDATE(params.get()); 711 EXTENSION_FUNCTION_VALIDATE(params.get());
712 const Extension* extension = 712 const Extension* extension =
713 ExtensionRegistry::Get(browser_context()) 713 ExtensionRegistry::Get(browser_context())
714 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING); 714 ->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING);
715 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance() 715 const ManagementAPIDelegate* delegate = ManagementAPI::GetFactoryInstance()
716 ->Get(browser_context()) 716 ->Get(browser_context())
717 ->GetDelegate(); 717 ->GetDelegate();
718 if (!extension) { 718 if (!extension) {
719 error_ = 719 error_ =
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 Release(); 780 Release();
781 } 781 }
782 } 782 }
783 783
784 bool ManagementGenerateAppForLinkFunction::RunAsync() { 784 bool ManagementGenerateAppForLinkFunction::RunAsync() {
785 if (!user_gesture()) { 785 if (!user_gesture()) {
786 error_ = keys::kGestureNeededForGenerateAppForLinkError; 786 error_ = keys::kGestureNeededForGenerateAppForLinkError;
787 return false; 787 return false;
788 } 788 }
789 789
790 scoped_ptr<management::GenerateAppForLink::Params> params( 790 std::unique_ptr<management::GenerateAppForLink::Params> params(
791 management::GenerateAppForLink::Params::Create(*args_)); 791 management::GenerateAppForLink::Params::Create(*args_));
792 EXTENSION_FUNCTION_VALIDATE(params.get()); 792 EXTENSION_FUNCTION_VALIDATE(params.get());
793 793
794 GURL launch_url(params->url); 794 GURL launch_url(params->url);
795 if (!launch_url.is_valid() || !launch_url.SchemeIsHTTPOrHTTPS()) { 795 if (!launch_url.is_valid() || !launch_url.SchemeIsHTTPOrHTTPS()) {
796 error_ = 796 error_ =
797 ErrorUtils::FormatErrorMessage(keys::kInvalidURLError, params->url); 797 ErrorUtils::FormatErrorMessage(keys::kInvalidURLError, params->url);
798 return false; 798 return false;
799 } 799 }
800 800
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 BroadcastEvent(extension, events::MANAGEMENT_ON_UNINSTALLED, 855 BroadcastEvent(extension, events::MANAGEMENT_ON_UNINSTALLED,
856 management::OnUninstalled::kEventName); 856 management::OnUninstalled::kEventName);
857 } 857 }
858 858
859 void ManagementEventRouter::BroadcastEvent( 859 void ManagementEventRouter::BroadcastEvent(
860 const Extension* extension, 860 const Extension* extension,
861 events::HistogramValue histogram_value, 861 events::HistogramValue histogram_value,
862 const char* event_name) { 862 const char* event_name) {
863 if (extension->ShouldNotBeVisible()) 863 if (extension->ShouldNotBeVisible())
864 return; // Don't dispatch events for built-in extenions. 864 return; // Don't dispatch events for built-in extenions.
865 scoped_ptr<base::ListValue> args(new base::ListValue()); 865 std::unique_ptr<base::ListValue> args(new base::ListValue());
866 if (event_name == management::OnUninstalled::kEventName) { 866 if (event_name == management::OnUninstalled::kEventName) {
867 args->Append(new base::StringValue(extension->id())); 867 args->Append(new base::StringValue(extension->id()));
868 } else { 868 } else {
869 args->Append(CreateExtensionInfo(*extension, browser_context_).ToValue()); 869 args->Append(CreateExtensionInfo(*extension, browser_context_).ToValue());
870 } 870 }
871 871
872 EventRouter::Get(browser_context_) 872 EventRouter::Get(browser_context_)
873 ->BroadcastEvent(scoped_ptr<Event>( 873 ->BroadcastEvent(std::unique_ptr<Event>(
874 new Event(histogram_value, event_name, std::move(args)))); 874 new Event(histogram_value, event_name, std::move(args))));
875 } 875 }
876 876
877 ManagementAPI::ManagementAPI(content::BrowserContext* context) 877 ManagementAPI::ManagementAPI(content::BrowserContext* context)
878 : browser_context_(context), 878 : browser_context_(context),
879 delegate_(ExtensionsAPIClient::Get()->CreateManagementAPIDelegate()) { 879 delegate_(ExtensionsAPIClient::Get()->CreateManagementAPIDelegate()) {
880 EventRouter* event_router = EventRouter::Get(browser_context_); 880 EventRouter* event_router = EventRouter::Get(browser_context_);
881 event_router->RegisterObserver(this, management::OnInstalled::kEventName); 881 event_router->RegisterObserver(this, management::OnInstalled::kEventName);
882 event_router->RegisterObserver(this, management::OnUninstalled::kEventName); 882 event_router->RegisterObserver(this, management::OnUninstalled::kEventName);
883 event_router->RegisterObserver(this, management::OnEnabled::kEventName); 883 event_router->RegisterObserver(this, management::OnEnabled::kEventName);
(...skipping 15 matching lines...) Expand all
899 ManagementAPI::GetFactoryInstance() { 899 ManagementAPI::GetFactoryInstance() {
900 return g_factory.Pointer(); 900 return g_factory.Pointer();
901 } 901 }
902 902
903 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) { 903 void ManagementAPI::OnListenerAdded(const EventListenerInfo& details) {
904 management_event_router_.reset(new ManagementEventRouter(browser_context_)); 904 management_event_router_.reset(new ManagementEventRouter(browser_context_));
905 EventRouter::Get(browser_context_)->UnregisterObserver(this); 905 EventRouter::Get(browser_context_)->UnregisterObserver(this);
906 } 906 }
907 907
908 } // namespace extensions 908 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/management/management_api.h ('k') | extensions/browser/api/management/management_api_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698