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

Side by Side Diff: chrome/browser/ui/webui/policy_ui.cc

Issue 17593003: Fixed crash in about:policy on OS_ANDROID and OS_IOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/ui/webui/policy_ui.h" 5 #include "chrome/browser/ui/webui/policy_ui.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/memory/weak_ptr.h" 13 #include "base/memory/weak_ptr.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/time.h" 15 #include "base/time.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/extensions/extension_service.h"
19 #include "chrome/browser/extensions/extension_system.h"
20 #include "chrome/browser/policy/browser_policy_connector.h" 18 #include "chrome/browser/policy/browser_policy_connector.h"
21 #include "chrome/browser/policy/cloud/cloud_policy_client.h" 19 #include "chrome/browser/policy/cloud/cloud_policy_client.h"
22 #include "chrome/browser/policy/cloud/cloud_policy_constants.h" 20 #include "chrome/browser/policy/cloud/cloud_policy_constants.h"
23 #include "chrome/browser/policy/cloud/cloud_policy_core.h" 21 #include "chrome/browser/policy/cloud/cloud_policy_core.h"
24 #include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h" 22 #include "chrome/browser/policy/cloud/cloud_policy_refresh_scheduler.h"
25 #include "chrome/browser/policy/cloud/cloud_policy_store.h" 23 #include "chrome/browser/policy/cloud/cloud_policy_store.h"
26 #include "chrome/browser/policy/cloud/cloud_policy_validator.h" 24 #include "chrome/browser/policy/cloud/cloud_policy_validator.h"
27 #include "chrome/browser/policy/cloud/message_util.h" 25 #include "chrome/browser/policy/cloud/message_util.h"
28 #include "chrome/browser/policy/configuration_policy_handler_list.h" 26 #include "chrome/browser/policy/configuration_policy_handler_list.h"
29 #include "chrome/browser/policy/policy_error_map.h" 27 #include "chrome/browser/policy/policy_error_map.h"
30 #include "chrome/browser/policy/policy_map.h" 28 #include "chrome/browser/policy/policy_map.h"
31 #include "chrome/browser/policy/policy_service.h" 29 #include "chrome/browser/policy/policy_service.h"
32 #include "chrome/browser/policy/policy_types.h" 30 #include "chrome/browser/policy/policy_types.h"
33 #include "chrome/browser/policy/profile_policy_connector.h" 31 #include "chrome/browser/policy/profile_policy_connector.h"
34 #include "chrome/browser/policy/profile_policy_connector_factory.h" 32 #include "chrome/browser/policy/profile_policy_connector_factory.h"
35 #include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h" 33 #include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h"
36 #include "chrome/browser/profiles/profile.h" 34 #include "chrome/browser/profiles/profile.h"
37 #include "chrome/common/extensions/extension.h"
38 #include "chrome/common/extensions/extension_set.h"
39 #include "chrome/common/extensions/manifest.h"
40 #include "chrome/common/time_format.h" 35 #include "chrome/common/time_format.h"
41 #include "chrome/common/url_constants.h" 36 #include "chrome/common/url_constants.h"
42 #include "content/public/browser/web_ui.h" 37 #include "content/public/browser/web_ui.h"
43 #include "content/public/browser/web_ui_data_source.h" 38 #include "content/public/browser/web_ui_data_source.h"
44 #include "content/public/browser/web_ui_message_handler.h" 39 #include "content/public/browser/web_ui_message_handler.h"
45 #include "google_apis/gaia/gaia_auth_util.h" 40 #include "google_apis/gaia/gaia_auth_util.h"
46 #include "grit/browser_resources.h" 41 #include "grit/browser_resources.h"
47 #include "grit/generated_resources.h" 42 #include "grit/generated_resources.h"
48 #include "policy/policy_constants.h" 43 #include "policy/policy_constants.h"
49 #include "ui/base/l10n/l10n_util.h" 44 #include "ui/base/l10n/l10n_util.h"
50 45
51 #if defined(OS_CHROMEOS) 46 #if defined(OS_CHROMEOS)
52 #include "chrome/browser/chromeos/login/user_manager.h" 47 #include "chrome/browser/chromeos/login/user_manager.h"
53 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" 48 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
54 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" 49 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
55 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" 50 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
56 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h" 51 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h"
57 #else 52 #else
58 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h" 53 #include "chrome/browser/policy/cloud/user_cloud_policy_manager.h"
59 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" 54 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
60 #endif 55 #endif
61 56
57 #if !defined(OS_ANDROID) && !defined(OS_IOS)
58 #include "chrome/browser/extensions/extension_service.h"
59 #include "chrome/browser/extensions/extension_system.h"
60 #include "chrome/common/extensions/extension.h"
61 #include "chrome/common/extensions/extension_set.h"
62 #include "chrome/common/extensions/manifest.h"
63 #endif
64
62 namespace em = enterprise_management; 65 namespace em = enterprise_management;
63 66
64 namespace { 67 namespace {
65 68
66 content::WebUIDataSource* CreatePolicyUIHTMLSource() { 69 content::WebUIDataSource* CreatePolicyUIHTMLSource() {
67 content::WebUIDataSource* source = 70 content::WebUIDataSource* source =
68 content::WebUIDataSource::Create(chrome::kChromeUIPolicyHost); 71 content::WebUIDataSource::Create(chrome::kChromeUIPolicyHost);
69 72
70 // Localized strings. 73 // Localized strings.
71 source->AddLocalizedString("title", IDS_POLICY_TITLE); 74 source->AddLocalizedString("title", IDS_POLICY_TITLE);
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 518 }
516 519
517 void PolicyUIHandler::SendPolicyValues() const { 520 void PolicyUIHandler::SendPolicyValues() const {
518 base::DictionaryValue all_policies; 521 base::DictionaryValue all_policies;
519 522
520 // Add chrome policies. 523 // Add chrome policies.
521 base::DictionaryValue* chrome_policies = new base::DictionaryValue; 524 base::DictionaryValue* chrome_policies = new base::DictionaryValue;
522 GetChromePolicyValues(chrome_policies); 525 GetChromePolicyValues(chrome_policies);
523 all_policies.Set("chromePolicies", chrome_policies); 526 all_policies.Set("chromePolicies", chrome_policies);
524 527
528 #if !defined(OS_ANDROID) && !defined(OS_IOS)
525 // Get extensions. 529 // Get extensions.
526 extensions::ExtensionSystem* extension_system = 530 extensions::ExtensionSystem* extension_system =
527 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui())); 531 extensions::ExtensionSystem::Get(Profile::FromWebUI(web_ui()));
Joao da Silva 2013/06/24 10:34:08 Anita: this compiles but always returns NULL on OS
anitawoodruff 2013/06/24 11:53:52 Done.
528 const ExtensionSet* extensions = 532 const ExtensionSet* extensions =
529 extension_system->extension_service()->extensions(); 533 extension_system->extension_service()->extensions();
530 534
531 // Add policies for each extension. 535 // Add policies for each extension.
532 base::DictionaryValue* extension_values = new base::DictionaryValue; 536 base::DictionaryValue* extension_values = new base::DictionaryValue;
533 for (ExtensionSet::const_iterator it = extensions->begin(); 537 for (ExtensionSet::const_iterator it = extensions->begin();
534 it != extensions->end(); ++it) { 538 it != extensions->end(); ++it) {
535 const extensions::Extension* extension = *it; 539 const extensions::Extension* extension = *it;
536 540
537 // Skip this extension if it's a component extension. 541 // Skip this extension if it's a component extension.
(...skipping 11 matching lines...) Expand all
549 policy::POLICY_DOMAIN_EXTENSIONS, extension->id()); 553 policy::POLICY_DOMAIN_EXTENSIONS, extension->id());
550 policy::PolicyErrorMap empty_error_map; 554 policy::PolicyErrorMap empty_error_map;
551 GetPolicyValues(GetPolicyService()->GetPolicies(policy_namespace), 555 GetPolicyValues(GetPolicyService()->GetPolicies(policy_namespace),
552 &empty_error_map, extension_policies); 556 &empty_error_map, extension_policies);
553 extension_value->Set("policies", extension_policies); 557 extension_value->Set("policies", extension_policies);
554 558
555 // Add entry to the dictionary. 559 // Add entry to the dictionary.
556 extension_values->Set(extension->id(), extension_value); 560 extension_values->Set(extension->id(), extension_value);
557 } 561 }
558 all_policies.Set("extensionPolicies", extension_values); 562 all_policies.Set("extensionPolicies", extension_values);
563 #endif
559 564
560 web_ui()->CallJavascriptFunction("policy.Page.setPolicyValues", all_policies); 565 web_ui()->CallJavascriptFunction("policy.Page.setPolicyValues", all_policies);
561 } 566 }
562 567
563 void PolicyUIHandler::GetPolicyValues(const policy::PolicyMap& map, 568 void PolicyUIHandler::GetPolicyValues(const policy::PolicyMap& map,
564 policy::PolicyErrorMap* errors, 569 policy::PolicyErrorMap* errors,
565 base::DictionaryValue* values) const { 570 base::DictionaryValue* values) const {
566 for (policy::PolicyMap::const_iterator entry = map.begin(); 571 for (policy::PolicyMap::const_iterator entry = map.begin();
567 entry != map.end(); ++entry) { 572 entry != map.end(); ++entry) {
568 base::DictionaryValue* value = new base::DictionaryValue; 573 base::DictionaryValue* value = new base::DictionaryValue;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 } 652 }
648 653
649 PolicyUI::PolicyUI(content::WebUI* web_ui) : WebUIController(web_ui) { 654 PolicyUI::PolicyUI(content::WebUI* web_ui) : WebUIController(web_ui) {
650 web_ui->AddMessageHandler(new PolicyUIHandler); 655 web_ui->AddMessageHandler(new PolicyUIHandler);
651 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), 656 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
652 CreatePolicyUIHTMLSource()); 657 CreatePolicyUIHTMLSource());
653 } 658 }
654 659
655 PolicyUI::~PolicyUI() { 660 PolicyUI::~PolicyUI() {
656 } 661 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698