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

Side by Side Diff: content/public/browser/content_browser_client.h

Issue 10993078: Use extensions socket permission for TCP/UDP socket APIs in Pepper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years, 2 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) 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 #ifndef CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_
6 #define CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ 6 #define CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_
7 7
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // Embedder API (or SPI) for participating in browser logic, to be implemented 76 // Embedder API (or SPI) for participating in browser logic, to be implemented
77 // by the client of the content browser. See ChromeContentBrowserClient for the 77 // by the client of the content browser. See ChromeContentBrowserClient for the
78 // principal implementation. The methods are assumed to be called on the UI 78 // principal implementation. The methods are assumed to be called on the UI
79 // thread unless otherwise specified. Use this "escape hatch" sparingly, to 79 // thread unless otherwise specified. Use this "escape hatch" sparingly, to
80 // avoid the embedder interface ballooning and becoming very specific to Chrome. 80 // avoid the embedder interface ballooning and becoming very specific to Chrome.
81 // (Often, the call out to the client can happen in a different part of the code 81 // (Often, the call out to the client can happen in a different part of the code
82 // that either already has a hook out to the embedder, or calls out to one of 82 // that either already has a hook out to the embedder, or calls out to one of
83 // the observer interfaces.) 83 // the observer interfaces.)
84 class CONTENT_EXPORT ContentBrowserClient { 84 class CONTENT_EXPORT ContentBrowserClient {
85 public: 85 public:
86 struct SocketPermissionParam {
jam 2012/10/10 20:48:30 please move this to a separate file (the conventio
Dmitry Polukhin 2012/10/17 09:25:54 Done.
jam 2012/10/17 15:22:42 why do you say it's odd? extensions is in chrome,
Dmitry Polukhin 2012/10/18 08:57:38 ** Presubmit ERRORS ** You added one or more #incl
jam 2012/10/18 15:37:15 this is because chrome\common is including from co
87 enum OperationType {
88 NONE = 0,
89 TCP_CONNECT,
90 TCP_LISTEN,
91 UDP_BIND,
92 UDP_SEND_TO,
93 };
94
95 SocketPermissionParam(OperationType type,
96 const std::string& host,
97 int port)
98 : type(type),
99 host(host),
100 port(port) {
101 }
102
103 OperationType type;
104 std::string host;
105 int port;
106 };
107
86 virtual ~ContentBrowserClient() {} 108 virtual ~ContentBrowserClient() {}
87 109
88 // Allows the embedder to set any number of custom BrowserMainParts 110 // Allows the embedder to set any number of custom BrowserMainParts
89 // implementations for the browser startup code. See comments in 111 // implementations for the browser startup code. See comments in
90 // browser_main_parts.h. 112 // browser_main_parts.h.
91 virtual BrowserMainParts* CreateBrowserMainParts( 113 virtual BrowserMainParts* CreateBrowserMainParts(
92 const MainFunctionParams& parameters); 114 const MainFunctionParams& parameters);
93 115
94 // Allows an embedder to return their own WebContentsView implementation. 116 // Allows an embedder to return their own WebContentsView implementation.
95 // Return NULL to let the default one for the platform be created. Otherwise 117 // Return NULL to let the default one for the platform be created. Otherwise
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 // Returns the default filename used in downloads when we have no idea what 457 // Returns the default filename used in downloads when we have no idea what
436 // else we should do with the file. 458 // else we should do with the file.
437 virtual std::string GetDefaultDownloadName(); 459 virtual std::string GetDefaultDownloadName();
438 460
439 // Notifification that a pepper plugin has just been spawned. This allows the 461 // Notifification that a pepper plugin has just been spawned. This allows the
440 // embedder to add filters onto the host to implement interfaces. 462 // embedder to add filters onto the host to implement interfaces.
441 // This is called on the IO thread. 463 // This is called on the IO thread.
442 virtual void DidCreatePpapiPlugin(BrowserPpapiHost* browser_host) {} 464 virtual void DidCreatePpapiPlugin(BrowserPpapiHost* browser_host) {}
443 465
444 // Returns true if renderer processes can use Pepper TCP/UDP sockets from 466 // Returns true if renderer processes can use Pepper TCP/UDP sockets from
445 // the given origin. 467 // the given origin and connection type.
446 virtual bool AllowPepperSocketAPI(BrowserContext* browser_context, 468 virtual bool AllowPepperSocketAPI(BrowserContext* browser_context,
447 const GURL& url); 469 const GURL& url,
470 const SocketPermissionParam& params);
448 471
449 // Returns true if renderer processes can use private Pepper File APIs. 472 // Returns true if renderer processes can use private Pepper File APIs.
450 virtual bool AllowPepperPrivateFileAPI(); 473 virtual bool AllowPepperPrivateFileAPI();
451 474
452 #if defined(OS_POSIX) && !defined(OS_MACOSX) 475 #if defined(OS_POSIX) && !defined(OS_MACOSX)
453 // Populates |mappings| with all files that need to be mapped before launching 476 // Populates |mappings| with all files that need to be mapped before launching
454 // a child process. 477 // a child process.
455 virtual void GetAdditionalMappedFilesForChildProcess( 478 virtual void GetAdditionalMappedFilesForChildProcess(
456 const CommandLine& command_line, 479 const CommandLine& command_line,
457 std::vector<FileDescriptorInfo>* mappings) {} 480 std::vector<FileDescriptorInfo>* mappings) {}
458 #endif 481 #endif
459 482
460 #if defined(OS_WIN) 483 #if defined(OS_WIN)
461 // Returns the name of the dll that contains cursors and other resources. 484 // Returns the name of the dll that contains cursors and other resources.
462 virtual const wchar_t* GetResourceDllName(); 485 virtual const wchar_t* GetResourceDllName();
463 #endif 486 #endif
464 487
465 #if defined(USE_NSS) 488 #if defined(USE_NSS)
466 // Return a delegate to authenticate and unlock |module|. 489 // Return a delegate to authenticate and unlock |module|.
467 // This is called on a worker thread. 490 // This is called on a worker thread.
468 virtual 491 virtual
469 crypto::CryptoModuleBlockingPasswordDelegate* GetCryptoPasswordDelegate( 492 crypto::CryptoModuleBlockingPasswordDelegate* GetCryptoPasswordDelegate(
470 const GURL& url); 493 const GURL& url);
471 #endif 494 #endif
472 }; 495 };
473 496
474 } // namespace content 497 } // namespace content
475 498
476 #endif // CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_ 499 #endif // CONTENT_PUBLIC_BROWSER_CONTENT_BROWSER_CLIENT_H_
OLDNEW
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_udp_socket.h ('k') | content/public/browser/content_browser_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698