| 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 "chrome/browser/tab_contents/tab_contents.h" | 5 #include "chrome/browser/tab_contents/tab_contents.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 | 441 |
| 442 // Listen for Google URL changes | 442 // Listen for Google URL changes |
| 443 registrar_.Add(this, NotificationType::GOOGLE_URL_UPDATED, | 443 registrar_.Add(this, NotificationType::GOOGLE_URL_UPDATED, |
| 444 NotificationService::AllSources()); | 444 NotificationService::AllSources()); |
| 445 | 445 |
| 446 // Set-up the showing of the omnibox search infobar if applicable. | 446 // Set-up the showing of the omnibox search infobar if applicable. |
| 447 if (OmniboxSearchHint::IsEnabled(profile)) | 447 if (OmniboxSearchHint::IsEnabled(profile)) |
| 448 omnibox_search_hint_.reset(new OmniboxSearchHint(this)); | 448 omnibox_search_hint_.reset(new OmniboxSearchHint(this)); |
| 449 | 449 |
| 450 autofill_manager_.reset(new AutoFillManager(this)); | 450 autofill_manager_.reset(new AutoFillManager(this)); |
| 451 message_filters_.push_back(autofill_manager_.get()); | 451 AddNavigationObserver(autofill_manager_.get()); |
| 452 autocomplete_history_manager_.reset(new AutocompleteHistoryManager(this)); | 452 autocomplete_history_manager_.reset(new AutocompleteHistoryManager(this)); |
| 453 message_filters_.push_back(autocomplete_history_manager_.get()); | 453 AddNavigationObserver(autocomplete_history_manager_.get()); |
| 454 } | 454 } |
| 455 | 455 |
| 456 TabContents::~TabContents() { | 456 TabContents::~TabContents() { |
| 457 is_being_destroyed_ = true; | 457 is_being_destroyed_ = true; |
| 458 | 458 |
| 459 // We don't want any notifications while we're running our destructor. | 459 // We don't want any notifications while we're running our destructor. |
| 460 registrar_.RemoveAll(); | 460 registrar_.RemoveAll(); |
| 461 pref_change_registrar_.RemoveAll(); | 461 pref_change_registrar_.RemoveAll(); |
| 462 | 462 |
| 463 NotifyDisconnected(); | 463 NotifyDisconnected(); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 IDS_MINIMUM_FONT_SIZE); | 563 IDS_MINIMUM_FONT_SIZE); |
| 564 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize, | 564 prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize, |
| 565 IDS_MINIMUM_LOGICAL_FONT_SIZE); | 565 IDS_MINIMUM_LOGICAL_FONT_SIZE); |
| 566 prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector, | 566 prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector, |
| 567 IDS_USES_UNIVERSAL_DETECTOR); | 567 IDS_USES_UNIVERSAL_DETECTOR); |
| 568 prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings, | 568 prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings, |
| 569 IDS_STATIC_ENCODING_LIST); | 569 IDS_STATIC_ENCODING_LIST); |
| 570 } | 570 } |
| 571 | 571 |
| 572 bool TabContents::OnMessageReceived(const IPC::Message& message) { | 572 bool TabContents::OnMessageReceived(const IPC::Message& message) { |
| 573 for (size_t i = 0; i < message_filters_.size(); ++i) { | 573 ObserverListBase<WebNavigationObserver>::Iterator it( |
| 574 if (message_filters_[i]->OnMessageReceived(message)) | 574 web_navigation_observers_); |
| 575 WebNavigationObserver* observer; |
| 576 while ((observer = it.GetNext()) != NULL) |
| 577 if (observer->OnMessageReceived(message)) |
| 575 return true; | 578 return true; |
| 576 } | |
| 577 | 579 |
| 578 bool handled = true; | 580 bool handled = true; |
| 579 bool message_is_ok = true; | 581 bool message_is_ok = true; |
| 580 IPC_BEGIN_MESSAGE_MAP_EX(TabContents, message, message_is_ok) | 582 IPC_BEGIN_MESSAGE_MAP_EX(TabContents, message, message_is_ok) |
| 581 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartProvisionalLoadForFrame, | 583 IPC_MESSAGE_HANDLER(ViewHostMsg_DidStartProvisionalLoadForFrame, |
| 582 OnDidStartProvisionalLoadForFrame) | 584 OnDidStartProvisionalLoadForFrame) |
| 583 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRedirectProvisionalLoad, | 585 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRedirectProvisionalLoad, |
| 584 OnDidRedirectProvisionalLoad) | 586 OnDidRedirectProvisionalLoad) |
| 585 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFailProvisionalLoadWithError, | 587 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFailProvisionalLoadWithError, |
| 586 OnDidFailProvisionalLoadWithError) | 588 OnDidFailProvisionalLoadWithError) |
| (...skipping 1391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1978 if (!net::RegistryControlledDomainService::SameDomainOrHost( | 1980 if (!net::RegistryControlledDomainService::SameDomainOrHost( |
| 1979 details.previous_url, details.entry->url())) | 1981 details.previous_url, details.entry->url())) |
| 1980 CloseConstrainedWindows(); | 1982 CloseConstrainedWindows(); |
| 1981 | 1983 |
| 1982 // Update the starred state. | 1984 // Update the starred state. |
| 1983 UpdateStarredStateForCurrentURL(); | 1985 UpdateStarredStateForCurrentURL(); |
| 1984 | 1986 |
| 1985 // Notify observers about navigation. | 1987 // Notify observers about navigation. |
| 1986 FOR_EACH_OBSERVER(WebNavigationObserver, web_navigation_observers_, | 1988 FOR_EACH_OBSERVER(WebNavigationObserver, web_navigation_observers_, |
| 1987 DidNavigateMainFramePostCommit(details, params)); | 1989 DidNavigateMainFramePostCommit(details, params)); |
| 1988 | |
| 1989 // Clear the cache of forms in AutoFill. | |
| 1990 autofill_manager_->Reset(); | |
| 1991 } | 1990 } |
| 1992 | 1991 |
| 1993 void TabContents::DidNavigateAnyFramePostCommit( | 1992 void TabContents::DidNavigateAnyFramePostCommit( |
| 1994 RenderViewHost* render_view_host, | 1993 RenderViewHost* render_view_host, |
| 1995 const NavigationController::LoadCommittedDetails& details, | 1994 const NavigationController::LoadCommittedDetails& details, |
| 1996 const ViewHostMsg_FrameNavigate_Params& params) { | 1995 const ViewHostMsg_FrameNavigate_Params& params) { |
| 1997 // If we navigate, start showing messages again. This does nothing to prevent | 1996 // If we navigate, start showing messages again. This does nothing to prevent |
| 1998 // a malicious script from spamming messages, since the script could just | 1997 // a malicious script from spamming messages, since the script could just |
| 1999 // reload the page to stop blocking. | 1998 // reload the page to stop blocking. |
| 2000 suppress_javascript_messages_ = false; | 1999 suppress_javascript_messages_ = false; |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2919 const std::string& json_arguments, | 2918 const std::string& json_arguments, |
| 2920 IPC::Message* reply_msg) { | 2919 IPC::Message* reply_msg) { |
| 2921 if (delegate()) { | 2920 if (delegate()) { |
| 2922 HtmlDialogUIDelegate* dialog_delegate = | 2921 HtmlDialogUIDelegate* dialog_delegate = |
| 2923 new ModalHtmlDialogDelegate(url, width, height, json_arguments, | 2922 new ModalHtmlDialogDelegate(url, width, height, json_arguments, |
| 2924 reply_msg, this); | 2923 reply_msg, this); |
| 2925 delegate()->ShowHtmlDialog(dialog_delegate, NULL); | 2924 delegate()->ShowHtmlDialog(dialog_delegate, NULL); |
| 2926 } | 2925 } |
| 2927 } | 2926 } |
| 2928 | 2927 |
| 2929 void TabContents::PasswordFormsFound( | |
| 2930 const std::vector<webkit_glue::PasswordForm>& forms) { | |
| 2931 FOR_EACH_OBSERVER(WebNavigationObserver, web_navigation_observers_, | |
| 2932 PasswordFormsFound(forms)); | |
| 2933 } | |
| 2934 | |
| 2935 void TabContents::PasswordFormsVisible( | |
| 2936 const std::vector<webkit_glue::PasswordForm>& visible_forms) { | |
| 2937 FOR_EACH_OBSERVER(WebNavigationObserver, web_navigation_observers_, | |
| 2938 PasswordFormsVisible(visible_forms)); | |
| 2939 } | |
| 2940 | |
| 2941 // Checks to see if we should generate a keyword based on the OSDD, and if | 2928 // Checks to see if we should generate a keyword based on the OSDD, and if |
| 2942 // necessary uses TemplateURLFetcher to download the OSDD and create a keyword. | 2929 // necessary uses TemplateURLFetcher to download the OSDD and create a keyword. |
| 2943 void TabContents::PageHasOSDD( | 2930 void TabContents::PageHasOSDD( |
| 2944 RenderViewHost* render_view_host, | 2931 RenderViewHost* render_view_host, |
| 2945 int32 page_id, | 2932 int32 page_id, |
| 2946 const GURL& url, | 2933 const GURL& url, |
| 2947 const ViewHostMsg_PageHasOSDD_Type& msg_provider_type) { | 2934 const ViewHostMsg_PageHasOSDD_Type& msg_provider_type) { |
| 2948 // Make sure page_id is the current page and other basic checks. | 2935 // Make sure page_id is the current page and other basic checks. |
| 2949 DCHECK(url.is_valid()); | 2936 DCHECK(url.is_valid()); |
| 2950 if (!IsActiveEntry(page_id)) | 2937 if (!IsActiveEntry(page_id)) |
| (...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3386 if (pm != NULL) { | 3373 if (pm != NULL) { |
| 3387 if (pm->MaybeUsePreloadedPage(this, url)) { | 3374 if (pm->MaybeUsePreloadedPage(this, url)) { |
| 3388 // TODO(tburkard): If the preloaded page has not finished preloading | 3375 // TODO(tburkard): If the preloaded page has not finished preloading |
| 3389 // yet, we should not do this. | 3376 // yet, we should not do this. |
| 3390 DidStopLoading(); | 3377 DidStopLoading(); |
| 3391 return true; | 3378 return true; |
| 3392 } | 3379 } |
| 3393 } | 3380 } |
| 3394 return false; | 3381 return false; |
| 3395 } | 3382 } |
| OLD | NEW |