Index: trunk/src/athena/content/app_activity.cc |
=================================================================== |
--- trunk/src/athena/content/app_activity.cc (revision 291366) |
+++ trunk/src/athena/content/app_activity.cc (working copy) |
@@ -5,13 +5,9 @@ |
#include "athena/content/app_activity.h" |
#include "athena/activity/public/activity_manager.h" |
-#include "athena/content/app_activity_registry.h" |
-#include "athena/content/public/app_content_control_delegate.h" |
-#include "athena/content/public/app_registry.h" |
#include "content/public/browser/web_contents.h" |
#include "extensions/shell/browser/shell_app_window.h" |
#include "ui/views/controls/webview/webview.h" |
-#include "ui/views/widget/widget.h" |
namespace athena { |
@@ -19,14 +15,13 @@ |
AppActivity::AppActivity(extensions::ShellAppWindow* app_window) |
: app_window_(app_window), |
web_view_(NULL), |
- current_state_(ACTIVITY_UNLOADED), |
- app_activity_registry_(NULL) { |
+ current_state_(ACTIVITY_UNLOADED) { |
+ DCHECK(app_window_); |
} |
AppActivity::~AppActivity() { |
- // If this activity is registered, we unregister it now. |
- if (app_activity_registry_) |
- app_activity_registry_->UnregisterAppActivity(this); |
+ if (GetCurrentState() != ACTIVITY_UNLOADED) |
+ SetCurrentState(ACTIVITY_UNLOADED); |
} |
ActivityViewModel* AppActivity::GetActivityViewModel() { |
@@ -34,41 +29,35 @@ |
} |
void AppActivity::SetCurrentState(Activity::ActivityState state) { |
- ActivityState current_state = state; |
- // Remember the last requested state now so that a call to GetCurrentState() |
- // returns the new state. |
- current_state_ = state; |
- |
switch (state) { |
case ACTIVITY_VISIBLE: |
// Fall through (for the moment). |
case ACTIVITY_INVISIBLE: |
// By clearing the overview mode image we allow the content to be shown. |
overview_mode_image_ = gfx::ImageSkia(); |
- // Note: A reload from the unloaded state will be performed through the |
- // |AppActivityProxy| object and no further action isn't necessary here. |
+ // TODO(skuhne): Find out how to reload an app from the extension system. |
break; |
case ACTIVITY_BACKGROUND_LOW_PRIORITY: |
- DCHECK(ACTIVITY_VISIBLE == current_state || |
- ACTIVITY_INVISIBLE == current_state); |
+ DCHECK(ACTIVITY_VISIBLE == current_state_ || |
+ ACTIVITY_INVISIBLE == current_state_); |
// TODO(skuhne): Do this. |
break; |
case ACTIVITY_PERSISTENT: |
- DCHECK_EQ(ACTIVITY_BACKGROUND_LOW_PRIORITY, current_state); |
+ DCHECK_EQ(ACTIVITY_BACKGROUND_LOW_PRIORITY, current_state_); |
// TODO(skuhne): Do this. |
break; |
case ACTIVITY_UNLOADED: |
- DCHECK_NE(ACTIVITY_UNLOADED, current_state); |
- // This will cause the application to shut down, close its windows and |
- // delete this object. Instead a |AppActivityProxy| will be created as |
- // place holder. |
- if (app_activity_registry_) |
- app_activity_registry_->Unload(); |
+ DCHECK_NE(ACTIVITY_UNLOADED, current_state_); |
+ // TODO(skuhne): Find out how to evict an app from the extension system. |
+ // web_view_->EvictContent(); |
break; |
} |
+ // Remember the last requested state. |
+ current_state_ = state; |
} |
Activity::ActivityState AppActivity::GetCurrentState() { |
+ // TODO(skuhne): Check here also eviction status. |
if (!web_view_) { |
DCHECK_EQ(ACTIVITY_UNLOADED, current_state_); |
return ACTIVITY_UNLOADED; |
@@ -93,10 +82,6 @@ |
return Activity::ACTIVITY_MEDIA_STATE_NONE; |
} |
-aura::Window* AppActivity::GetWindow() { |
- return !web_view_ ? NULL : web_view_->GetWidget()->GetNativeWindow(); |
-} |
- |
void AppActivity::Init() { |
} |
@@ -145,26 +130,4 @@ |
ActivityManager::Get()->UpdateActivity(this); |
} |
-void AppActivity::DidStartNavigationToPendingEntry( |
- const GURL& url, |
- content::NavigationController::ReloadType reload_type) { |
- if (!app_activity_registry_) |
- RegisterActivity(); |
-} |
- |
-// Register an |activity| with an application. |
-// Note: This should only get called once for an |app_window| of the |
-// |activity|. |
-void AppActivity::RegisterActivity() { |
- content::WebContents* web_contents = app_window_->GetAssociatedWebContents(); |
- AppRegistry* app_registry = AppRegistry::Get(); |
- // Get the application's registry. |
- app_activity_registry_ = app_registry->GetAppActivityRegistry( |
- app_registry->GetDelegate()->GetApplicationID(web_contents), |
- web_contents->GetBrowserContext()); |
- DCHECK(app_activity_registry_); |
- // Register the activity. |
- app_activity_registry_->RegisterAppActivity(this); |
-} |
- |
} // namespace athena |