Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 639 return ratio * (kMaxFSM - kMinFSM) + kMinFSM; | 639 return ratio * (kMaxFSM - kMinFSM) + kMinFSM; |
| 640 } | 640 } |
| 641 | 641 |
| 642 #endif // defined(OS_ANDROID) | 642 #endif // defined(OS_ANDROID) |
| 643 | 643 |
| 644 } // namespace | 644 } // namespace |
| 645 | 645 |
| 646 namespace chrome { | 646 namespace chrome { |
| 647 | 647 |
| 648 ChromeContentBrowserClient::ChromeContentBrowserClient() | 648 ChromeContentBrowserClient::ChromeContentBrowserClient() |
| 649 : prerender_tracker_(NULL) { | 649 : prerender_tracker_(NULL), |
| 650 weak_factory_(this) { | |
| 650 #if defined(ENABLE_PLUGINS) | 651 #if defined(ENABLE_PLUGINS) |
| 651 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i) | 652 for (size_t i = 0; i < arraysize(kPredefinedAllowedDevChannelOrigins); ++i) |
| 652 allowed_dev_channel_origins_.insert(kPredefinedAllowedDevChannelOrigins[i]); | 653 allowed_dev_channel_origins_.insert(kPredefinedAllowedDevChannelOrigins[i]); |
| 653 for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i) | 654 for (size_t i = 0; i < arraysize(kPredefinedAllowedFileHandleOrigins); ++i) |
| 654 allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]); | 655 allowed_file_handle_origins_.insert(kPredefinedAllowedFileHandleOrigins[i]); |
| 655 for (size_t i = 0; i < arraysize(kPredefinedAllowedSocketOrigins); ++i) | 656 for (size_t i = 0; i < arraysize(kPredefinedAllowedSocketOrigins); ++i) |
| 656 allowed_socket_origins_.insert(kPredefinedAllowedSocketOrigins[i]); | 657 allowed_socket_origins_.insert(kPredefinedAllowedSocketOrigins[i]); |
| 657 #endif | 658 #endif |
| 658 | 659 |
| 659 permissions_policy_delegate_.reset( | 660 permissions_policy_delegate_.reset( |
| (...skipping 1150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1810 for (i = render_frames.begin(); i != render_frames.end(); ++i) { | 1811 for (i = render_frames.begin(); i != render_frames.end(); ++i) { |
| 1811 BrowserThread::PostTask( | 1812 BrowserThread::PostTask( |
| 1812 BrowserThread::UI, FROM_HERE, | 1813 BrowserThread::UI, FROM_HERE, |
| 1813 base::Bind(&TabSpecificContentSettings::WebDatabaseAccessed, | 1814 base::Bind(&TabSpecificContentSettings::WebDatabaseAccessed, |
| 1814 i->first, i->second, url, name, display_name, !allow)); | 1815 i->first, i->second, url, name, display_name, !allow)); |
| 1815 } | 1816 } |
| 1816 | 1817 |
| 1817 return allow; | 1818 return allow; |
| 1818 } | 1819 } |
| 1819 | 1820 |
| 1820 bool ChromeContentBrowserClient::AllowWorkerFileSystem( | 1821 void ChromeContentBrowserClient::AllowWorkerFileSystem( |
| 1821 const GURL& url, | 1822 const GURL& url, |
| 1822 content::ResourceContext* context, | 1823 content::ResourceContext* context, |
| 1823 const std::vector<std::pair<int, int> >& render_frames) { | 1824 const std::vector<std::pair<int, int> >& render_frames, |
| 1825 base::Callback<void(bool)> callback) { | |
| 1824 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 1826 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 1825 ProfileIOData* io_data = ProfileIOData::FromResourceContext(context); | 1827 ProfileIOData* io_data = ProfileIOData::FromResourceContext(context); |
| 1826 CookieSettings* cookie_settings = io_data->GetCookieSettings(); | 1828 CookieSettings* cookie_settings = io_data->GetCookieSettings(); |
| 1827 bool allow = cookie_settings->IsSettingCookieAllowed(url, url); | 1829 bool allow = cookie_settings->IsSettingCookieAllowed(url, url); |
| 1828 | 1830 |
| 1831 #if defined(ENABLE_EXTENSIONS) | |
| 1832 // Record access to file system for potential display in UI. | |
| 1833 std::vector<std::pair<int, int> >::const_iterator i; | |
| 1834 for (i = render_frames.begin(); i != render_frames.end(); ++i) { | |
| 1835 bool is_web_view_guest = | |
| 1836 WebViewRendererState::GetInstance()->IsGuest(i->first); | |
|
Fady Samuel
2014/07/08 21:49:11
This code doesn't make sense to me. If there are t
Xi Han
2014/07/09 15:28:33
Done.
| |
| 1837 if (is_web_view_guest) { | |
| 1838 BrowserThread::PostTask( | |
| 1839 BrowserThread::UI, | |
| 1840 FROM_HERE, | |
| 1841 base::Bind(&ChromeContentBrowserClient:: | |
| 1842 RequestFileSystemPermissionOnUIThread, | |
| 1843 i->first, | |
| 1844 i->second, | |
| 1845 url, | |
| 1846 allow, | |
| 1847 base::Bind(&ChromeContentBrowserClient::FileSystemAccessed, | |
| 1848 weak_factory_.GetWeakPtr(), | |
| 1849 url, | |
| 1850 render_frames, | |
| 1851 callback))); | |
| 1852 break; | |
| 1853 } | |
| 1854 } | |
| 1855 #else | |
| 1856 FileSystemAccessed(url, render_frames, callback, allow); | |
| 1857 #endif | |
| 1858 } | |
| 1859 | |
| 1860 #if defined(ENABLE_EXTENSIONS) | |
| 1861 void ChromeContentBrowserClient::RequestFileSystemPermissionOnUIThread( | |
| 1862 int render_process_id, | |
| 1863 int render_frame_id, | |
| 1864 const GURL& url, | |
| 1865 bool allowed_by_default, | |
| 1866 const base::Callback<void(bool)>& callback) { | |
| 1867 DCHECK(BrowserThread:: CurrentlyOn(BrowserThread::UI)); | |
| 1868 WebViewGuest* guest = WebViewGuest::FromFrameID(render_process_id, | |
| 1869 render_frame_id); | |
| 1870 guest->RequestFileSystemPermission(url, allowed_by_default, callback); | |
| 1871 } | |
| 1872 #endif | |
| 1873 | |
| 1874 void ChromeContentBrowserClient::FileSystemAccessed( | |
| 1875 const GURL& url, | |
| 1876 const std::vector<std::pair<int, int> >& render_frames, | |
| 1877 base::Callback<void(bool)> callback, | |
| 1878 bool allow) { | |
| 1829 // Record access to file system for potential display in UI. | 1879 // Record access to file system for potential display in UI. |
| 1830 std::vector<std::pair<int, int> >::const_iterator i; | 1880 std::vector<std::pair<int, int> >::const_iterator i; |
| 1831 for (i = render_frames.begin(); i != render_frames.end(); ++i) { | 1881 for (i = render_frames.begin(); i != render_frames.end(); ++i) { |
| 1832 BrowserThread::PostTask( | 1882 BrowserThread::PostTask( |
| 1833 BrowserThread::UI, FROM_HERE, | 1883 BrowserThread::UI, |
| 1884 FROM_HERE, | |
| 1834 base::Bind(&TabSpecificContentSettings::FileSystemAccessed, | 1885 base::Bind(&TabSpecificContentSettings::FileSystemAccessed, |
| 1835 i->first, i->second, url, !allow)); | 1886 i->first, |
| 1887 i->second, | |
| 1888 url, | |
| 1889 !allow)); | |
| 1836 } | 1890 } |
| 1837 | 1891 callback.Run(allow); |
| 1838 return allow; | |
| 1839 } | 1892 } |
| 1840 | 1893 |
| 1841 bool ChromeContentBrowserClient::AllowWorkerIndexedDB( | 1894 bool ChromeContentBrowserClient::AllowWorkerIndexedDB( |
| 1842 const GURL& url, | 1895 const GURL& url, |
| 1843 const base::string16& name, | 1896 const base::string16& name, |
| 1844 content::ResourceContext* context, | 1897 content::ResourceContext* context, |
| 1845 const std::vector<std::pair<int, int> >& render_frames) { | 1898 const std::vector<std::pair<int, int> >& render_frames) { |
| 1846 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 1899 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 1847 ProfileIOData* io_data = ProfileIOData::FromResourceContext(context); | 1900 ProfileIOData* io_data = ProfileIOData::FromResourceContext(context); |
| 1848 CookieSettings* cookie_settings = io_data->GetCookieSettings(); | 1901 CookieSettings* cookie_settings = io_data->GetCookieSettings(); |
| (...skipping 952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2801 switches::kDisableWebRtcEncryption, | 2854 switches::kDisableWebRtcEncryption, |
| 2802 }; | 2855 }; |
| 2803 to_command_line->CopySwitchesFrom(from_command_line, | 2856 to_command_line->CopySwitchesFrom(from_command_line, |
| 2804 kWebRtcDevSwitchNames, | 2857 kWebRtcDevSwitchNames, |
| 2805 arraysize(kWebRtcDevSwitchNames)); | 2858 arraysize(kWebRtcDevSwitchNames)); |
| 2806 } | 2859 } |
| 2807 } | 2860 } |
| 2808 #endif // defined(ENABLE_WEBRTC) | 2861 #endif // defined(ENABLE_WEBRTC) |
| 2809 | 2862 |
| 2810 } // namespace chrome | 2863 } // namespace chrome |
| OLD | NEW |