| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/extensions_ui.h" | 5 #include "chrome/browser/extensions/extensions_ui.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| 11 #include "base/base64.h" | 11 #include "base/base64.h" |
| 12 #include "base/callback.h" | 12 #include "base/callback.h" |
| 13 #include "base/file_util.h" | 13 #include "base/file_util.h" |
| 14 #include "base/singleton.h" | 14 #include "base/singleton.h" |
| 15 #include "base/string_number_conversions.h" | 15 #include "base/string_number_conversions.h" |
| 16 #include "base/string_util.h" | 16 #include "base/string_util.h" |
| 17 #include "base/utf_string_conversions.h" | 17 #include "base/utf_string_conversions.h" |
| 18 #include "base/thread.h" | 18 #include "base/thread.h" |
| 19 #include "base/version.h" | 19 #include "base/version.h" |
| 20 #include "chrome/browser/browser_list.h" | 20 #include "chrome/browser/browser_list.h" |
| 21 #include "chrome/browser/debugger/devtools_manager.h" | 21 #include "chrome/browser/debugger/devtools_manager.h" |
| 22 #include "chrome/browser/debugger/devtools_toggle_action.h" | 22 #include "chrome/browser/debugger/devtools_toggle_action.h" |
| 23 #include "chrome/browser/extensions/crx_installer.h" | 23 #include "chrome/browser/extensions/crx_installer.h" |
| 24 #include "chrome/browser/extensions/extension_disabled_infobar_delegate.h" | 24 #include "chrome/browser/extensions/extension_disabled_infobar_delegate.h" |
| 25 #include "chrome/browser/extensions/extension_error_reporter.h" | 25 #include "chrome/browser/extensions/extension_error_reporter.h" |
| 26 #include "chrome/browser/extensions/extension_function_dispatcher.h" | 26 #include "chrome/browser/extensions/extension_function_dispatcher.h" |
| 27 #include "chrome/browser/extensions/extension_host.h" | 27 #include "chrome/browser/extensions/extension_host.h" |
| 28 #include "chrome/browser/extensions/extension_message_service.h" | 28 #include "chrome/browser/extensions/extension_message_service.h" |
| 29 #include "chrome/browser/extensions/extensions_service.h" | 29 #include "chrome/browser/extensions/extension_service.h" |
| 30 #include "chrome/browser/extensions/extension_updater.h" | 30 #include "chrome/browser/extensions/extension_updater.h" |
| 31 #include "chrome/browser/google/google_util.h" | 31 #include "chrome/browser/google/google_util.h" |
| 32 #include "chrome/browser/prefs/pref_service.h" | 32 #include "chrome/browser/prefs/pref_service.h" |
| 33 #include "chrome/browser/profiles/profile.h" | 33 #include "chrome/browser/profiles/profile.h" |
| 34 #include "chrome/browser/renderer_host/render_process_host.h" | 34 #include "chrome/browser/renderer_host/render_process_host.h" |
| 35 #include "chrome/browser/renderer_host/render_widget_host.h" | 35 #include "chrome/browser/renderer_host/render_widget_host.h" |
| 36 #include "chrome/browser/renderer_host/render_view_host.h" | 36 #include "chrome/browser/renderer_host/render_view_host.h" |
| 37 #include "chrome/browser/tab_contents/background_contents.h" | 37 #include "chrome/browser/tab_contents/background_contents.h" |
| 38 #include "chrome/browser/tab_contents/tab_contents.h" | 38 #include "chrome/browser/tab_contents/tab_contents.h" |
| 39 #include "chrome/browser/tab_contents/tab_contents_view.h" | 39 #include "chrome/browser/tab_contents/tab_contents_view.h" |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 handler_->OnIconsLoaded(json); | 286 handler_->OnIconsLoaded(json); |
| 287 } | 287 } |
| 288 | 288 |
| 289 | 289 |
| 290 /////////////////////////////////////////////////////////////////////////////// | 290 /////////////////////////////////////////////////////////////////////////////// |
| 291 // | 291 // |
| 292 // ExtensionsDOMHandler | 292 // ExtensionsDOMHandler |
| 293 // | 293 // |
| 294 /////////////////////////////////////////////////////////////////////////////// | 294 /////////////////////////////////////////////////////////////////////////////// |
| 295 | 295 |
| 296 ExtensionsDOMHandler::ExtensionsDOMHandler(ExtensionsService* extension_service) | 296 ExtensionsDOMHandler::ExtensionsDOMHandler(ExtensionService* extension_service) |
| 297 : extensions_service_(extension_service), | 297 : extensions_service_(extension_service), |
| 298 ignore_notifications_(false), | 298 ignore_notifications_(false), |
| 299 deleting_rvh_(NULL) { | 299 deleting_rvh_(NULL) { |
| 300 } | 300 } |
| 301 | 301 |
| 302 void ExtensionsDOMHandler::RegisterMessages() { | 302 void ExtensionsDOMHandler::RegisterMessages() { |
| 303 dom_ui_->RegisterMessageCallback("requestExtensionsData", | 303 dom_ui_->RegisterMessageCallback("requestExtensionsData", |
| 304 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); | 304 NewCallback(this, &ExtensionsDOMHandler::HandleRequestExtensionsData)); |
| 305 dom_ui_->RegisterMessageCallback("toggleDeveloperMode", | 305 dom_ui_->RegisterMessageCallback("toggleDeveloperMode", |
| 306 NewCallback(this, &ExtensionsDOMHandler::HandleToggleDeveloperMode)); | 306 NewCallback(this, &ExtensionsDOMHandler::HandleToggleDeveloperMode)); |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 786 if (pattern->MatchesScheme(chrome::kFileScheme)) | 786 if (pattern->MatchesScheme(chrome::kFileScheme)) |
| 787 return true; | 787 return true; |
| 788 } | 788 } |
| 789 } | 789 } |
| 790 | 790 |
| 791 return false; | 791 return false; |
| 792 } | 792 } |
| 793 | 793 |
| 794 // Static | 794 // Static |
| 795 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( | 795 DictionaryValue* ExtensionsDOMHandler::CreateExtensionDetailValue( |
| 796 ExtensionsService* service, const Extension* extension, | 796 ExtensionService* service, const Extension* extension, |
| 797 const std::vector<ExtensionPage>& pages, bool enabled) { | 797 const std::vector<ExtensionPage>& pages, bool enabled) { |
| 798 DictionaryValue* extension_data = new DictionaryValue(); | 798 DictionaryValue* extension_data = new DictionaryValue(); |
| 799 | 799 |
| 800 extension_data->SetString("id", extension->id()); | 800 extension_data->SetString("id", extension->id()); |
| 801 extension_data->SetString("name", extension->name()); | 801 extension_data->SetString("name", extension->name()); |
| 802 extension_data->SetString("description", extension->description()); | 802 extension_data->SetString("description", extension->description()); |
| 803 extension_data->SetString("version", extension->version()->GetString()); | 803 extension_data->SetString("version", extension->version()->GetString()); |
| 804 extension_data->SetBoolean("enabled", enabled); | 804 extension_data->SetBoolean("enabled", enabled); |
| 805 extension_data->SetBoolean("enabledIncognito", | 805 extension_data->SetBoolean("enabledIncognito", |
| 806 service ? service->IsIncognitoEnabled(extension) : false); | 806 service ? service->IsIncognitoEnabled(extension) : false); |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 931 if (pack_job_.get()) | 931 if (pack_job_.get()) |
| 932 pack_job_->ClearClient(); | 932 pack_job_->ClearClient(); |
| 933 | 933 |
| 934 if (icon_loader_.get()) | 934 if (icon_loader_.get()) |
| 935 icon_loader_->Cancel(); | 935 icon_loader_->Cancel(); |
| 936 } | 936 } |
| 937 | 937 |
| 938 // ExtensionsDOMHandler, public: ----------------------------------------------- | 938 // ExtensionsDOMHandler, public: ----------------------------------------------- |
| 939 | 939 |
| 940 ExtensionsUI::ExtensionsUI(TabContents* contents) : DOMUI(contents) { | 940 ExtensionsUI::ExtensionsUI(TabContents* contents) : DOMUI(contents) { |
| 941 ExtensionsService *exstension_service = | 941 ExtensionService *exstension_service = |
| 942 GetProfile()->GetOriginalProfile()->GetExtensionsService(); | 942 GetProfile()->GetOriginalProfile()->GetExtensionService(); |
| 943 | 943 |
| 944 ExtensionsDOMHandler* handler = new ExtensionsDOMHandler(exstension_service); | 944 ExtensionsDOMHandler* handler = new ExtensionsDOMHandler(exstension_service); |
| 945 AddMessageHandler(handler); | 945 AddMessageHandler(handler); |
| 946 handler->Attach(this); | 946 handler->Attach(this); |
| 947 | 947 |
| 948 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); | 948 ExtensionsUIHTMLSource* html_source = new ExtensionsUIHTMLSource(); |
| 949 | 949 |
| 950 // Set up the chrome://extensions/ source. | 950 // Set up the chrome://extensions/ source. |
| 951 BrowserThread::PostTask( | 951 BrowserThread::PostTask( |
| 952 BrowserThread::IO, FROM_HERE, | 952 BrowserThread::IO, FROM_HERE, |
| 953 NewRunnableMethod( | 953 NewRunnableMethod( |
| 954 ChromeURLDataManager::GetInstance(), | 954 ChromeURLDataManager::GetInstance(), |
| 955 &ChromeURLDataManager::AddDataSource, | 955 &ChromeURLDataManager::AddDataSource, |
| 956 make_scoped_refptr(html_source))); | 956 make_scoped_refptr(html_source))); |
| 957 } | 957 } |
| 958 | 958 |
| 959 // static | 959 // static |
| 960 RefCountedMemory* ExtensionsUI::GetFaviconResourceBytes() { | 960 RefCountedMemory* ExtensionsUI::GetFaviconResourceBytes() { |
| 961 return ResourceBundle::GetSharedInstance(). | 961 return ResourceBundle::GetSharedInstance(). |
| 962 LoadDataResourceBytes(IDR_PLUGIN); | 962 LoadDataResourceBytes(IDR_PLUGIN); |
| 963 } | 963 } |
| 964 | 964 |
| 965 // static | 965 // static |
| 966 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { | 966 void ExtensionsUI::RegisterUserPrefs(PrefService* prefs) { |
| 967 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, false); | 967 prefs->RegisterBooleanPref(prefs::kExtensionsUIDeveloperMode, false); |
| 968 } | 968 } |
| OLD | NEW |