summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_service.h
Commit message (Collapse)AuthorAgeFilesLines
* Refactor ExtensionErrorUI to remove ExtensionService's workrdevlin.cronin@chromium.org2014-04-101-25/+5
| | | | | | | | | | | | Create an ExtensionErrorController to be in charge of ExtensionErrorUI so that ExtensionService doens't have to know as much about it. And, of course, add a few tests for otherwise untested behavior. BUG=351891 Review URL: https://codereview.chromium.org/227373007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262893 0039d316-1c4b-4281-b951-d872f2087c98
* Move SharedModule methods from ExtensionService to SharedModuleServicerdevlin.cronin@chromium.org2014-04-041-26/+8
| | | | | | | | | | | | | | ExtensionService shouldn't need to manage SharedModules explicitly. Make a SharedModuleService which handles the log, and can install/uninstall dependencies for extensions. Also add a few tests, since there weren't any before (that I could find). BUG=351891 Review URL: https://codereview.chromium.org/217023004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261791 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 261654 "Move some extension constants out of //chrome.""rockot@google.com2014-04-041-1/+0
| | | | | | | | | | | | | | | | Re-landing the patch from 261654 with a fix for GTK. Revert CL: https://codereview.chromium.org/225103004/ BUG=359173 TBR=asargent@chromium.org TBR=cpu@chromium.org for component_updater header update TBR=avi@chromium.org for tab_contents header update TBR=pkasting@chromium.org for infobars header update Review URL: https://codereview.chromium.org/224943004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261774 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 261654 "Move some extension constants out of //chrome."rockot@google.com2014-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | This broke the Linux GTK builder, > Move some extension constants out of //chrome. > > This will help move additional chrome-independent extensions code out of //chrome and into //extensions. > > clang_format also applied; please pardon the dust. > > BUG=359173 > TBR=cpu@chromium.org for component_updater header update > TBR=avi@chromium.org for tab_contents header update > TBR=pkasting@chromium.org for infobars header update > > Review URL: https://codereview.chromium.org/222663002 TBR=rockot@chromium.org Review URL: https://codereview.chromium.org/225103004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261673 0039d316-1c4b-4281-b951-d872f2087c98
* Move some extension constants out of //chrome.rockot@chromium.org2014-04-041-1/+0
| | | | | | | | | | | | | | | This will help move additional chrome-independent extensions code out of //chrome and into //extensions. clang_format also applied; please pardon the dust. BUG=359173 TBR=cpu@chromium.org for component_updater header update TBR=avi@chromium.org for tab_contents header update TBR=pkasting@chromium.org for infobars header update Review URL: https://codereview.chromium.org/222663002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261654 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::GetInstalledExtensionByUrl().rdevlin.cronin@chromium.org2014-04-031-6/+0
| | | | | | | | | | Replace with ExtensionRegistry::enabled_extensions().GetExtensionOrAppByUrl(). BUG=351891 Review URL: https://codereview.chromium.org/220053002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261389 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit: Remove ExtensionService Garbage-Collecting methods.rdevlin.cronin@chromium.org2014-04-021-32/+17
| | | | | | | | | | | | | | | | | | Was: https://codereview.chromium.org/204983020/ This was reverted because of WeakPtr threading issues, which were sadly not caught in testing. The issues have been resolved (we no longer use a weak ptr on a separate thread), and the tests have been modified to use multiple threads to more closely resemble reality. BUG=351891 BUG=357753 TBR=rkc@chromium.org (for c/b/chromeos/kiosk_mode) Review URL: https://codereview.chromium.org/216553012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260998 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed edge case for commit: 258677d.halman@gmail.com2014-04-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | The DCHECK in AddLoadingPath was failing in the case where an extension passed all the error checks, but was not installed due to the user selecting "Cancel" on the permissions prompt: This action prevented the NOTIFICATION_EXTENSION_LOADED handler from unregistering the listener for NOTIFICATION_EXTENSION_LOAD_RETRY since the extension was never successfully loaded. This cl unregisters the listener immediately before displaying the permissions prompt, since we know it will not need to retry due to an error while loading at this point. This patch successfully passes the manual test provided by the bug reporter at: crbug.com/357675 BUG=357675 Review URL: https://codereview.chromium.org/218493003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260984 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::ExtensionBindingsAllowed()rdevlin.cronin@chromium.org2014-03-311-5/+0
| | | | | | | | | | | ExtensionBindingsAllowed() was only use in one place, so move it to the caller (chrome_web_ui_controller_controller_factory). BUG=351891 Review URL: https://codereview.chromium.org/211433003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260650 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Remove ExtensionService Garbage-Collecting methods. ↵dalecurtis@chromium.org2014-03-281-17/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/204983020/) Reason for revert: Launch the browser and just wait a bit, eventually it crashes with: [6912:6955:0328/131903:FATAL:weak_ptr.cc(26)] Check failed: sequence_checker_.CalledOnValidSequencedThread(). WeakPtrs must be checked on the same sequenced thread. Commenting out that check then gets you to: [12009:12077:0328/133048:FATAL:extension_garbage_collector.cc(232)] Check failed: content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE). Reverting the patch fixes the issue. Original issue's description: > Remove ExtensionService Garbage-Collecting methods. > > Make a new class, ExtensionGarbageCollector, which performs: > - ExtensionService::GarbageCollectExtensions(), > - extension_file_util::GarbageCollectExtensions() (the file-thread impl of > ExtensionService::GarbageCollectExtensions()), > - ExtensionService::GarbageCollectIsolatedStorage() > > BUG=351891 > TBR=rkc@chromium.org (for c/b/chromeos/kiosk_mode - no functional changes, but the TODO has moved from ExtensionService to ExtensionGarbageCollector). > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=260207 TBR=yoz@chromium.org,jyasskin@chromium.org,rkc@chromium.org,rdevlin.cronin@chromium.org NOTREECHECKS=true NOTRY=true BUG=351891 Review URL: https://codereview.chromium.org/217233004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260265 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService Garbage-Collecting methods.rdevlin.cronin@chromium.org2014-03-281-32/+17
| | | | | | | | | | | | | | | Make a new class, ExtensionGarbageCollector, which performs: - ExtensionService::GarbageCollectExtensions(), - extension_file_util::GarbageCollectExtensions() (the file-thread impl of ExtensionService::GarbageCollectExtensions()), - ExtensionService::GarbageCollectIsolatedStorage() BUG=351891 TBR=rkc@chromium.org (for c/b/chromeos/kiosk_mode - no functional changes, but the TODO has moved from ExtensionService to ExtensionGarbageCollector). Review URL: https://codereview.chromium.org/204983020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260207 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::VerifyAllExtensions()rdevlin.cronin@chromium.org2014-03-271-13/+0
| | | | | | | | | | | | | | | | | Refactor ExtensionService and InstallVerifier so that: - InstallVerifier handles its own bootstrapping - Requests to verify an extension (or all extensions) go to InstallVerifier - InstallVerifier doesn't take callbacks for verifications Also added an Observer class to ExtensionPrefs so that we can listen for DisableReasons changing. BUG=351891 BUG=328916 Review URL: https://codereview.chromium.org/200763002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259863 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::GetTerminatedExtension()rdevlin.cronin@chromium.org2014-03-261-6/+0
| | | | | | | | | | | | | | Replace with ExtensionRegistry::GetExtensionById(ExtensionRegistry::TERMINATED) BUG=351891 TBR=ben@chromium.org (c/b/ui) TBR=atwilson@chromium.org (c/b/background) All TBRs are for purely mechanical changes. Review URL: https://codereview.chromium.org/198003007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259636 0039d316-1c4b-4281-b951-d872f2087c98
* Elevate visibility of developer-mode extensions.rdevlin.cronin@chromium.org2014-03-251-1/+1
| | | | | | | | | | Also moved ExtensionToolbarModel to extensions namespace. BUG=328441 Review URL: https://codereview.chromium.org/178563002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259119 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::IsExternalExtensionUninstalled()rdevlin.cronin@chromium.org2014-03-251-4/+0
| | | | | | | | | | Replace with ExtensionPrefs::IsExternalExtensionUninstalled() BUG=351891 Review URL: https://codereview.chromium.org/195813007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@259081 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce an extension parameter which is used to customize the extension. ↵vasilii@chromium.org2014-03-241-5/+6
| | | | | | | | | | | It's available for external extensions on Windows by using a registry key. The installer can set this parameter per user. BUG=267510 TBR=nkostylev@chromium.org,estade@chromium.org Review URL: https://codereview.chromium.org/196663003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258919 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::GetAppIds() and ExtensionService::HasApps().rdevlin.cronin@chromium.org2014-03-211-6/+0
| | | | | | | | | | | The former was only called by one place (the implementation is now local to the caller in profile_manager.cc) and the latter was never used. BUG=351891 Review URL: https://codereview.chromium.org/205533002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258663 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::OnExtensionMoved()rdevlin.cronin@chromium.org2014-03-191-8/+0
| | | | | | | | | | | | | | | | ExtensionService::OnExtensionMoved() pretty much just called ExtensionPrefs::OnExtensionMoved(). Remove the method and update the callers. BUG=351891 TBR=benwells@chromium.org (c/b/ui/app_list) TBR=dbeam@chromium.org (c/b/ui/webui/ntp) All TBRs are for strictly mechanical changes. Review URL: https://codereview.chromium.org/203463003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258143 0039d316-1c4b-4281-b951-d872f2087c98
* Move ExtensionService::GenerateInstalledExtensionsSet() to ExtensionRegistry.rdevlin.cronin@chromium.org2014-03-191-4/+0
| | | | | | | | | | | | | | | | | Also fix profile->GetExtensionService() where seen. BUG=351891 TBR=zea@chromium.org (c/b/sync) TBR=pkotwicz@chromium.org (c/b/themes) TBR=asargent@chromium.org (c/b/apps) TBR=mmenke@chromium.org (c/b/ui/webui/net_internals) TBR=rtenneti@chromium.org (c/b/metrics) All TBRs are for strictly mechanical changes. Review URL: https://codereview.chromium.org/198373002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258059 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::ShouldBlockUrlInBrowserTab()rdevlin.cronin@chromium.org2014-03-191-4/+0
| | | | | | | | | | | This is only called from only location (in BrowserNavigator) and doesn't belong in ExtensionService. Instead, inline it in BrowserNavigator. BUG=351891 Review URL: https://codereview.chromium.org/197883019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257882 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of Include sync.pb.h in sync_data.h. ↵maniscalco@chromium.org2014-03-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://chromiumcodereview.appspot.com/182313002/) Reason for revert: Broke win_x86_rel trybots about two thirds of the time (can't find sync.pb.h). Appears that the build is non-deterministic, gonna need more testing. Original issue's description: > Include sync.pb.h in sync_data.h. > > This change has two parts, including sync.pb.h in sync_data.h, and fixing > gyp dependencies and header includes so that everything still builds. > > Include sync.pb.h in sync_data.h in preparation for using AttachmentId > (a protobuf in sync.pb.h) in sync_data.h. A forward declaration is > insufficient because sync_data.h will be getting a typedef for vector<> > of AttachmentId. > > Several targets (transitively) depend on sync, however, their dependence > is not properly modeled in gyp. Update dependencies and header includes > so they can "see" sync.pb.h (a generated header) and any headers it > includes. > > Without these changes, four targets fail to build: > > 1. extensions_browser - See extensions/extensions.gyp for the fix. Here's > the compiler error: > > In file included from ../../extensions/browser/extension_function.cc:10: > In file included from ../../chrome/browser/extensions/extension_service.h:23: > In file included from ../../chrome/browser/extensions/extension_sync_service.h:12: > In file included from ../../chrome/browser/extensions/app_sync_bundle.h:15: > In file included from ../../chrome/browser/extensions/app_sync_data.h:8: > In file included from ../../chrome/browser/extensions/extension_sync_data.h:11: > In file included from ../../sync/api/sync_change.h:13: > ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found > > > 2. debugger - See chrome/chrome.gyp for the fix. Here's the compiler > error: > > In file included from ../../chrome/browser/devtools/browser_list_tabcontents_provider.cc:10: > In file included from ../../chrome/browser/history/top_sites.h:13: > In file included from ../../chrome/browser/history/history_service.h:26: > In file included from ../../chrome/browser/history/delete_directive_handler.h:12: > In file included from ../../sync/api/sync_change_processor.h:10: > ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found > > > 3. apps - See chrome/chrome_browser_extensions.gypi for the fix. Here's > the compiler error: > > In file included from ../../apps/app_load_service.cc:12: > In file included from ../../chrome/browser/extensions/extension_service.h:23: > In file included from ../../chrome/browser/extensions/extension_sync_service.h:12: > In file included from ../../chrome/browser/extensions/app_sync_bundle.h:15: > In file included from ../../chrome/browser/extensions/app_sync_data.h:8: > In file included from ../../chrome/browser/extensions/extension_sync_data.h:11: > In file included from ../../sync/api/sync_change.h:13: > ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found > > > 4. performance_ui_tests - See chrome/chrome_tests.gypi for the fix. > Here's the compiler error: > > In file included from ../../chrome/test/perf/generate_profile.cc:19: > In file included from ../../chrome/browser/history/history_service.h:26: > In file included from ../../chrome/browser/history/delete_directive_handler.h:12: > In file included from ../../sync/api/sync_change_processor.h:10: > In file included from ../../sync/api/sync_data.h:17: > gen/protoc_out/sync/protocol/sync.pb.h:9:10: fatal error: 'google/protobuf/stubs/common.h' file not found > > BUG= > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=257666 TBR=tim@chromium.org,asargent@chromium.org,thakis@chromium.org,rsleevi@chromium.org NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/196423023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257833 0039d316-1c4b-4281-b951-d872f2087c98
* Move ExtensionService::GetExtensionInfo() to extension_utilrdevlin.cronin@chromium.org2014-03-181-6/+0
| | | | | | | | | | | | | Make GetExtensionInfo() take a const Extension* instead of an extension_id, so that callers can choose how to get the Extension (rather than implicitly only grabbing from enabled extensions). BUG=351891 TBR=jhawkins@chromium.org (mechanical change to webui/options) Review URL: https://codereview.chromium.org/197873013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257778 0039d316-1c4b-4281-b951-d872f2087c98
* Include sync.pb.h in sync_data.h.maniscalco@chromium.org2014-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change has two parts, including sync.pb.h in sync_data.h, and fixing gyp dependencies and header includes so that everything still builds. Include sync.pb.h in sync_data.h in preparation for using AttachmentId (a protobuf in sync.pb.h) in sync_data.h. A forward declaration is insufficient because sync_data.h will be getting a typedef for vector<> of AttachmentId. Several targets (transitively) depend on sync, however, their dependence is not properly modeled in gyp. Update dependencies and header includes so they can "see" sync.pb.h (a generated header) and any headers it includes. Without these changes, four targets fail to build: 1. extensions_browser - See extensions/extensions.gyp for the fix. Here's the compiler error: In file included from ../../extensions/browser/extension_function.cc:10: In file included from ../../chrome/browser/extensions/extension_service.h:23: In file included from ../../chrome/browser/extensions/extension_sync_service.h:12: In file included from ../../chrome/browser/extensions/app_sync_bundle.h:15: In file included from ../../chrome/browser/extensions/app_sync_data.h:8: In file included from ../../chrome/browser/extensions/extension_sync_data.h:11: In file included from ../../sync/api/sync_change.h:13: ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found 2. debugger - See chrome/chrome.gyp for the fix. Here's the compiler error: In file included from ../../chrome/browser/devtools/browser_list_tabcontents_provider.cc:10: In file included from ../../chrome/browser/history/top_sites.h:13: In file included from ../../chrome/browser/history/history_service.h:26: In file included from ../../chrome/browser/history/delete_directive_handler.h:12: In file included from ../../sync/api/sync_change_processor.h:10: ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found 3. apps - See chrome/chrome_browser_extensions.gypi for the fix. Here's the compiler error: In file included from ../../apps/app_load_service.cc:12: In file included from ../../chrome/browser/extensions/extension_service.h:23: In file included from ../../chrome/browser/extensions/extension_sync_service.h:12: In file included from ../../chrome/browser/extensions/app_sync_bundle.h:15: In file included from ../../chrome/browser/extensions/app_sync_data.h:8: In file included from ../../chrome/browser/extensions/extension_sync_data.h:11: In file included from ../../sync/api/sync_change.h:13: ../../sync/api/sync_data.h:17:10: fatal error: 'sync/protocol/sync.pb.h' file not found 4. performance_ui_tests - See chrome/chrome_tests.gypi for the fix. Here's the compiler error: In file included from ../../chrome/test/perf/generate_profile.cc:19: In file included from ../../chrome/browser/history/history_service.h:26: In file included from ../../chrome/browser/history/delete_directive_handler.h:12: In file included from ../../sync/api/sync_change_processor.h:10: In file included from ../../sync/api/sync_data.h:17: gen/protoc_out/sync/protocol/sync.pb.h:9:10: fatal error: 'google/protobuf/stubs/common.h' file not found BUG= Review URL: https://codereview.chromium.org/182313002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257666 0039d316-1c4b-4281-b951-d872f2087c98
* Move CommandLine to base namespace.brettw@chromium.org2014-03-171-2/+2
| | | | | | | | | | | | Fix all forward-declares and header files referencing CommandLine. This keeps a "using base::CommandLine" in the command line header file so that the rest of the source files can be changes in a follow-up. TBR=sky Review URL: https://codereview.chromium.org/196413016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257514 0039d316-1c4b-4281-b951-d872f2087c98
* Move GetSiteForExtensionId() from ExtensionService to extension_utilrdevlin.cronin@chromium.org2014-03-151-4/+0
| | | | | | | | | | | BUG=351891 TBR=kinuko@chromium.org (c/b/sync_file_system) TBR=hashimoto@chromium.org (c/b/chromeos/file_manager) (No functional difference for either TBR) Review URL: https://codereview.chromium.org/198053005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257297 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the last c/b/e/extension_service.h includes from src/extensionsjamescook@chromium.org2014-03-141-1/+1
| | | | | | | | | | | | | | | | | | | This breaks another unwanted dependency from src/extensions back to src/chrome. * Move PendingExtensionManager and PendingExtensionInfo back into chrome, as they are tied to the concepts of extension install/update and we have decided to keep that functionality in chrome for now. * Eliminate unused include in extension_function.cc No functional changes. BUG=none TEST=compiles TBR=zea@chromium.org for header file move touching chrome/browser/sync/test/integration/sync_extension_helper.cc Review URL: https://codereview.chromium.org/195763017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257203 0039d316-1c4b-4281-b951-d872f2087c98
* Remove GetContentSettingsStore() From ExtensionServicerdevlin.cronin@chromium.org2014-03-141-3/+0
| | | | | | | | | BUG=351891 TBR=jochen@chromium.org (mechanical change to host_content_settings_map.cc) Review URL: https://codereview.chromium.org/196653007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257013 0039d316-1c4b-4281-b951-d872f2087c98
* Move extension_function_histogram_value to src/extensionsrockot@chromium.org2014-03-041-1/+1
| | | | | | | | BUG=348248 Review URL: https://codereview.chromium.org/180373005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254689 0039d316-1c4b-4281-b951-d872f2087c98
* Convert storage API SettingsFrontend to ProfileKeyedAPIjamescook@chromium.org2014-02-271-6/+0
| | | | | | | | | | | | | | | | | * Convert SettingsFrontend to use BrowserContext instead of Profile * Convert SettingsFrontend to a ProfileKeyedAPI, which is-a BrowserContextKeyedService * Remove SettingsFrontend from ExtensionService This allows the storage API to be used from app_shell, which uses BrowserContext and has no ExtensionService. BUG=346871 TEST=existing browser_tests and unit_tests of StorageAPI R=kalman@chromium.org, rdevlin.cronin@chromium.org TBR=zea@chromium.org for mechanical change to chrome/browser/sync Review URL: https://codereview.chromium.org/180253008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253931 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::extension_prefs()rockot@chromium.org2014-02-191-5/+0
| | | | | | | | | | | | | | Callers use ExtensionPrefs::Get instead of depending on ExtensionService for access. Where appropriate, other nearby, unnecessary references to ExtensionService have also been removed. BUG=341181 TBR=benwells@chromium.org,benjhayden@chromium.org,akalin@chromium.org,pkotwicz@chromium.org,stevenjb@chromium.org,sky@chromium.org,dbeam@chromium.org,finnur@chromium.org Review URL: https://codereview.chromium.org/156843004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251958 0039d316-1c4b-4281-b951-d872f2087c98
* Don't attempt to unload the same extension twice if multiple ExtensionHost ↵mek@chromium.org2014-02-131-0/+4
| | | | | | | | | | | | | instances existed for the extension. This makes sure ExtensionService doesn't schedule a second TrackTerminatedExtension call if one call is already in progress. BUG=327735 Review URL: https://codereview.chromium.org/162183002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251141 0039d316-1c4b-4281-b951-d872f2087c98
* Don't disable extensions immediately if verification is out of dateasargent@chromium.org2014-02-131-0/+3
| | | | | | | | | | | | | | If the install verification signature we have stored in our prefs is older than the install time of an extension, we don't want to immediately disable it. Instead, we want to do another server request to update our signature, and then disable if appropriate. BUG=342165 R=finnur@chromium.org Review URL: https://codereview.chromium.org/160313002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250855 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ExtensionService::disabled_extensions()rockot@chromium.org2014-02-121-2/+0
| | | | | | | | | | | | Replace usage with ExtensionRegistry::disabled_extensions(). Opportunistically, any nearby references to ExtensionService::extensions() have also been shifted over to ExtensionRegistry::enabled_extensions(). BUG=332978 Review URL: https://codereview.chromium.org/153623007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250590 0039d316-1c4b-4281-b951-d872f2087c98
* Move QuotaService from ExtensionService to ExtensionSystemjamescook@chromium.org2014-02-051-6/+0
| | | | | | | | | | | | | | | | | | Also clean up: * Eliminate ExtensionService dependency from ExtensionFunctionDispatcher * IWYU in ExtensionFunctionDispatcher * Remove unnecessary include from activity_log.h This allows QuotaService to be used in app_shell, which does not have an ExtensionService. It gets us one step close to being able to call extension API functions like chrome.alarms.* from app_shell. BUG=340432 TEST=existing browser_tests Review URL: https://codereview.chromium.org/148943003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@249065 0039d316-1c4b-4281-b951-d872f2087c98
* Change default mode of extension install verificationasargent@chromium.org2014-01-301-3/+6
| | | | | | | | | | | | | | | | | | | Right now the default mode is to make requests against the server unless the experiment group says not to, and that may be contributing to some unexpected load we're seeing. So this CL changes it to not do that. It also adds some histograms to help measure the success rate and sources of requests to the server. [This is a resubmit of https://codereview.chromium.org/149353002 with a compile error fixed] BUG=335379 TBR=finnur@chromium.org Review URL: https://codereview.chromium.org/150093002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247954 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 247790 "Change default mode of extension install verifica..."asargent@chromium.org2014-01-301-6/+3
| | | | | | | | | | | | | | | | | | | | | | > Change default mode of extension install verification > > Right now the default mode is to make requests against the server unless > the experiment group says not to, and that may be contributing to some > unexpected load we're seeing. So this CL changes it to not do that. > > It also adds some histograms to help measure the success rate and > sources of requests to the server. > > BUG=335379 > R=finnur@chromium.org > > Review URL: https://codereview.chromium.org/149353002 TBR=asargent@chromium.org Review URL: https://codereview.chromium.org/147983011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247797 0039d316-1c4b-4281-b951-d872f2087c98
* Change default mode of extension install verificationasargent@chromium.org2014-01-301-3/+6
| | | | | | | | | | | | | | | | Right now the default mode is to make requests against the server unless the experiment group says not to, and that may be contributing to some unexpected load we're seeing. So this CL changes it to not do that. It also adds some histograms to help measure the success rate and sources of requests to the server. BUG=335379 R=finnur@chromium.org Review URL: https://codereview.chromium.org/149353002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247790 0039d316-1c4b-4281-b951-d872f2087c98
* Extract extension-related renderer setup from ExtensionServicejamescook@chromium.org2014-01-281-0/+1
| | | | | | | | | | | | | | | | Move it into a new class RendererStartupHelper. This allows app_shell and other clients of the src/extensions module use it without running code in src/chrome. Also ensure extension processes are added to the extensions::ProcessMap in app_shell. BUG=334710 TEST=Existing extensions browser_tests. Also, running app_shell manually still loads an extension. Review URL: https://codereview.chromium.org/145003006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247379 0039d316-1c4b-4281-b951-d872f2087c98
* Enable/disable extensions upon changes in blacklist.oleg@chromium.org2014-01-271-1/+31
| | | | | | | | BUG=267514 Review URL: https://codereview.chromium.org/98463005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247263 0039d316-1c4b-4281-b951-d872f2087c98
* Integrate new extension cache for non-user specific extensions/appsdpolukhin@chromium.org2014-01-241-0/+2
| | | | | | | | | | | | | | This CL deprecates all caching mechanism and switching to new mechanism that works for all default apps and preserve unused cache items for 30 days or until cache limit reached. BUG=316371 TEST=existing tests + manual testing R=joaodasilva@chromium.org, miket@chromium.org, yoz@chromium.org Review URL: https://codereview.chromium.org/135643007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246995 0039d316-1c4b-4281-b951-d872f2087c98
* app_shell: Extract extension runtime data from ExtensionServicejamescook@chromium.org2014-01-221-37/+0
| | | | | | | | | | | | This allows ExtensionHost to use the data when there is no ExtensionService, such as when running app_shell. BUG=332982 TEST=Added unit test, existing extensions browser tests TBR=msw@chromium.org for mechanical change to chrome/browser/ui/views/ Review URL: https://codereview.chromium.org/131743021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246449 0039d316-1c4b-4281-b951-d872f2087c98
* Move ExtensionPrefs and friends to extensions/ directory.derat@chromium.org2014-01-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move ExtensionPrefs and related classes from chrome/browser/extensions/ to the top-level extensions/ directory. The following classes are moved: ExtensionPrefStore ExtensionPrefValueMap ExtensionPrefValueMapFactory ExtensionPrefs ExtensionPrefsFactory ExtensionScopedPref The TestExtensionPrefs helper class and the ExtensionPrefsTest unit tests remain in chrome/browser/extensions, since TestExtensionPrefs has a dependency on Chrome's PrefServiceSyncable that seems like it will be difficult to break (more explanation at https://codereview.chromium.org/108643002/). BUG=313284 TBR=sky@chromium.org,pam@chromium.org Review URL: https://codereview.chromium.org/46853004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246373 0039d316-1c4b-4281-b951-d872f2087c98
* Convert extensions::ProcessMap to BrowserContextKeyedServicejamescook@chromium.org2014-01-171-6/+2
| | | | | | | | | | | | | This allows us to remove more ExtensionService dependencies, which we need to do because app_shell doesn't have an ExtensionService. BUG=334706 TEST=existing unit_tests, browser_tests TBR=sky@chromium.org for mechanical changes across the non-extensions bits of chrome/browser/ Review URL: https://codereview.chromium.org/139943005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245556 0039d316-1c4b-4281-b951-d872f2087c98
* Manage all the testing classes for Blacklist in TestBlacklist.oleg@chromium.org2014-01-101-0/+9
| | | | | | | | BUG=267514 Review URL: https://codereview.chromium.org/119963004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244178 0039d316-1c4b-4281-b951-d872f2087c98
* Get ride of chrome.storage.* data when removing an application.mlamouri@chromium.org2014-01-091-1/+0
| | | | | | | | | | This is only fixing packaged apps, the bug is not affecting hosted apps. BUG=314803 Review URL: https://codereview.chromium.org/123733003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243887 0039d316-1c4b-4281-b951-d872f2087c98
* Move ExtensionService::GetExtensionById() to ExtensionRegistryjamescook@chromium.org2014-01-071-17/+7
| | | | | | | | | | | | | This will allow app_shell to use it without an ExtensionService BUG=none TEST=added unit_tests ExtensionRegistryTest.GetExtensionById R=yoz@chromium.org TBR=pkotwicz@chromium.org for chrome/browser/themes Review URL: https://codereview.chromium.org/125573002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243423 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate ExtensionService::terminated_extensions()jamescook@chromium.org2014-01-071-4/+6
| | | | | | | | | | | | | * Convert calls to use ExtensionRegistry::terminated_extensions(). * Deprecate ExtensionService::extensions() and disabled_extensions(). BUG=none TEST=compiles TBR=phajdan.jr@chromium.org for automation, atwilson@chromium.org for background Review URL: https://codereview.chromium.org/117163004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243270 0039d316-1c4b-4281-b951-d872f2087c98
* Convert ExtensionRegistry to a BrowserContextKeyedServicejamescook@chromium.org2013-12-271-3/+5
| | | | | | | | | | | | | | | | | | This removes dependencies on ExtensionService, which does not exist for app_shell. * Convert all of src/extensions to use ExtensionRegistry's extension sets. * Remove ExtensionService::blacklisted_extensions() and convert all callers to use ExtensionRegistry. BUG=none TEST=existing unit_tests, browser_tests R=miket@chromium.org TBR=phajden.jr@chromium.org for adding dependency on components/browser_context_keyed_service Review URL: https://codereview.chromium.org/120863003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242624 0039d316-1c4b-4281-b951-d872f2087c98
* Update some uses of Value in chrome/browser to use the base:: namespace.avi@chromium.org2013-12-231-1/+1
| | | | | | | | | | BUG=88666 TEST=no change TBR=ben@chromium.org Review URL: https://codereview.chromium.org/120783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242389 0039d316-1c4b-4281-b951-d872f2087c98
* Extract an ExtensionRegistry from ExtensionServicejamescook@chromium.org2013-12-211-20/+12
| | | | | | | | | | | | | | | This new class holds the various sets of enabled/disabled/terminated/etc. extensions. It lives in src/extensions/browser so it can be used by app_shell. This CL renames some members and methods to clarify which set of extensions is the enabled set and also renames some methods that are only used in test code. BUG=none TEST=unit_tests ExtensionRegistryTest and ExtensionServiceTest Review URL: https://codereview.chromium.org/111873008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242248 0039d316-1c4b-4281-b951-d872f2087c98