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

Side by Side Diff: chrome/browser/automation/automation_provider_observers.cc

Issue 8983012: Get rid of content::NavigationController in cc file and use "using" instead. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 11 months 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/automation/automation_provider_observers.h" 5 #include "chrome/browser/automation/automation_provider_observers.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 #include "content/public/browser/render_process_host.h" 82 #include "content/public/browser/render_process_host.h"
83 #include "content/public/common/process_type.h" 83 #include "content/public/common/process_type.h"
84 #include "googleurl/src/gurl.h" 84 #include "googleurl/src/gurl.h"
85 #include "third_party/skia/include/core/SkBitmap.h" 85 #include "third_party/skia/include/core/SkBitmap.h"
86 #include "ui/gfx/codec/png_codec.h" 86 #include "ui/gfx/codec/png_codec.h"
87 #include "ui/gfx/rect.h" 87 #include "ui/gfx/rect.h"
88 88
89 using content::BrowserThread; 89 using content::BrowserThread;
90 using content::DownloadItem; 90 using content::DownloadItem;
91 using content::DownloadManager; 91 using content::DownloadManager;
92 using content::NavigationController;
92 using content::WebContents; 93 using content::WebContents;
93 94
94 // Holds onto start and stop timestamps for a particular tab 95 // Holds onto start and stop timestamps for a particular tab
95 class InitialLoadObserver::TabTime { 96 class InitialLoadObserver::TabTime {
96 public: 97 public:
97 explicit TabTime(base::TimeTicks started) 98 explicit TabTime(base::TimeTicks started)
98 : load_start_time_(started) { 99 : load_start_time_(started) {
99 } 100 }
100 void set_stop_time(base::TimeTicks stopped) { 101 void set_stop_time(base::TimeTicks stopped) {
101 load_stop_time_ = stopped; 102 load_stop_time_ = stopped;
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 automation_->Send( 227 automation_->Send(
227 new AutomationMsg_InitialNewTabUILoadComplete(*load_time.ptr())); 228 new AutomationMsg_InitialNewTabUILoadComplete(*load_time.ptr()));
228 } 229 }
229 } else { 230 } else {
230 NOTREACHED(); 231 NOTREACHED();
231 } 232 }
232 } 233 }
233 234
234 NavigationControllerRestoredObserver::NavigationControllerRestoredObserver( 235 NavigationControllerRestoredObserver::NavigationControllerRestoredObserver(
235 AutomationProvider* automation, 236 AutomationProvider* automation,
236 content::NavigationController* controller, 237 NavigationController* controller,
237 IPC::Message* reply_message) 238 IPC::Message* reply_message)
238 : automation_(automation->AsWeakPtr()), 239 : automation_(automation->AsWeakPtr()),
239 controller_(controller), 240 controller_(controller),
240 reply_message_(reply_message) { 241 reply_message_(reply_message) {
241 if (FinishedRestoring()) { 242 if (FinishedRestoring()) {
242 SendDone(); 243 SendDone();
243 } else { 244 } else {
244 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, 245 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP,
245 content::NotificationService::AllSources()); 246 content::NotificationService::AllSources());
246 } 247 }
(...skipping 19 matching lines...) Expand all
266 void NavigationControllerRestoredObserver::SendDone() { 267 void NavigationControllerRestoredObserver::SendDone() {
267 if (!automation_) 268 if (!automation_)
268 return; 269 return;
269 270
270 AutomationMsg_WaitForTabToBeRestored::WriteReplyParams(reply_message_.get(), 271 AutomationMsg_WaitForTabToBeRestored::WriteReplyParams(reply_message_.get(),
271 true); 272 true);
272 automation_->Send(reply_message_.release()); 273 automation_->Send(reply_message_.release());
273 } 274 }
274 275
275 NavigationNotificationObserver::NavigationNotificationObserver( 276 NavigationNotificationObserver::NavigationNotificationObserver(
276 content::NavigationController* controller, 277 NavigationController* controller,
277 AutomationProvider* automation, 278 AutomationProvider* automation,
278 IPC::Message* reply_message, 279 IPC::Message* reply_message,
279 int number_of_navigations, 280 int number_of_navigations,
280 bool include_current_navigation, 281 bool include_current_navigation,
281 bool use_json_interface) 282 bool use_json_interface)
282 : automation_(automation->AsWeakPtr()), 283 : automation_(automation->AsWeakPtr()),
283 reply_message_(reply_message), 284 reply_message_(reply_message),
284 controller_(controller), 285 controller_(controller),
285 navigations_remaining_(number_of_navigations), 286 navigations_remaining_(number_of_navigations),
286 navigation_started_(false), 287 navigation_started_(false),
287 use_json_interface_(use_json_interface) { 288 use_json_interface_(use_json_interface) {
288 if (number_of_navigations == 0) { 289 if (number_of_navigations == 0) {
289 ConditionMet(AUTOMATION_MSG_NAVIGATION_SUCCESS); 290 ConditionMet(AUTOMATION_MSG_NAVIGATION_SUCCESS);
290 return; 291 return;
291 } 292 }
292 DCHECK_LT(0, navigations_remaining_); 293 DCHECK_LT(0, navigations_remaining_);
293 content::Source<content::NavigationController> source(controller_); 294 content::Source<NavigationController> source(controller_);
294 registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, source); 295 registrar_.Add(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, source);
295 registrar_.Add(this, content::NOTIFICATION_LOAD_START, source); 296 registrar_.Add(this, content::NOTIFICATION_LOAD_START, source);
296 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source); 297 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source);
297 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); 298 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source);
298 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source); 299 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source);
299 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source); 300 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source);
300 registrar_.Add(this, chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN, 301 registrar_.Add(this, chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN,
301 content::NotificationService::AllSources()); 302 content::NotificationService::AllSources());
302 303
303 if (include_current_navigation && controller->GetWebContents()->IsLoading()) 304 if (include_current_navigation && controller->GetWebContents()->IsLoading())
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 389
389 void TabStripNotificationObserver::Observe( 390 void TabStripNotificationObserver::Observe(
390 int type, 391 int type,
391 const content::NotificationSource& source, 392 const content::NotificationSource& source,
392 const content::NotificationDetails& details) { 393 const content::NotificationDetails& details) {
393 if (type == notification_) { 394 if (type == notification_) {
394 if (type == content::NOTIFICATION_TAB_PARENTED) { 395 if (type == content::NOTIFICATION_TAB_PARENTED) {
395 ObserveTab(&(content::Source<TabContentsWrapper>(source).ptr()-> 396 ObserveTab(&(content::Source<TabContentsWrapper>(source).ptr()->
396 tab_contents()->GetController())); 397 tab_contents()->GetController()));
397 } else { 398 } else {
398 ObserveTab(content::Source<content::NavigationController>(source).ptr()); 399 ObserveTab(content::Source<NavigationController>(source).ptr());
399 } 400 }
400 delete this; 401 delete this;
401 } else { 402 } else {
402 NOTREACHED(); 403 NOTREACHED();
403 } 404 }
404 } 405 }
405 406
406 TabAppendedNotificationObserver::TabAppendedNotificationObserver( 407 TabAppendedNotificationObserver::TabAppendedNotificationObserver(
407 Browser* parent, AutomationProvider* automation, 408 Browser* parent, AutomationProvider* automation,
408 IPC::Message* reply_message) 409 IPC::Message* reply_message)
409 : TabStripNotificationObserver(content::NOTIFICATION_TAB_PARENTED, 410 : TabStripNotificationObserver(content::NOTIFICATION_TAB_PARENTED,
410 automation), 411 automation),
411 parent_(parent), 412 parent_(parent),
412 reply_message_(reply_message) { 413 reply_message_(reply_message) {
413 } 414 }
414 415
415 TabAppendedNotificationObserver::~TabAppendedNotificationObserver() {} 416 TabAppendedNotificationObserver::~TabAppendedNotificationObserver() {}
416 417
417 void TabAppendedNotificationObserver::ObserveTab( 418 void TabAppendedNotificationObserver::ObserveTab(
418 content::NavigationController* controller) { 419 NavigationController* controller) {
419 if (!automation_) 420 if (!automation_)
420 return; 421 return;
421 422
422 if (automation_->GetIndexForNavigationController(controller, parent_) == 423 if (automation_->GetIndexForNavigationController(controller, parent_) ==
423 TabStripModel::kNoTab) { 424 TabStripModel::kNoTab) {
424 // This tab notification doesn't belong to the parent_. 425 // This tab notification doesn't belong to the parent_.
425 return; 426 return;
426 } 427 }
427 428
428 new NavigationNotificationObserver(controller, automation_, 429 new NavigationNotificationObserver(controller, automation_,
429 reply_message_.release(), 430 reply_message_.release(),
430 1, false, false); 431 1, false, false);
431 } 432 }
432 433
433 TabClosedNotificationObserver::TabClosedNotificationObserver( 434 TabClosedNotificationObserver::TabClosedNotificationObserver(
434 AutomationProvider* automation, bool wait_until_closed, 435 AutomationProvider* automation, bool wait_until_closed,
435 IPC::Message* reply_message) 436 IPC::Message* reply_message)
436 : TabStripNotificationObserver(wait_until_closed ? 437 : TabStripNotificationObserver(wait_until_closed ?
437 content::NOTIFICATION_TAB_CLOSED : content::NOTIFICATION_TAB_CLOSING, 438 content::NOTIFICATION_TAB_CLOSED : content::NOTIFICATION_TAB_CLOSING,
438 automation), 439 automation),
439 reply_message_(reply_message), 440 reply_message_(reply_message),
440 for_browser_command_(false) { 441 for_browser_command_(false) {
441 } 442 }
442 443
443 TabClosedNotificationObserver::~TabClosedNotificationObserver() {} 444 TabClosedNotificationObserver::~TabClosedNotificationObserver() {}
444 445
445 void TabClosedNotificationObserver::ObserveTab( 446 void TabClosedNotificationObserver::ObserveTab(
446 content::NavigationController* controller) { 447 NavigationController* controller) {
447 if (!automation_) 448 if (!automation_)
448 return; 449 return;
449 450
450 if (for_browser_command_) { 451 if (for_browser_command_) {
451 AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message_.get(), 452 AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message_.get(),
452 true); 453 true);
453 } else { 454 } else {
454 AutomationMsg_CloseTab::WriteReplyParams(reply_message_.get(), true); 455 AutomationMsg_CloseTab::WriteReplyParams(reply_message_.get(), true);
455 } 456 }
456 automation_->Send(reply_message_.release()); 457 automation_->Send(reply_message_.release());
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 return; 879 return;
879 } 880 }
880 881
881 if (type == chrome::NOTIFICATION_BROWSER_OPENED) { 882 if (type == chrome::NOTIFICATION_BROWSER_OPENED) {
882 // Store the new browser ID and continue waiting for a new tab within it 883 // Store the new browser ID and continue waiting for a new tab within it
883 // to stop loading. 884 // to stop loading.
884 new_window_id_ = ExtensionTabUtil::GetWindowId( 885 new_window_id_ = ExtensionTabUtil::GetWindowId(
885 content::Source<Browser>(source).ptr()); 886 content::Source<Browser>(source).ptr());
886 } else if (type == content::NOTIFICATION_LOAD_STOP) { 887 } else if (type == content::NOTIFICATION_LOAD_STOP) {
887 // Only send the result if the loaded tab is in the new window. 888 // Only send the result if the loaded tab is in the new window.
888 content::NavigationController* controller = 889 NavigationController* controller =
889 content::Source<content::NavigationController>(source).ptr(); 890 content::Source<NavigationController>(source).ptr();
890 TabContentsWrapper* tab = TabContentsWrapper::GetCurrentWrapperForContents( 891 TabContentsWrapper* tab = TabContentsWrapper::GetCurrentWrapperForContents(
891 controller->GetWebContents()); 892 controller->GetWebContents());
892 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1; 893 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1;
893 if (window_id == new_window_id_) { 894 if (window_id == new_window_id_) {
894 if (for_browser_command_) { 895 if (for_browser_command_) {
895 AutomationMsg_WindowExecuteCommand::WriteReplyParams( 896 AutomationMsg_WindowExecuteCommand::WriteReplyParams(
896 reply_message_.get(), true); 897 reply_message_.get(), true);
897 } 898 }
898 automation_->Send(reply_message_.release()); 899 automation_->Send(reply_message_.release());
899 delete this; 900 delete this;
(...skipping 993 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 AutomationProviderBrowsingDataObserver:: 1894 AutomationProviderBrowsingDataObserver::
1894 ~AutomationProviderBrowsingDataObserver() {} 1895 ~AutomationProviderBrowsingDataObserver() {}
1895 1896
1896 void AutomationProviderBrowsingDataObserver::OnBrowsingDataRemoverDone() { 1897 void AutomationProviderBrowsingDataObserver::OnBrowsingDataRemoverDone() {
1897 if (provider_) 1898 if (provider_)
1898 AutomationJSONReply(provider_, reply_message_.release()).SendSuccess(NULL); 1899 AutomationJSONReply(provider_, reply_message_.release()).SendSuccess(NULL);
1899 delete this; 1900 delete this;
1900 } 1901 }
1901 1902
1902 OmniboxAcceptNotificationObserver::OmniboxAcceptNotificationObserver( 1903 OmniboxAcceptNotificationObserver::OmniboxAcceptNotificationObserver(
1903 content::NavigationController* controller, 1904 NavigationController* controller,
1904 AutomationProvider* automation, 1905 AutomationProvider* automation,
1905 IPC::Message* reply_message) 1906 IPC::Message* reply_message)
1906 : automation_(automation->AsWeakPtr()), 1907 : automation_(automation->AsWeakPtr()),
1907 reply_message_(reply_message), 1908 reply_message_(reply_message),
1908 controller_(controller) { 1909 controller_(controller) {
1909 content::Source<content::NavigationController> source(controller_); 1910 content::Source<NavigationController> source(controller_);
1910 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source); 1911 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source);
1911 // Pages requiring auth don't send LOAD_STOP. 1912 // Pages requiring auth don't send LOAD_STOP.
1912 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); 1913 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source);
1913 } 1914 }
1914 1915
1915 OmniboxAcceptNotificationObserver::~OmniboxAcceptNotificationObserver() { 1916 OmniboxAcceptNotificationObserver::~OmniboxAcceptNotificationObserver() {
1916 } 1917 }
1917 1918
1918 void OmniboxAcceptNotificationObserver::Observe( 1919 void OmniboxAcceptNotificationObserver::Observe(
1919 int type, 1920 int type,
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
2191 dict->SetBoolean("is_pinned", top_sites_->IsURLPinned(visited.url)); 2192 dict->SetBoolean("is_pinned", top_sites_->IsURLPinned(visited.url));
2192 list_value->Append(dict); 2193 list_value->Append(dict);
2193 } 2194 }
2194 ntp_info_->Set("most_visited", list_value); 2195 ntp_info_->Set("most_visited", list_value);
2195 AutomationJSONReply(automation_, 2196 AutomationJSONReply(automation_,
2196 reply_message_.release()).SendSuccess(ntp_info_.get()); 2197 reply_message_.release()).SendSuccess(ntp_info_.get());
2197 delete this; 2198 delete this;
2198 } 2199 }
2199 2200
2200 AppLaunchObserver::AppLaunchObserver( 2201 AppLaunchObserver::AppLaunchObserver(
2201 content::NavigationController* controller, 2202 NavigationController* controller,
2202 AutomationProvider* automation, 2203 AutomationProvider* automation,
2203 IPC::Message* reply_message, 2204 IPC::Message* reply_message,
2204 extension_misc::LaunchContainer launch_container) 2205 extension_misc::LaunchContainer launch_container)
2205 : controller_(controller), 2206 : controller_(controller),
2206 automation_(automation->AsWeakPtr()), 2207 automation_(automation->AsWeakPtr()),
2207 reply_message_(reply_message), 2208 reply_message_(reply_message),
2208 launch_container_(launch_container), 2209 launch_container_(launch_container),
2209 new_window_id_(extension_misc::kUnknownWindowId) { 2210 new_window_id_(extension_misc::kUnknownWindowId) {
2210 if (launch_container_ == extension_misc::LAUNCH_TAB) { 2211 if (launch_container_ == extension_misc::LAUNCH_TAB) {
2211 // Need to wait for the currently-active tab to reload. 2212 // Need to wait for the currently-active tab to reload.
2212 content::Source<content::NavigationController> source(controller_); 2213 content::Source<NavigationController> source(controller_);
2213 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source); 2214 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, source);
2214 } else { 2215 } else {
2215 // Need to wait for a new tab in a new window to load. 2216 // Need to wait for a new tab in a new window to load.
2216 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, 2217 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP,
2217 content::NotificationService::AllSources()); 2218 content::NotificationService::AllSources());
2218 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_WINDOW_READY, 2219 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_WINDOW_READY,
2219 content::NotificationService::AllSources()); 2220 content::NotificationService::AllSources());
2220 } 2221 }
2221 } 2222 }
2222 2223
2223 AppLaunchObserver::~AppLaunchObserver() {} 2224 AppLaunchObserver::~AppLaunchObserver() {}
2224 2225
2225 void AppLaunchObserver::Observe(int type, 2226 void AppLaunchObserver::Observe(int type,
2226 const content::NotificationSource& source, 2227 const content::NotificationSource& source,
2227 const content::NotificationDetails& details) { 2228 const content::NotificationDetails& details) {
2228 if (type == content::NOTIFICATION_LOAD_STOP) { 2229 if (type == content::NOTIFICATION_LOAD_STOP) {
2229 if (launch_container_ == extension_misc::LAUNCH_TAB) { 2230 if (launch_container_ == extension_misc::LAUNCH_TAB) {
2230 // The app has been launched in the new tab. 2231 // The app has been launched in the new tab.
2231 if (automation_) { 2232 if (automation_) {
2232 AutomationJSONReply(automation_, 2233 AutomationJSONReply(automation_,
2233 reply_message_.release()).SendSuccess(NULL); 2234 reply_message_.release()).SendSuccess(NULL);
2234 } 2235 }
2235 delete this; 2236 delete this;
2236 return; 2237 return;
2237 } else { 2238 } else {
2238 // The app has launched only if the loaded tab is in the new window. 2239 // The app has launched only if the loaded tab is in the new window.
2239 content::NavigationController* controller = 2240 NavigationController* controller =
2240 content::Source<content::NavigationController>(source).ptr(); 2241 content::Source<NavigationController>(source).ptr();
2241 TabContentsWrapper* tab = 2242 TabContentsWrapper* tab =
2242 TabContentsWrapper::GetCurrentWrapperForContents( 2243 TabContentsWrapper::GetCurrentWrapperForContents(
2243 controller->GetWebContents()); 2244 controller->GetWebContents());
2244 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1; 2245 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1;
2245 if (window_id == new_window_id_) { 2246 if (window_id == new_window_id_) {
2246 if (automation_) { 2247 if (automation_) {
2247 AutomationJSONReply(automation_, 2248 AutomationJSONReply(automation_,
2248 reply_message_.release()).SendSuccess(NULL); 2249 reply_message_.release()).SendSuccess(NULL);
2249 } 2250 }
2250 delete this; 2251 delete this;
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
2743 // Use TAB_PARENTED to detect the new tab. 2744 // Use TAB_PARENTED to detect the new tab.
2744 registrar_.Add(this, 2745 registrar_.Add(this,
2745 content::NOTIFICATION_TAB_PARENTED, 2746 content::NOTIFICATION_TAB_PARENTED,
2746 content::NotificationService::AllSources()); 2747 content::NotificationService::AllSources());
2747 } 2748 }
2748 2749
2749 void NewTabObserver::Observe(int type, 2750 void NewTabObserver::Observe(int type,
2750 const content::NotificationSource& source, 2751 const content::NotificationSource& source,
2751 const content::NotificationDetails& details) { 2752 const content::NotificationDetails& details) {
2752 DCHECK_EQ(content::NOTIFICATION_TAB_PARENTED, type); 2753 DCHECK_EQ(content::NOTIFICATION_TAB_PARENTED, type);
2753 content::NavigationController* controller = 2754 NavigationController* controller =
2754 &(content::Source<TabContentsWrapper>(source).ptr()-> 2755 &(content::Source<TabContentsWrapper>(source).ptr()->
2755 tab_contents()->GetController()); 2756 tab_contents()->GetController());
2756 if (automation_) { 2757 if (automation_) {
2757 // TODO(phajdan.jr): Clean up this hack. We write the correct return type 2758 // TODO(phajdan.jr): Clean up this hack. We write the correct return type
2758 // here, but don't send the message. NavigationNotificationObserver 2759 // here, but don't send the message. NavigationNotificationObserver
2759 // will wait properly for the load to finish, and send the message, 2760 // will wait properly for the load to finish, and send the message,
2760 // but it will also append its own return value at the end of the reply. 2761 // but it will also append its own return value at the end of the reply.
2761 AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message_.get(), 2762 AutomationMsg_WindowExecuteCommand::WriteReplyParams(reply_message_.get(),
2762 true); 2763 true);
2763 new NavigationNotificationObserver(controller, automation_, 2764 new NavigationNotificationObserver(controller, automation_,
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
2964 reply_message_.release()).SendError("Profile could not be created."); 2965 reply_message_.release()).SendError("Profile could not be created.");
2965 return; 2966 return;
2966 } 2967 }
2967 } else if (type == chrome::NOTIFICATION_BROWSER_OPENED) { 2968 } else if (type == chrome::NOTIFICATION_BROWSER_OPENED) {
2968 // Store the new browser ID and continue waiting for a new tab within it 2969 // Store the new browser ID and continue waiting for a new tab within it
2969 // to stop loading. 2970 // to stop loading.
2970 new_window_id_ = ExtensionTabUtil::GetWindowId( 2971 new_window_id_ = ExtensionTabUtil::GetWindowId(
2971 content::Source<Browser>(source).ptr()); 2972 content::Source<Browser>(source).ptr());
2972 } else if (type == content::NOTIFICATION_LOAD_STOP) { 2973 } else if (type == content::NOTIFICATION_LOAD_STOP) {
2973 // Only send the result if the loaded tab is in the new window. 2974 // Only send the result if the loaded tab is in the new window.
2974 content::NavigationController* controller = 2975 NavigationController* controller =
2975 content::Source<content::NavigationController>(source).ptr(); 2976 content::Source<NavigationController>(source).ptr();
2976 TabContentsWrapper* tab = TabContentsWrapper::GetCurrentWrapperForContents( 2977 TabContentsWrapper* tab = TabContentsWrapper::GetCurrentWrapperForContents(
2977 controller->GetWebContents()); 2978 controller->GetWebContents());
2978 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1; 2979 int window_id = tab ? tab->restore_tab_helper()->window_id().id() : -1;
2979 if (window_id == new_window_id_) { 2980 if (window_id == new_window_id_) {
2980 if (automation_) { 2981 if (automation_) {
2981 AutomationJSONReply(automation_, reply_message_.release()) 2982 AutomationJSONReply(automation_, reply_message_.release())
2982 .SendSuccess(NULL); 2983 .SendSuccess(NULL);
2983 } 2984 }
2984 delete this; 2985 delete this;
2985 } 2986 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
3098 } 3099 }
3099 3100
3100 ExtensionHost* host = content::Details<ExtensionHost>(details).ptr(); 3101 ExtensionHost* host = content::Details<ExtensionHost>(details).ptr();
3101 if (host->extension_id() == extension_id_ && 3102 if (host->extension_id() == extension_id_ &&
3102 host->extension_host_type() == chrome::VIEW_TYPE_EXTENSION_POPUP) { 3103 host->extension_host_type() == chrome::VIEW_TYPE_EXTENSION_POPUP) {
3103 AutomationJSONReply(automation_, reply_message_.release()) 3104 AutomationJSONReply(automation_, reply_message_.release())
3104 .SendSuccess(NULL); 3105 .SendSuccess(NULL);
3105 delete this; 3106 delete this;
3106 } 3107 }
3107 } 3108 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/automation_provider.cc ('k') | chrome/browser/automation/automation_provider_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698