summaryrefslogtreecommitdiffstats
path: root/chrome/common
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 01:32:50 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-07 01:32:50 +0000
commit9e40ba59d4a63f960b44f745eb5d802dbeda2e37 (patch)
treec26f9f99c0beb499380b1d7cb929bcae997756c2 /chrome/common
parentda1e204fa55509cbb95fa215e53824b37ef54077 (diff)
downloadchromium_src-9e40ba59d4a63f960b44f745eb5d802dbeda2e37.zip
chromium_src-9e40ba59d4a63f960b44f745eb5d802dbeda2e37.tar.gz
chromium_src-9e40ba59d4a63f960b44f745eb5d802dbeda2e37.tar.bz2
Remove all traces of NotificationService from views.
Specifically, notifies the FocusManager and ViewStorage directly when the view hierarchy is adjusted rather than using notifications. This change is based on the assumption that there is one focus manager per toplevel window. I think I remember you saying this before Jay. Removes the "window open/close" notifications since they aren't used at the Views level... the close notification is already sent manually by the BrowserView for automation so that continues to work. Moves the HWNDNotificationSource to common, since it's used by BrowserView. Rejiggers the BrowserList/Window to call a function implemented in the ViewsFE that handles closing non-app windows when the last browser window is closed. http://crbug.com/11387 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=15468 Review URL: http://codereview.chromium.org/113016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15489 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common')
-rw-r--r--chrome/common/common.vcproj4
-rw-r--r--chrome/common/hwnd_notification_source.h24
-rw-r--r--chrome/common/notification_type.h4
-rw-r--r--chrome/common/temp_scaffolding_stubs.cc5
4 files changed, 33 insertions, 4 deletions
diff --git a/chrome/common/common.vcproj b/chrome/common/common.vcproj
index 90b15d8..4c2d021 100644
--- a/chrome/common/common.vcproj
+++ b/chrome/common/common.vcproj
@@ -458,6 +458,10 @@
>
</File>
<File
+ RelativePath=".\hwnd_notification_source.h"
+ >
+ </File>
+ <File
RelativePath=".\important_file_writer.cc"
>
</File>
diff --git a/chrome/common/hwnd_notification_source.h b/chrome/common/hwnd_notification_source.h
new file mode 100644
index 0000000..63df703
--- /dev/null
+++ b/chrome/common/hwnd_notification_source.h
@@ -0,0 +1,24 @@
+// Copyright (c) 2006-2008 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_COMMON_HWND_NOTIFICATION_SOURCE_H_
+#define CHROME_COMMON_HWND_NOTIFICATION_SOURCE_H_
+
+#include "chrome/common/notification_source.h"
+
+// Specialization of the Source class for HWND. This is needed as the Source
+// class expects a pointer type.
+template<>
+class Source<HWND> : public NotificationSource {
+ public:
+ explicit Source(HWND hwnd) : NotificationSource(hwnd) {}
+
+ explicit Source(const NotificationSource& other)
+ : NotificationSource(other) {}
+
+ HWND operator->() const { return ptr(); }
+ HWND ptr() const { return static_cast<HWND>(ptr_); }
+};
+
+#endif // #define CHROME_COMMON_HWND_NOTIFICATION_SOURCE_H_
diff --git a/chrome/common/notification_type.h b/chrome/common/notification_type.h
index 1f67ec3..82d62e0 100644
--- a/chrome/common/notification_type.h
+++ b/chrome/common/notification_type.h
@@ -184,10 +184,6 @@ class NotificationType {
// details are passed.
ALL_APPWINDOWS_CLOSED,
- // Indicates a new top window has been created. The source is the
- // WindowWin.
- WINDOW_CREATED,
-
// Indicates that a top window has been closed. The source is the HWND
// that was closed, no details are expected.
WINDOW_CLOSED,
diff --git a/chrome/common/temp_scaffolding_stubs.cc b/chrome/common/temp_scaffolding_stubs.cc
index b4d87c8..9706e26 100644
--- a/chrome/common/temp_scaffolding_stubs.cc
+++ b/chrome/common/temp_scaffolding_stubs.cc
@@ -312,3 +312,8 @@ void HungRendererDialog::HideForTabContents(TabContents*) {
void HungRendererDialog::ShowForTabContents(TabContents*) {
NOTIMPLEMENTED();
}
+
+void BrowserList::AllBrowsersClosed() {
+ // TODO(port): Close any dependent windows if necessary when the last browser
+ // window is closed.
+}