OLD | NEW |
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 "content/browser/tab_contents/tab_contents.h" | 5 #include "content/browser/tab_contents/tab_contents.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 } | 388 } |
389 #endif | 389 #endif |
390 | 390 |
391 // OnCloseStarted isn't called in unit tests. | 391 // OnCloseStarted isn't called in unit tests. |
392 if (!tab_close_start_time_.is_null()) { | 392 if (!tab_close_start_time_.is_null()) { |
393 UMA_HISTOGRAM_TIMES("Tab.Close", | 393 UMA_HISTOGRAM_TIMES("Tab.Close", |
394 base::TimeTicks::Now() - tab_close_start_time_); | 394 base::TimeTicks::Now() - tab_close_start_time_); |
395 } | 395 } |
396 | 396 |
397 FOR_EACH_OBSERVER(TabContentsObserver, observers_, set_tab_contents(NULL)); | 397 FOR_EACH_OBSERVER(TabContentsObserver, observers_, set_tab_contents(NULL)); |
| 398 |
| 399 net::NetworkChangeNotifier::RemoveOnlineStateObserver(this); |
398 } | 400 } |
399 | 401 |
400 void TabContents::AddObservers() { | 402 void TabContents::AddObservers() { |
401 printing_.reset(new printing::PrintViewManager(this)); | 403 printing_.reset(new printing::PrintViewManager(this)); |
402 print_preview_.reset(new printing::PrintPreviewMessageHandler(this)); | 404 print_preview_.reset(new printing::PrintPreviewMessageHandler(this)); |
403 fav_icon_helper_.reset(new FavIconHelper(this)); | 405 fav_icon_helper_.reset(new FavIconHelper(this)); |
404 autofill_manager_.reset(new AutoFillManager(this)); | 406 autofill_manager_.reset(new AutoFillManager(this)); |
405 autocomplete_history_manager_.reset(new AutocompleteHistoryManager(this)); | 407 autocomplete_history_manager_.reset(new AutocompleteHistoryManager(this)); |
406 prerender_plt_recorder_.reset(new prerender::PrerenderPLTRecorder(this)); | 408 prerender_plt_recorder_.reset(new prerender::PrerenderPLTRecorder(this)); |
407 desktop_notification_handler_.reset( | 409 desktop_notification_handler_.reset( |
408 new DesktopNotificationHandlerForTC(this, GetRenderProcessHost())); | 410 new DesktopNotificationHandlerForTC(this, GetRenderProcessHost())); |
409 plugin_observer_.reset(new PluginObserver(this)); | 411 plugin_observer_.reset(new PluginObserver(this)); |
410 safebrowsing_detection_host_.reset(new safe_browsing::ClientSideDetectionHost( | 412 safebrowsing_detection_host_.reset(new safe_browsing::ClientSideDetectionHost( |
411 this)); | 413 this)); |
| 414 net::NetworkChangeNotifier::AddOnlineStateObserver(this); |
412 } | 415 } |
413 | 416 |
414 bool TabContents::OnMessageReceived(const IPC::Message& message) { | 417 bool TabContents::OnMessageReceived(const IPC::Message& message) { |
415 ObserverListBase<TabContentsObserver>::Iterator it(observers_); | 418 ObserverListBase<TabContentsObserver>::Iterator it(observers_); |
416 TabContentsObserver* observer; | 419 TabContentsObserver* observer; |
417 while ((observer = it.GetNext()) != NULL) | 420 while ((observer = it.GetNext()) != NULL) |
418 if (observer->OnMessageReceived(message)) | 421 if (observer->OnMessageReceived(message)) |
419 return true; | 422 return true; |
420 | 423 |
421 bool handled = true; | 424 bool handled = true; |
(...skipping 2423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2845 | 2848 |
2846 void TabContents::SwapInRenderViewHost(RenderViewHost* rvh) { | 2849 void TabContents::SwapInRenderViewHost(RenderViewHost* rvh) { |
2847 render_manager_.SwapInRenderViewHost(rvh); | 2850 render_manager_.SwapInRenderViewHost(rvh); |
2848 } | 2851 } |
2849 | 2852 |
2850 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { | 2853 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { |
2851 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh); | 2854 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh); |
2852 rwh_view->SetSize(view()->GetContainerSize()); | 2855 rwh_view->SetSize(view()->GetContainerSize()); |
2853 } | 2856 } |
2854 | 2857 |
| 2858 void TabContents::OnOnlineStateChanged(bool online) { |
| 2859 render_view_host()->Send(new ViewMsg_NetworkStateChanged( |
| 2860 render_view_host()->routing_id(), online)); |
| 2861 } |
| 2862 |
2855 bool TabContents::MaybeUsePreloadedPage(const GURL& url) { | 2863 bool TabContents::MaybeUsePreloadedPage(const GURL& url) { |
2856 prerender::PrerenderManager* pm = profile()->GetPrerenderManager(); | 2864 prerender::PrerenderManager* pm = profile()->GetPrerenderManager(); |
2857 if (pm != NULL) { | 2865 if (pm != NULL) { |
2858 if (pm->MaybeUsePreloadedPage(this, url)) | 2866 if (pm->MaybeUsePreloadedPage(this, url)) |
2859 return true; | 2867 return true; |
2860 } | 2868 } |
2861 return false; | 2869 return false; |
2862 } | 2870 } |
OLD | NEW |