chrome_extensions_api_client.cc revision 116680a4aac90f2aa7413d9095a592090648e557
1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/chrome_extensions_api_client.h"
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/files/file_path.h"
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/storage/sync_value_store_cache.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/guest_view/app_view/app_view_guest.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "content/public/browser/browser_context.h"
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(ENABLE_CONFIGURATION_POLICY)
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace extensions {
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeExtensionsAPIClient::ChromeExtensionsAPIClient() {}
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)ChromeExtensionsAPIClient::~ChromeExtensionsAPIClient() {}
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void ChromeExtensionsAPIClient::AddAdditionalValueStoreCaches(
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    content::BrowserContext* context,
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    const scoped_refptr<SettingsStorageFactory>& factory,
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    const scoped_refptr<ObserverListThreadSafe<SettingsObserver> >& observers,
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    std::map<settings_namespace::Namespace, ValueStoreCache*>* caches) {
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Add support for chrome.storage.sync.
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  (*caches)[settings_namespace::SYNC] =
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new SyncValueStoreCache(factory, observers, context->GetPath());
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(ENABLE_CONFIGURATION_POLICY)
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Add support for chrome.storage.managed.
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  (*caches)[settings_namespace::MANAGED] =
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      new ManagedValueStoreCache(context, factory, observers);
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool ChromeExtensionsAPIClient::AppViewInternalAttachFrame(
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    content::BrowserContext* browser_context,
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const GURL& url,
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    int guest_instance_id,
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& guest_extension_id) {
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return AppViewGuest::CompletePendingRequest(browser_context,
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              url,
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              guest_instance_id,
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              guest_extension_id);
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool ChromeExtensionsAPIClient::AppViewInternalDenyRequest(
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    content::BrowserContext* browser_context,
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    int guest_instance_id,
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& guest_extension_id) {
53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return AppViewGuest::CompletePendingRequest(browser_context,
54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              GURL(),
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              guest_instance_id,
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                              guest_extension_id);
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}  // namespace extensions
60