15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/content_browser_client.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/image/image_skia.h"
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserMainParts* ContentBrowserClient::CreateBrowserMainParts(
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const MainFunctionParams& parameters) {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)WebContentsViewDelegate* ContentBrowserClient::GetWebContentsViewDelegate(
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    WebContents* web_contents) {
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GURL ContentBrowserClient::GetEffectiveURL(BrowserContext* browser_context,
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                           const GURL& url) {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return url;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::ShouldUseProcessPerSite(
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserContext* browser_context, const GURL& effective_url) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)net::URLRequestContextGetter* ContentBrowserClient::CreateRequestContext(
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    BrowserContext* browser_context,
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    ProtocolHandlerMap* protocol_handlers,
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    URLRequestInterceptorScopedVector request_interceptors) {
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return NULL;
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)net::URLRequestContextGetter*
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ContentBrowserClient::CreateRequestContextForStoragePartition(
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    BrowserContext* browser_context,
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    const base::FilePath& partition_path,
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    bool in_memory,
45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    ProtocolHandlerMap* protocol_handlers,
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    URLRequestInterceptorScopedVector request_interceptors) {
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return NULL;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::IsHandledURL(const GURL& url) {
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)bool ContentBrowserClient::CanCommitURL(RenderProcessHost* process_host,
55a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)                                        const GURL& site_url) {
56a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  return true;
57a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}
58a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)bool ContentBrowserClient::ShouldAllowOpenURL(SiteInstance* site_instance,
6058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                                              const GURL& url) {
6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  return true;
6258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::IsSuitableHost(RenderProcessHost* process_host,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const GURL& site_url) {
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool ContentBrowserClient::MayReuseHost(RenderProcessHost* process_host) {
70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return true;
71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::ShouldTryToUseExistingProcessHost(
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      BrowserContext* browser_context, const GURL& url) {
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool ContentBrowserClient::ShouldSwapBrowsingInstancesForNavigation(
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    SiteInstance* site_instance,
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& current_url,
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& new_url) {
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::ShouldSwapProcessesForRedirect(
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ResourceContext* resource_context, const GURL& current_url,
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& new_url) {
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool ContentBrowserClient::ShouldAssignSiteForURL(const GURL& url) {
927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return true;
937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string ContentBrowserClient::GetCanonicalEncodingNameByAliasName(
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& alias_name) {
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return std::string();
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string ContentBrowserClient::GetApplicationLocale() {
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return "en-US";
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string ContentBrowserClient::GetAcceptLangs(BrowserContext* context) {
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return std::string();
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
108f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const gfx::ImageSkia* ContentBrowserClient::GetDefaultFavicon() {
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  static gfx::ImageSkia* empty = new gfx::ImageSkia();
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return empty;
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowAppCache(const GURL& manifest_url,
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         const GURL& first_party,
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                         ResourceContext* context) {
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowGetCookie(const GURL& url,
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const GURL& first_party,
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const net::CookieList& cookie_list,
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          ResourceContext* context,
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          int render_process_id,
1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                          int render_frame_id) {
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowSetCookie(const GURL& url,
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const GURL& first_party,
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          const std::string& cookie_line,
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          ResourceContext* context,
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          int render_process_id,
1335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                          int render_frame_id,
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                          net::CookieOptions* options) {
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowSaveLocalState(ResourceContext* context) {
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowWorkerDatabase(
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
144a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& name,
145a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& display_name,
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    unsigned long estimated_size,
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ResourceContext* context,
1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const std::vector<std::pair<int, int> >& render_frames) {
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
152116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid ContentBrowserClient::AllowWorkerFileSystem(
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ResourceContext* context,
155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::vector<std::pair<int, int> >& render_frames,
156116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    base::Callback<void(bool)> callback) {
157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  callback.Run(true);
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowWorkerIndexedDB(
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const base::string16& name,
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ResourceContext* context,
1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    const std::vector<std::pair<int, int> >& render_frames) {
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)QuotaPermissionContext* ContentBrowserClient::CreateQuotaPermissionContext() {
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)net::URLRequestContext* ContentBrowserClient::OverrideRequestContextForURL(
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url, ResourceContext* context) {
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string ContentBrowserClient::GetStoragePartitionIdForSite(
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserContext* browser_context,
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& site) {
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return std::string();
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::IsValidStoragePartitionId(
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserContext* browser_context,
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const std::string& partition_id) {
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Since the GetStoragePartitionIdForChildProcess() only generates empty
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // strings, we should only ever see empty strings coming back.
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return partition_id.empty();
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ContentBrowserClient::GetStoragePartitionConfigForSite(
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserContext* browser_context,
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& site,
1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    bool can_be_default,
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    std::string* partition_domain,
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    std::string* partition_name,
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    bool* in_memory) {
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  partition_domain->clear();
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  partition_name->clear();
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *in_memory = false;
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MediaObserver* ContentBrowserClient::GetMediaObserver() {
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)blink::WebNotificationPermission
2085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)ContentBrowserClient::CheckDesktopNotificationPermission(
2095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    const GURL& source_origin,
2105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    ResourceContext* context,
2115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    int render_process_id) {
2125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return blink::WebNotificationPermissionAllowed;
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void ContentBrowserClient::RequestGeolocationPermission(
216f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    WebContents* web_contents,
217f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    int bridge_id,
218f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    const GURL& requesting_frame,
219f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    bool user_gesture,
220f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Callback<void(bool)> result_callback,
221f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Closure* cancel_callback) {
222f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  result_callback.Run(true);
223f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
224f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
225f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void ContentBrowserClient::RequestMidiSysExPermission(
226f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    WebContents* web_contents,
227f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    int bridge_id,
228f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    const GURL& requesting_frame,
229f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    bool user_gesture,
230f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Callback<void(bool)> result_callback,
231f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Closure* cancel_callback) {
232f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  result_callback.Run(true);
233f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
234f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
235f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void ContentBrowserClient::RequestProtectedMediaIdentifierPermission(
236f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    WebContents* web_contents,
237f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    const GURL& origin,
238f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Callback<void(bool)> result_callback,
239f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    base::Closure* cancel_callback) {
240f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  result_callback.Run(true);
241f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
242f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
243558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochbool ContentBrowserClient::CanCreateWindow(
244558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    const GURL& opener_url,
24558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    const GURL& opener_top_level_frame_url,
246558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    const GURL& source_origin,
247558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    WindowContainerType container_type,
248558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    const GURL& target_url,
249cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    const Referrer& referrer,
250558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    WindowOpenDisposition disposition,
251f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const blink::WebWindowFeatures& features,
252558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    bool user_gesture,
253558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    bool opener_suppressed,
254cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    ResourceContext* context,
255558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    int render_process_id,
256558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    int opener_id,
257558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    bool* no_javascript_access) {
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *no_javascript_access = false;
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SpeechRecognitionManagerDelegate*
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ContentBrowserClient::GetSpeechRecognitionManagerDelegate() {
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)net::NetLog* ContentBrowserClient::GetNetLog() {
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)AccessTokenStore* ContentBrowserClient::CreateAccessTokenStore() {
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::IsFastShutdownPossible() {
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return true;
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)base::FilePath ContentBrowserClient::GetDefaultDownloadDirectory() {
2802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return base::FilePath();
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)std::string ContentBrowserClient::GetDefaultDownloadName() {
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return std::string();
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserPpapiHost*
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ContentBrowserClient::GetExternalBrowserPpapiHost(int plugin_process_id) {
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool ContentBrowserClient::AllowPepperSocketAPI(
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    BrowserContext* browser_context,
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const GURL& url,
2957d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    bool private_api,
29668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    const SocketPermissionRequest* params) {
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return false;
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ui::SelectFilePolicy* ContentBrowserClient::CreateSelectFilePolicy(
3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    WebContents* web_contents) {
3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return NULL;
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)LocationProvider* ContentBrowserClient::OverrideSystemLocationProvider() {
3067d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  return NULL;
3077d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
3087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
309f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)VibrationProvider* ContentBrowserClient::OverrideVibrationProvider() {
310f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  return NULL;
311f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
312f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
313cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)DevToolsManagerDelegate* ContentBrowserClient::GetDevToolsManagerDelegate() {
314cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return NULL;
315cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
316cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
3174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)bool ContentBrowserClient::IsPluginAllowedToCallRequestOSFileHandle(
318cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    BrowserContext* browser_context,
3194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    const GURL& url) {
3204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  return false;
3214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
3224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
3236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)bool ContentBrowserClient::IsPluginAllowedToUseDevChannelAPIs(
3246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    BrowserContext* browser_context,
3256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    const GURL& url) {
3265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return false;
3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
329a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)net::CookieStore* ContentBrowserClient::OverrideCookieStoreForRenderProcess(
330a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    int render_process_id) {
331a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return NULL;
332a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
333a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
334f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#if defined(OS_WIN)
335f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const wchar_t* ContentBrowserClient::GetResourceDllName() {
336f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return NULL;
337f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
338f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif
339f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
340a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#if defined(VIDEO_HOLE)
341a02191e04bc25c4935f804f2c080ae28663d096dBen MurdochExternalVideoSurfaceContainer*
342a02191e04bc25c4935f804f2c080ae28663d096dBen MurdochContentBrowserClient::OverrideCreateExternalVideoSurfaceContainer(
343a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    WebContents* web_contents) {
344a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  return NULL;
345a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch}
346a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#endif
347a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
3481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool ContentBrowserClient::CheckMediaAccessPermission(
3491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    BrowserContext* browser_context,
3501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const GURL& security_origin,
3511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    MediaStreamType type) {
3521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return false;
3531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
3541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
356