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