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

Side by Side Diff: content/browser/tab_contents/tab_contents.cc

Issue 6794035: Move dispatching and sending of the last extension specific messages out of TabContents and Rende... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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 "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/command_line.h" 10 #include "base/command_line.h"
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRunInsecureContent, 409 IPC_MESSAGE_HANDLER(ViewHostMsg_DidRunInsecureContent,
410 OnDidRunInsecureContent) 410 OnDidRunInsecureContent)
411 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentLoadedInFrame, 411 IPC_MESSAGE_HANDLER(ViewHostMsg_DocumentLoadedInFrame,
412 OnDocumentLoadedInFrame) 412 OnDocumentLoadedInFrame)
413 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFinishLoad, OnDidFinishLoad) 413 IPC_MESSAGE_HANDLER(ViewHostMsg_DidFinishLoad, OnDidFinishLoad)
414 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateContentRestrictions, 414 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateContentRestrictions,
415 OnUpdateContentRestrictions) 415 OnUpdateContentRestrictions)
416 IPC_MESSAGE_HANDLER(ViewHostMsg_PDFHasUnsupportedFeature, 416 IPC_MESSAGE_HANDLER(ViewHostMsg_PDFHasUnsupportedFeature,
417 OnPDFHasUnsupportedFeature) 417 OnPDFHasUnsupportedFeature)
418 IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnGoToEntryAtOffset) 418 IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnGoToEntryAtOffset)
419 IPC_MESSAGE_HANDLER(ExtensionHostMsg_DidGetApplicationInfo,
420 OnDidGetApplicationInfo)
421 IPC_MESSAGE_HANDLER(ExtensionHostMsg_InstallApplication,
422 OnInstallApplication)
423 IPC_MESSAGE_HANDLER(ViewHostMsg_PageContents, OnPageContents) 419 IPC_MESSAGE_HANDLER(ViewHostMsg_PageContents, OnPageContents)
424 IPC_MESSAGE_HANDLER(ViewHostMsg_PageTranslated, OnPageTranslated) 420 IPC_MESSAGE_HANDLER(ViewHostMsg_PageTranslated, OnPageTranslated)
425 IPC_MESSAGE_UNHANDLED(handled = false) 421 IPC_MESSAGE_UNHANDLED(handled = false)
426 IPC_END_MESSAGE_MAP_EX() 422 IPC_END_MESSAGE_MAP_EX()
427 423
428 if (!message_is_ok) { 424 if (!message_is_ok) {
429 UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_RVD")); 425 UserMetrics::RecordAction(UserMetricsAction("BadMessageTerminate_RVD"));
430 GetRenderProcessHost()->ReceivedBadMessage(); 426 GetRenderProcessHost()->ReceivedBadMessage();
431 } 427 }
432 428
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 NotificationService::current()->Notify( 835 NotificationService::current()->Notify(
840 NotificationType::TAB_ADDED, 836 NotificationType::TAB_ADDED,
841 Source<TabContentsDelegate>(delegate_), 837 Source<TabContentsDelegate>(delegate_),
842 Details<TabContents>(this)); 838 Details<TabContents>(this));
843 } 839 }
844 840
845 // TODO(pkasting): Why is this necessary? 841 // TODO(pkasting): Why is this necessary?
846 PopupNotificationVisibilityChanged(blocked_contents_ != NULL); 842 PopupNotificationVisibilityChanged(blocked_contents_ != NULL);
847 } 843 }
848 844
849 bool TabContents::ExecuteCode(int request_id, const std::string& extension_id,
850 bool is_js_code, const std::string& code_string,
851 bool all_frames) {
852 RenderViewHost* host = render_view_host();
853 if (!host)
854 return false;
855
856 ExtensionMsg_ExecuteCode_Params params;
857 params.request_id = request_id;
858 params.extension_id = extension_id;
859 params.is_javascript = is_js_code;
860 params.code = code_string;
861 params.all_frames = all_frames;
862 return host->Send(new ExtensionMsg_ExecuteCode(host->routing_id(), params));
863 }
864
865 void TabContents::PopupNotificationVisibilityChanged(bool visible) { 845 void TabContents::PopupNotificationVisibilityChanged(bool visible) {
866 if (is_being_destroyed_) 846 if (is_being_destroyed_)
867 return; 847 return;
868 content_settings_delegate_->SetPopupsBlocked(visible); 848 content_settings_delegate_->SetPopupsBlocked(visible);
869 if (!dont_notify_render_view_) 849 if (!dont_notify_render_view_)
870 render_view_host()->AllowScriptToClose(!visible); 850 render_view_host()->AllowScriptToClose(!visible);
871 } 851 }
872 852
873 gfx::NativeView TabContents::GetContentNativeView() const { 853 gfx::NativeView TabContents::GetContentNativeView() const {
874 return view_->GetContentNativeView(); 854 return view_->GetContentNativeView();
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 return; 1773 return;
1794 // Note that we don't call NavigationController::GotToOffset() as we don't 1774 // Note that we don't call NavigationController::GotToOffset() as we don't
1795 // want to create a pending navigation entry (it might end up lingering 1775 // want to create a pending navigation entry (it might end up lingering
1796 // http://crbug.com/51680). 1776 // http://crbug.com/51680).
1797 entry->set_transition_type(entry->transition_type() | 1777 entry->set_transition_type(entry->transition_type() |
1798 PageTransition::FORWARD_BACK); 1778 PageTransition::FORWARD_BACK);
1799 NavigateToEntry(*entry, NavigationController::NO_RELOAD); 1779 NavigateToEntry(*entry, NavigationController::NO_RELOAD);
1800 } 1780 }
1801 } 1781 }
1802 1782
1803 void TabContents::OnDidGetApplicationInfo(int32 page_id,
1804 const WebApplicationInfo& info) {
1805 web_app_info_ = info;
1806
1807 if (delegate())
1808 delegate()->OnDidGetApplicationInfo(this, page_id);
1809 }
1810
1811 void TabContents::OnInstallApplication(const WebApplicationInfo& info) {
1812 if (delegate())
1813 delegate()->OnInstallApplication(this, info);
1814 }
1815
1816 void TabContents::OnPageContents(const GURL& url, 1783 void TabContents::OnPageContents(const GURL& url,
1817 int32 page_id, 1784 int32 page_id,
1818 const string16& contents, 1785 const string16& contents,
1819 const std::string& language, 1786 const std::string& language,
1820 bool page_translatable) { 1787 bool page_translatable) {
1821 // Don't index any https pages. People generally don't want their bank 1788 // Don't index any https pages. People generally don't want their bank
1822 // accounts, etc. indexed on their computer, especially since some of these 1789 // accounts, etc. indexed on their computer, especially since some of these
1823 // things are not marked cachable. 1790 // things are not marked cachable.
1824 // TODO(brettw) we may want to consider more elaborate heuristics such as 1791 // TODO(brettw) we may want to consider more elaborate heuristics such as
1825 // the cachability of the page. We may also want to consider subframes (this 1792 // the cachability of the page. We may also want to consider subframes (this
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
2249 2216
2250 void TabContents::DomOperationResponse(const std::string& json_string, 2217 void TabContents::DomOperationResponse(const std::string& json_string,
2251 int automation_id) { 2218 int automation_id) {
2252 } 2219 }
2253 2220
2254 void TabContents::ProcessWebUIMessage( 2221 void TabContents::ProcessWebUIMessage(
2255 const ExtensionHostMsg_DomMessage_Params& params) { 2222 const ExtensionHostMsg_DomMessage_Params& params) {
2256 if (!render_manager_.web_ui()) { 2223 if (!render_manager_.web_ui()) {
2257 // This can happen if someone uses window.open() to open an extension URL 2224 // This can happen if someone uses window.open() to open an extension URL
2258 // from a non-extension context. 2225 // from a non-extension context.
2259 render_view_host()->BlockExtensionRequest(params.request_id); 2226 render_view_host()->Send(new ExtensionMsg_Response(
2227 render_view_host()->routing_id(), params.request_id, false, "",
2228 "Access to extension API denied."));
2260 return; 2229 return;
2261 } 2230 }
2262 render_manager_.web_ui()->ProcessWebUIMessage(params); 2231 render_manager_.web_ui()->ProcessWebUIMessage(params);
2263 } 2232 }
2264 2233
2265 void TabContents::ProcessExternalHostMessage(const std::string& message, 2234 void TabContents::ProcessExternalHostMessage(const std::string& message,
2266 const std::string& origin, 2235 const std::string& origin,
2267 const std::string& target) { 2236 const std::string& target) {
2268 if (delegate()) 2237 if (delegate())
2269 delegate()->ForwardMessageToExternalHost(message, origin, target); 2238 delegate()->ForwardMessageToExternalHost(message, origin, target);
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
2649 2618
2650 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { 2619 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) {
2651 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh); 2620 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh);
2652 rwh_view->SetSize(view()->GetContainerSize()); 2621 rwh_view->SetSize(view()->GetContainerSize());
2653 } 2622 }
2654 2623
2655 void TabContents::OnOnlineStateChanged(bool online) { 2624 void TabContents::OnOnlineStateChanged(bool online) {
2656 render_view_host()->Send(new ViewMsg_NetworkStateChanged( 2625 render_view_host()->Send(new ViewMsg_NetworkStateChanged(
2657 render_view_host()->routing_id(), online)); 2626 render_view_host()->routing_id(), online));
2658 } 2627 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698