diff options
author | atwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-17 16:36:53 +0000 |
---|---|---|
committer | atwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-17 16:36:53 +0000 |
commit | a07676b20a2577777dc00573dba37c0927958f92 (patch) | |
tree | 4a606e62b966606c829d14d2f6d8c942eb174727 /chrome/browser/background_contents_service.h | |
parent | f8d73bc892048b4c5398b90d2978e3bda8317a66 (diff) | |
download | chromium_src-a07676b20a2577777dc00573dba37c0927958f92.zip chromium_src-a07676b20a2577777dc00573dba37c0927958f92.tar.gz chromium_src-a07676b20a2577777dc00573dba37c0927958f92.tar.bz2 |
Moved files related to background mode to browser/background.
BUG=none
TEST=If it compiles, it works.
Review URL: http://codereview.chromium.org/7187028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89497 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/background_contents_service.h')
-rw-r--r-- | chrome/browser/background_contents_service.h | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/chrome/browser/background_contents_service.h b/chrome/browser/background_contents_service.h deleted file mode 100644 index 6c5bdc5..0000000 --- a/chrome/browser/background_contents_service.h +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_H_ -#define CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_H_ -#pragma once - -#include <map> -#include <vector> - -#include "base/gtest_prod_util.h" -#include "base/memory/ref_counted.h" -#include "base/task.h" -#include "chrome/browser/profiles/profile_keyed_service.h" -#include "chrome/browser/tab_contents/background_contents.h" -#include "content/common/notification_observer.h" -#include "content/common/notification_registrar.h" -#include "content/common/window_container_type.h" -#include "googleurl/src/gurl.h" -#include "webkit/glue/window_open_disposition.h" - -class CommandLine; -class DictionaryValue; -class NotificationDelegate; -class PrefService; -class Profile; -class TabContents; - -namespace gfx { -class Rect; -} - -struct BackgroundContentsOpenedDetails; - -// BackgroundContentsService is owned by the profile, and is responsible for -// managing the lifetime of BackgroundContents (tracking the set of background -// urls, loading them at startup, and keeping the browser process alive as long -// as there are BackgroundContents loaded). -// -// It is also responsible for tracking the association between -// BackgroundContents and their parent app, and shutting them down when the -// parent app is unloaded. -class BackgroundContentsService : private NotificationObserver, - public BackgroundContents::Delegate, - public ProfileKeyedService { - public: - BackgroundContentsService(Profile* profile, const CommandLine* command_line); - virtual ~BackgroundContentsService(); - - // Returns the BackgroundContents associated with the passed application id, - // or NULL if none. - BackgroundContents* GetAppBackgroundContents(const string16& appid); - - // Returns all currently opened BackgroundContents (used by the task manager). - std::vector<BackgroundContents*> GetBackgroundContents() const; - - static void RegisterUserPrefs(PrefService* prefs); - - // BackgroundContents::Delegate implementation. - virtual void AddTabContents(TabContents* new_contents, - WindowOpenDisposition disposition, - const gfx::Rect& initial_pos, - bool user_gesture); - - // Gets the parent application id for the passed BackgroundContents. Returns - // an empty string if no parent application found (e.g. passed - // BackgroundContents has already shut down). - const string16& GetParentApplicationId(BackgroundContents* contents) const; - - // Creates a new BackgroundContents using the passed |site| and - // the |route_id| and begins tracking the object internally so it can be - // shutdown if the parent application is uninstalled. - // A BACKGROUND_CONTENTS_OPENED notification will be generated with the passed - // |frame_name| and |application_id| values, using the passed |profile| as the - // Source.. - BackgroundContents* CreateBackgroundContents(SiteInstance* site, - int route_id, - Profile* profile, - const string16& frame_name, - const string16& application_id); - - // Load the manifest-specified background page for the specified hosted app. - // If the manifest doesn't specify one, then load the BackgroundContents - // registered in the pref. This is typically used to reload a crashed - // background page. - void LoadBackgroundContentsForExtension(Profile* profile, - const std::string& extension_id); - - private: - friend class BackgroundContentsServiceTest; - friend class MockBackgroundContents; - friend class TaskManagerBrowserTest; - - FRIEND_TEST_ALL_PREFIXES(BackgroundContentsServiceTest, - BackgroundContentsCreateDestroy); - FRIEND_TEST_ALL_PREFIXES(BackgroundContentsServiceTest, - TestApplicationIDLinkage); - FRIEND_TEST_ALL_PREFIXES(TaskManagerBrowserTest, - NoticeBGContentsChanges); - FRIEND_TEST_ALL_PREFIXES(TaskManagerBrowserTest, - KillBGContents); - - // Registers for various notifications. - void StartObserving(Profile* profile); - - // NotificationObserver implementation. - virtual void Observe(NotificationType type, - const NotificationSource& source, - const NotificationDetails& details); - - // Loads all registered BackgroundContents at startup. - void LoadBackgroundContentsFromPrefs(Profile* profile); - - // Load a BackgroundContent; the settings are read from the provided - // dictionary. - void LoadBackgroundContentsFromDictionary(Profile* profile, - const std::string& extension_id, - const DictionaryValue* contents); - - // Load the manifest-specified BackgroundContents for all apps for the - // profile. - void LoadBackgroundContentsFromManifests(Profile* profile); - - // Creates a single BackgroundContents associated with the specified |appid|, - // creates an associated RenderView with the name specified by |frame_name|, - // and navigates to the passed |url|. - void LoadBackgroundContents(Profile* profile, - const GURL& url, - const string16& frame_name, - const string16& appid); - - // Invoked when a new BackgroundContents is opened. - void BackgroundContentsOpened(BackgroundContentsOpenedDetails* details); - - // Invoked when a BackgroundContents object is destroyed. - void BackgroundContentsShutdown(BackgroundContents* contents); - - // Registers the |contents->GetURL()| to be run at startup. Only happens for - // the first navigation after window.open() (future calls to - // RegisterBackgroundContents() for the same BackgroundContents will do - // nothing). - void RegisterBackgroundContents(BackgroundContents* contents); - - // Stops loading the passed BackgroundContents on startup. - void UnregisterBackgroundContents(BackgroundContents* contents); - - // Unregisters and deletes the BackgroundContents associated with the - // passed extension. - void ShutdownAssociatedBackgroundContents(const string16& appid); - - // Returns true if this BackgroundContents is in the contents_list_. - bool IsTracked(BackgroundContents* contents) const; - - // PrefService used to store list of background pages (or NULL if this is - // running under an incognito profile). - PrefService* prefs_; - NotificationRegistrar registrar_; - - // Information we track about each BackgroundContents. - struct BackgroundContentsInfo { - // The BackgroundContents whose information we are tracking. - BackgroundContents* contents; - // The name of the top level frame for this BackgroundContents. - string16 frame_name; - }; - - // Map associating currently loaded BackgroundContents with their parent - // applications. - // Key: application id - // Value: BackgroundContentsInfo for the BC associated with that application - typedef std::map<string16, BackgroundContentsInfo> BackgroundContentsMap; - BackgroundContentsMap contents_map_; - - DISALLOW_COPY_AND_ASSIGN(BackgroundContentsService); -}; - -#endif // CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_H_ |