| 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/ui/webui/extensions/extension_activity_ui.h" | 5 #include "chrome/browser/ui/webui/extensions/extension_activity_ui.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/extensions/extension_service.h" | 8 #include "chrome/browser/extensions/extension_service.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" | 10 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 IDS_EXTENSION_ACTIVITY_API_BLOCK); | 35 IDS_EXTENSION_ACTIVITY_API_BLOCK); |
| 36 source->AddLocalizedString("extensionActivityContentScript", | 36 source->AddLocalizedString("extensionActivityContentScript", |
| 37 IDS_EXTENSION_ACTIVITY_CONTENT_SCRIPT); | 37 IDS_EXTENSION_ACTIVITY_CONTENT_SCRIPT); |
| 38 source->set_use_json_js_format_v2(); | 38 source->set_use_json_js_format_v2(); |
| 39 source->set_json_path("strings.js"); | 39 source->set_json_path("strings.js"); |
| 40 | 40 |
| 41 // Resources. | 41 // Resources. |
| 42 source->add_resource_path("extension_activity.js", IDR_EXTENSION_ACTIVITY_JS); | 42 source->add_resource_path("extension_activity.js", IDR_EXTENSION_ACTIVITY_JS); |
| 43 source->set_default_resource(IDR_EXTENSION_ACTIVITY_HTML); | 43 source->set_default_resource(IDR_EXTENSION_ACTIVITY_HTML); |
| 44 | 44 |
| 45 Profile* profile = Profile::FromWebUI(web_ui); | 45 profile_ = Profile::FromWebUI(web_ui); |
| 46 ChromeURLDataManager::AddDataSource(profile, source); | 46 ChromeURLDataManager::AddDataSource(profile_, source); |
| 47 ChromeURLDataManager::AddDataSource(profile, new SharedResourcesDataSource()); | 47 ChromeURLDataManager::AddDataSource( |
| 48 profile_, new SharedResourcesDataSource()); |
| 48 | 49 |
| 49 // Callback handlers. | 50 // Callback handlers. |
| 50 web_ui->RegisterMessageCallback("requestExtensionData", | 51 web_ui->RegisterMessageCallback("requestExtensionData", |
| 51 base::Bind(&ExtensionActivityUI::HandleRequestExtensionData, | 52 base::Bind(&ExtensionActivityUI::HandleRequestExtensionData, |
| 52 base::Unretained(this))); | 53 base::Unretained(this))); |
| 53 } | 54 } |
| 54 | 55 |
| 55 ExtensionActivityUI::~ExtensionActivityUI() { | 56 ExtensionActivityUI::~ExtensionActivityUI() { |
| 56 if (extension_) | 57 if (extension_) |
| 57 extensions::ActivityLog::GetInstance()->RemoveObserver(extension_, this); | 58 extensions::ActivityLog::GetInstance(profile_)->RemoveObserver( |
| 59 extension_, this); |
| 58 } | 60 } |
| 59 | 61 |
| 60 void ExtensionActivityUI::HandleRequestExtensionData( | 62 void ExtensionActivityUI::HandleRequestExtensionData( |
| 61 const base::ListValue* args) { | 63 const base::ListValue* args) { |
| 62 DCHECK_EQ(1U, args->GetSize()); | 64 DCHECK_EQ(1U, args->GetSize()); |
| 63 | 65 |
| 64 std::string extension_id; | 66 std::string extension_id; |
| 65 if (!args->GetString(0, &extension_id)) | 67 if (!args->GetString(0, &extension_id)) |
| 66 return; | 68 return; |
| 67 | 69 |
| 68 ExtensionService* extension_service = Profile::FromWebUI(web_ui())-> | 70 ExtensionService* extension_service = profile_->GetExtensionService(); |
| 69 GetExtensionService(); | |
| 70 extension_ = extension_service->GetExtensionById(extension_id, false); | 71 extension_ = extension_service->GetExtensionById(extension_id, false); |
| 71 if (!extension_) | 72 if (!extension_) |
| 72 return; | 73 return; |
| 73 | 74 |
| 74 GURL icon = | 75 GURL icon = |
| 75 ExtensionIconSource::GetIconURL(extension_, | 76 ExtensionIconSource::GetIconURL(extension_, |
| 76 extension_misc::EXTENSION_ICON_MEDIUM, | 77 extension_misc::EXTENSION_ICON_MEDIUM, |
| 77 ExtensionIconSet::MATCH_BIGGER, | 78 ExtensionIconSet::MATCH_BIGGER, |
| 78 false, NULL); | 79 false, NULL); |
| 79 | 80 |
| 80 DictionaryValue* extension_data = new DictionaryValue(); // Owned by result. | 81 DictionaryValue* extension_data = new DictionaryValue(); // Owned by result. |
| 81 extension_data->SetString("id", extension_->id()); | 82 extension_data->SetString("id", extension_->id()); |
| 82 extension_data->SetString("name", extension_->name()); | 83 extension_data->SetString("name", extension_->name()); |
| 83 extension_data->SetString("version", extension_->version()->GetString()); | 84 extension_data->SetString("version", extension_->version()->GetString()); |
| 84 extension_data->SetString("description", extension_->description()); | 85 extension_data->SetString("description", extension_->description()); |
| 85 extension_data->SetString("icon", icon.spec()); | 86 extension_data->SetString("icon", icon.spec()); |
| 86 | 87 |
| 87 DictionaryValue result; | 88 DictionaryValue result; |
| 88 result.Set("extension", extension_data); | 89 result.Set("extension", extension_data); |
| 89 | 90 |
| 90 web_ui()->CallJavascriptFunction("extension_activity.handleExtensionData", | 91 web_ui()->CallJavascriptFunction("extension_activity.handleExtensionData", |
| 91 result); | 92 result); |
| 92 | 93 |
| 93 extensions::ActivityLog::GetInstance()->AddObserver(extension_, this); | 94 extensions::ActivityLog::GetInstance(profile_)->AddObserver(extension_, this); |
| 94 } | 95 } |
| 95 | 96 |
| 96 void ExtensionActivityUI::OnExtensionActivity( | 97 void ExtensionActivityUI::OnExtensionActivity( |
| 97 const extensions::Extension* extension, | 98 const extensions::Extension* extension, |
| 98 extensions::ActivityLog::Activity activity, | 99 extensions::ActivityLog::Activity activity, |
| 99 const std::vector<std::string>& messages) { | 100 const std::vector<std::string>& messages) { |
| 100 scoped_ptr<ListValue> messages_list(new ListValue()); | 101 scoped_ptr<ListValue> messages_list(new ListValue()); |
| 101 messages_list->AppendStrings(messages); | 102 messages_list->AppendStrings(messages); |
| 102 | 103 |
| 103 DictionaryValue result; | 104 DictionaryValue result; |
| 104 result.SetInteger("activity", activity); | 105 result.SetInteger("activity", activity); |
| 105 result.Set("messages", messages_list.release()); | 106 result.Set("messages", messages_list.release()); |
| 106 | 107 |
| 107 web_ui()->CallJavascriptFunction("extension_activity.handleExtensionActivity", | 108 web_ui()->CallJavascriptFunction("extension_activity.handleExtensionActivity", |
| 108 result); | 109 result); |
| 109 } | 110 } |
| OLD | NEW |