OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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_frame/chrome_frame_delegate.h" | 5 #include "chrome_frame/chrome_frame_delegate.h" |
6 | 6 |
| 7 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/common/url_constants.h" |
| 9 #include "chrome_frame/utils.h" |
| 10 |
7 bool ChromeFrameDelegateImpl::IsTabMessage(const IPC::Message& message, | 11 bool ChromeFrameDelegateImpl::IsTabMessage(const IPC::Message& message, |
8 int* tab_handle) { | 12 int* tab_handle) { |
9 bool is_tab_message = true; | 13 bool is_tab_message = true; |
10 IPC_BEGIN_MESSAGE_MAP(ChromeFrameDelegateImpl, message) | 14 IPC_BEGIN_MESSAGE_MAP(ChromeFrameDelegateImpl, message) |
11 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_NavigationStateChanged, ) | 15 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_NavigationStateChanged, ) |
12 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_UpdateTargetUrl, ) | 16 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_UpdateTargetUrl, ) |
13 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_HandleAccelerator, ) | 17 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_HandleAccelerator, ) |
14 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_TabbedOut, ) | 18 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_TabbedOut, ) |
15 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_OpenURL, ) | 19 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_OpenURL, ) |
16 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_NavigationFailed, ) | 20 IPC_MESSAGE_HANDLER_GENERIC(AutomationMsg_NavigationFailed, ) |
(...skipping 51 matching lines...) Loading... |
68 IPC_MESSAGE_HANDLER(AutomationMsg_DownloadRequestInHost, | 72 IPC_MESSAGE_HANDLER(AutomationMsg_DownloadRequestInHost, |
69 OnDownloadRequestInHost) | 73 OnDownloadRequestInHost) |
70 IPC_MESSAGE_HANDLER(AutomationMsg_SetCookieAsync, OnSetCookieAsync) | 74 IPC_MESSAGE_HANDLER(AutomationMsg_SetCookieAsync, OnSetCookieAsync) |
71 IPC_MESSAGE_HANDLER(AutomationMsg_AttachExternalTab, OnAttachExternalTab) | 75 IPC_MESSAGE_HANDLER(AutomationMsg_AttachExternalTab, OnAttachExternalTab) |
72 IPC_MESSAGE_HANDLER(AutomationMsg_RequestGoToHistoryEntryOffset, | 76 IPC_MESSAGE_HANDLER(AutomationMsg_RequestGoToHistoryEntryOffset, |
73 OnGoToHistoryEntryOffset) | 77 OnGoToHistoryEntryOffset) |
74 IPC_MESSAGE_HANDLER(AutomationMsg_GetCookiesFromHost, OnGetCookiesFromHost) | 78 IPC_MESSAGE_HANDLER(AutomationMsg_GetCookiesFromHost, OnGetCookiesFromHost) |
75 IPC_MESSAGE_HANDLER(AutomationMsg_CloseExternalTab, OnCloseTab) | 79 IPC_MESSAGE_HANDLER(AutomationMsg_CloseExternalTab, OnCloseTab) |
76 IPC_END_MESSAGE_MAP() | 80 IPC_END_MESSAGE_MAP() |
77 } | 81 } |
| 82 |
| 83 |
| 84 // NavigationConstraintsImpl method definitions. |
| 85 bool NavigationConstraintsImpl::AllowUnsafeUrls() { |
| 86 // No sanity checks if unsafe URLs are allowed |
| 87 return GetConfigBool(false, kAllowUnsafeURLs); |
| 88 } |
| 89 |
| 90 bool NavigationConstraintsImpl::IsSchemeAllowed(const GURL& url) { |
| 91 if (url.is_empty()) |
| 92 return false; |
| 93 |
| 94 if (!url.is_valid()) |
| 95 return false; |
| 96 |
| 97 if (url.SchemeIs(chrome::kHttpScheme) || |
| 98 url.SchemeIs(chrome::kHttpsScheme)) |
| 99 return true; |
| 100 |
| 101 // Additional checking for view-source. Allow only http and https |
| 102 // URLs in view source. |
| 103 if (url.SchemeIs(chrome::kViewSourceScheme)) { |
| 104 GURL sub_url(url.path()); |
| 105 if (sub_url.SchemeIs(chrome::kHttpScheme) || |
| 106 sub_url.SchemeIs(chrome::kHttpsScheme)) |
| 107 return true; |
| 108 } |
| 109 |
| 110 // Allow only about:blank or about:version |
| 111 if (url.SchemeIs(chrome::kAboutScheme)) { |
| 112 if (LowerCaseEqualsASCII(url.spec(), chrome::kAboutBlankURL) || |
| 113 LowerCaseEqualsASCII(url.spec(), chrome::kAboutVersionURL)) { |
| 114 return true; |
| 115 } |
| 116 } |
| 117 return false; |
| 118 } |
| 119 |
| 120 bool NavigationConstraintsImpl::IsZoneAllowed(const GURL& url) { |
| 121 return true; |
| 122 } |
OLD | NEW |