Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(92)

Side by Side Diff: chrome/browser/external_tab_container_win.cc

Issue 5184009: Revert 66784 - Converts usage of SetProp/GetProp to a map. Even after making ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/external_tab_container_win.h" 5 #include "chrome/browser/external_tab_container_win.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/view_prop.h" 10 #include "app/win/scoped_prop.h"
11 #include "base/debug/trace_event.h" 11 #include "base/debug/trace_event.h"
12 #include "base/i18n/rtl.h" 12 #include "base/i18n/rtl.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/win_util.h" 14 #include "base/win_util.h"
15 #include "chrome/app/chrome_command_ids.h" 15 #include "chrome/app/chrome_command_ids.h"
16 #include "chrome/app/chrome_dll_resource.h" 16 #include "chrome/app/chrome_dll_resource.h"
17 #include "chrome/browser/automation/automation_provider.h" 17 #include "chrome/browser/automation/automation_provider.h"
18 #include "chrome/browser/automation/automation_extension_function.h" 18 #include "chrome/browser/automation/automation_extension_function.h"
19 #include "chrome/browser/browser_window.h" 19 #include "chrome/browser/browser_window.h"
20 #include "chrome/browser/debugger/devtools_manager.h" 20 #include "chrome/browser/debugger/devtools_manager.h"
(...skipping 19 matching lines...) Expand all
40 #include "chrome/common/native_web_keyboard_event.h" 40 #include "chrome/common/native_web_keyboard_event.h"
41 #include "chrome/common/notification_service.h" 41 #include "chrome/common/notification_service.h"
42 #include "chrome/common/page_transition_types.h" 42 #include "chrome/common/page_transition_types.h"
43 #include "chrome/common/url_constants.h" 43 #include "chrome/common/url_constants.h"
44 #include "grit/generated_resources.h" 44 #include "grit/generated_resources.h"
45 #include "grit/locale_settings.h" 45 #include "grit/locale_settings.h"
46 #include "views/grid_layout.h" 46 #include "views/grid_layout.h"
47 #include "views/widget/root_view.h" 47 #include "views/widget/root_view.h"
48 #include "views/window/window.h" 48 #include "views/window/window.h"
49 49
50 using app::ViewProp; 50 static const wchar_t kWindowObjectKey[] = L"ChromeWindowObject";
51
52 static const char kWindowObjectKey[] = "ChromeWindowObject";
53 51
54 // This class overrides the LinkActivated function in the PageInfoBubbleView 52 // This class overrides the LinkActivated function in the PageInfoBubbleView
55 // class and routes the help center link navigation to the host browser. 53 // class and routes the help center link navigation to the host browser.
56 class ExternalTabPageInfoBubbleView : public PageInfoBubbleView { 54 class ExternalTabPageInfoBubbleView : public PageInfoBubbleView {
57 public: 55 public:
58 ExternalTabPageInfoBubbleView(ExternalTabContainer* container, 56 ExternalTabPageInfoBubbleView(ExternalTabContainer* container,
59 gfx::NativeWindow parent_window, 57 gfx::NativeWindow parent_window,
60 Profile* profile, 58 Profile* profile,
61 const GURL& url, 59 const GURL& url,
62 const NavigationEntry::SSLStatus& ssl, 60 const NavigationEntry::SSLStatus& ssl,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 127
130 set_window_style(WS_POPUP | WS_CLIPCHILDREN); 128 set_window_style(WS_POPUP | WS_CLIPCHILDREN);
131 views::WidgetWin::Init(NULL, bounds); 129 views::WidgetWin::Init(NULL, bounds);
132 if (!IsWindow()) { 130 if (!IsWindow()) {
133 NOTREACHED(); 131 NOTREACHED();
134 return false; 132 return false;
135 } 133 }
136 134
137 // TODO(jcampan): limit focus traversal to contents. 135 // TODO(jcampan): limit focus traversal to contents.
138 136
139 prop_.reset(new ViewProp(GetNativeView(), kWindowObjectKey, this)); 137 prop_.reset(
138 new app::win::ScopedProp(GetNativeView(), kWindowObjectKey, this));
140 139
141 if (existing_contents) { 140 if (existing_contents) {
142 tab_contents_ = existing_contents; 141 tab_contents_ = existing_contents;
143 tab_contents_->controller().set_profile(profile); 142 tab_contents_->controller().set_profile(profile);
144 } else { 143 } else {
145 tab_contents_ = new TabContents(profile, NULL, MSG_ROUTING_NONE, 144 tab_contents_ = new TabContents(profile, NULL, MSG_ROUTING_NONE,
146 NULL, NULL); 145 NULL, NULL);
147 } 146 }
148 147
149 tab_contents_->set_delegate(this); 148 tab_contents_->set_delegate(this);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // The tab_contents_ member can get destroyed in the context of the call to 277 // The tab_contents_ member can get destroyed in the context of the call to
279 // TabContentsViewWin::Focus() above. This method eventually calls SetFocus 278 // TabContentsViewWin::Focus() above. This method eventually calls SetFocus
280 // on the native window, which could end up dispatching messages like 279 // on the native window, which could end up dispatching messages like
281 // WM_DESTROY for the external tab. 280 // WM_DESTROY for the external tab.
282 if (tab_contents_ && restore_focus_to_view) 281 if (tab_contents_ && restore_focus_to_view)
283 tab_contents_->FocusThroughTabTraversal(reverse); 282 tab_contents_->FocusThroughTabTraversal(reverse);
284 } 283 }
285 284
286 // static 285 // static
287 bool ExternalTabContainer::IsExternalTabContainer(HWND window) { 286 bool ExternalTabContainer::IsExternalTabContainer(HWND window) {
288 return ViewProp::GetValue(window, kWindowObjectKey) != NULL; 287 if (::GetProp(window, kWindowObjectKey) != NULL)
288 return true;
289
290 return false;
289 } 291 }
290 292
291 // static 293 // static
292 ExternalTabContainer* ExternalTabContainer::GetContainerForTab( 294 ExternalTabContainer* ExternalTabContainer::GetContainerForTab(
293 HWND tab_window) { 295 HWND tab_window) {
294 HWND parent_window = ::GetParent(tab_window); 296 HWND parent_window = ::GetParent(tab_window);
295 if (!::IsWindow(parent_window)) { 297 if (!::IsWindow(parent_window)) {
296 return NULL; 298 return NULL;
297 } 299 }
298 if (!IsExternalTabContainer(parent_window)) { 300 if (!IsExternalTabContainer(parent_window)) {
299 return NULL; 301 return NULL;
300 } 302 }
301 ExternalTabContainer* container = reinterpret_cast<ExternalTabContainer*>( 303 ExternalTabContainer* container = reinterpret_cast<ExternalTabContainer*>(
302 ViewProp::GetValue(parent_window, kWindowObjectKey)); 304 GetProp(parent_window, kWindowObjectKey));
303 return container; 305 return container;
304 } 306 }
305 307
306 // static 308 // static
307 ExternalTabContainer* 309 ExternalTabContainer*
308 ExternalTabContainer::GetExternalContainerFromNativeWindow( 310 ExternalTabContainer::GetExternalContainerFromNativeWindow(
309 gfx::NativeView native_window) { 311 gfx::NativeView native_window) {
310 ExternalTabContainer* tab_container = NULL; 312 ExternalTabContainer* tab_container = NULL;
311 if (native_window) { 313 if (native_window) {
312 tab_container = reinterpret_cast<ExternalTabContainer*>( 314 HANDLE handle = ::GetProp(native_window, kWindowObjectKey);
313 ViewProp::GetValue(native_window, kWindowObjectKey)); 315 tab_container = reinterpret_cast<ExternalTabContainer*>(handle);
314 } 316 }
315 return tab_container; 317 return tab_container;
316 } 318 }
317 //////////////////////////////////////////////////////////////////////////////// 319 ////////////////////////////////////////////////////////////////////////////////
318 // ExternalTabContainer, TabContentsDelegate implementation: 320 // ExternalTabContainer, TabContentsDelegate implementation:
319 321
320 void ExternalTabContainer::OpenURLFromTab(TabContents* source, 322 void ExternalTabContainer::OpenURLFromTab(TabContents* source,
321 const GURL& url, 323 const GURL& url,
322 const GURL& referrer, 324 const GURL& referrer,
323 WindowOpenDisposition disposition, 325 WindowOpenDisposition disposition,
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 1108
1107 if (disposition == CURRENT_TAB) { 1109 if (disposition == CURRENT_TAB) {
1108 DCHECK(route_all_top_level_navigations_); 1110 DCHECK(route_all_top_level_navigations_);
1109 disposition = NEW_FOREGROUND_TAB; 1111 disposition = NEW_FOREGROUND_TAB;
1110 } 1112 }
1111 ExternalTabContainer::OpenURLFromTab(source, url, referrer, disposition, 1113 ExternalTabContainer::OpenURLFromTab(source, url, referrer, disposition,
1112 transition); 1114 transition);
1113 // support only one navigation for a dummy tab before it is killed. 1115 // support only one navigation for a dummy tab before it is killed.
1114 ::DestroyWindow(GetNativeView()); 1116 ::DestroyWindow(GetNativeView());
1115 } 1117 }
OLDNEW
« no previous file with comments | « chrome/browser/external_tab_container_win.h ('k') | chrome/browser/renderer_host/render_widget_host_view_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698