Chrome Browser Private Stuff – Part 1

After i read about the Chrome private stuff , i decided to do some research and understand few of the private features
in chrome.

http://adblockplus.org/blog/google-chrome-and-pre-installed-web-apps
http://codesearch.google.com/#OAMlx_jo-ck/src/chrome/browser/extensions/extension_webstore_private_api.cc&l=81

Most of the private implementations are coded in filename named with "private". If we do a simple search for filename
that has "private" in it. We get the following list.

D:\src\chromium\src>D:\tools\UnxUtils\usr\local\wbin\find.exe . -name "*private*.*" -print
.\chrome\browser\extensions\extension_chrome_auth_private_api.cc
.\chrome\browser\extensions\extension_chrome_auth_private_api.h
.\chrome\browser\extensions\extension_chrome_auth_private_apitest.cc
.\chrome\browser\extensions\extension_file_browser_private_api.cc
.\chrome\browser\extensions\extension_file_browser_private_api.h
.\chrome\browser\extensions\extension_file_browser_private_apitest.cc
.\chrome\browser\extensions\extension_info_private_apitest_chromeos.cc
.\chrome\browser\extensions\extension_info_private_api_chromeos.cc
.\chrome\browser\extensions\extension_info_private_api_chromeos.h
.\chrome\browser\extensions\extension_mediaplayer_private_api.cc
.\chrome\browser\extensions\extension_mediaplayer_private_api.h
.\chrome\browser\extensions\extension_webstore_private_api.cc
.\chrome\browser\extensions\extension_webstore_private_api.h
.\chrome\browser\extensions\extension_webstore_private_apitest.cc
.\chrome\browser\extensions\extension_web_socket_proxy_private_api.cc
.\chrome\browser\extensions\extension_web_socket_proxy_private_api.h
.\chrome\browser\extensions\extension_web_socket_proxy_private_apitest.cc
.\chrome\browser\ui\cocoa\browser_window_controller_private.h
.\chrome\browser\ui\cocoa\browser_window_controller_private.mm
.\chrome\renderer\extensions\file_browser_private_bindings.cc
.\chrome\renderer\extensions\file_browser_private_bindings.h
.\chrome\renderer\resources\extensions\file_browser_private.js
.\chrome_frame\cfproxy_private.h
.\chrome_frame\html_private_window_impl.h
.\chrome_frame\urlmon_url_request_private.h
.\crypto\ec_private_key.h
.\crypto\ec_private_key_nss.cc
.\crypto\ec_private_key_openssl.cc
.\crypto\ec_private_key_unittest.cc
.\crypto\rsa_private_key.cc
.\crypto\rsa_private_key.h
.\crypto\rsa_private_key_mac.cc
.\crypto\rsa_private_key_nss.cc
.\crypto\rsa_private_key_nss_unittest.cc
.\crypto\rsa_private_key_openssl.cc
.\crypto\rsa_private_key_unittest.cc
.\crypto\rsa_private_key_win.cc
.\native_client\scons-out\nacl_irt-x86-32\obj\src\untrusted\irt\irt_private_pthread.o
.\native_client\scons-out\nacl_irt-x86-32\obj\src\untrusted\irt\irt_private_tls.o
.\native_client\scons-out\nacl_irt-x86-32\obj\src\untrusted\irt\sys_private.o
.\native_client\scons-out\nacl_irt-x86-64\obj\src\untrusted\irt\irt_private_pthread.o
.\native_client\scons-out\nacl_irt-x86-64\obj\src\untrusted\irt\irt_private_tls.o
.\native_client\scons-out\nacl_irt-x86-64\obj\src\untrusted\irt\sys_private.o
.\native_client\src\untrusted\irt\irt_private.h
.\native_client\src\untrusted\irt\irt_private_pthread.c
.\native_client\src\untrusted\irt\irt_private_tls.c
.\native_client\src\untrusted\nacl\dyncode_private.c
.\native_client\src\untrusted\nacl\gc_hooks_private.c
.\native_client\src\untrusted\nacl\nacl_dynacode_private_lib.props
.\native_client\src\untrusted\nacl\nacl_dynacode_private_lib.targets
.\native_client\src\untrusted\nacl\nacl_dynacode_private_lib.vcxproj
.\native_client\src\untrusted\nacl\nacl_dynacode_private_lib.vcxproj.filters
.\native_client\src\untrusted\nacl\nacl_dynacode_private_lib.xml
.\native_client\src\untrusted\nacl\sbrk_private.c
.\native_client\src\untrusted\nacl\sys_private.c
.\native_client\src\untrusted\pthread\nc_init_private.c
.\native_client\src\untrusted\pthread\pthreadb_private_lib.props
.\native_client\src\untrusted\pthread\pthreadb_private_lib.targets
.\native_client\src\untrusted\pthread\pthreadb_private_lib.vcxproj
.\native_client\src\untrusted\pthread\pthreadb_private_lib.vcxproj.filters
.\native_client\src\untrusted\pthread\pthreadb_private_lib.xml
.\net\base\openssl_memory_private_key_store.cc
.\net\base\openssl_private_key_store.h
.\net\base\openssl_private_key_store_android.cc
.\ppapi\api\private\ppb_nacl_private.idl
.\ppapi\api\private\ppb_net_address_private.idl
.\ppapi\api\private\ppb_proxy_private.idl
.\ppapi\api\private\ppb_tcp_socket_private.idl
.\ppapi\api\private\ppb_udp_socket_private.idl
.\ppapi\c\private\ppb_gpu_blacklist_private.h
.\ppapi\c\private\ppb_instance_private.h
.\ppapi\c\private\ppb_nacl_private.h
.\ppapi\c\private\ppb_net_address_private.h
.\ppapi\c\private\ppb_proxy_private.h
.\ppapi\c\private\ppb_tcp_socket_private.h
.\ppapi\c\private\ppb_udp_socket_private.h
.\ppapi\c\private\ppb_uma_private.h
.\ppapi\c\private\ppp_instance_private.h
.\ppapi\cpp\private\instance_private.cc
.\ppapi\cpp\private\instance_private.h
.\ppapi\cpp\private\net_address_private.cc
.\ppapi\cpp\private\net_address_private.h
.\ppapi\cpp\private\tcp_socket_private.cc
.\ppapi\cpp\private\tcp_socket_private.h
.\ppapi\cpp\private\udp_socket_private.cc
.\ppapi\cpp\private\udp_socket_private.h
.\ppapi\cpp\private\var_private.cc
.\ppapi\cpp\private\var_private.h
.\ppapi\proxy\ppb_tcp_socket_private_proxy.cc
.\ppapi\proxy\ppb_tcp_socket_private_proxy.h
.\ppapi\proxy\ppb_udp_socket_private_proxy.cc
.\ppapi\proxy\ppb_udp_socket_private_proxy.h
.\ppapi\proxy\ppp_instance_private_proxy.cc
.\ppapi\proxy\ppp_instance_private_proxy.h
.\ppapi\proxy\ppp_instance_private_proxy_unittest.cc
.\ppapi\shared_impl\private\net_address_private_impl.cc
.\ppapi\shared_impl\private\net_address_private_impl.h
.\ppapi\thunk\interfaces_ppb_private.h
.\ppapi\thunk\ppb_tcp_socket_private_api.h
.\ppapi\thunk\ppb_tcp_socket_private_thunk.cc
.\ppapi\thunk\ppb_udp_socket_private_api.h
.\ppapi\thunk\ppb_udp_socket_private_thunk.cc
.\third_party\bzip2\bzlib_private.h
.\third_party\harfbuzz\src\harfbuzz-buffer-private.h
.\third_party\harfbuzz\src\harfbuzz-gdef-private.h
.\third_party\harfbuzz\src\harfbuzz-gpos-private.h
.\third_party\harfbuzz\src\harfbuzz-gsub-private.h
.\third_party\harfbuzz\src\harfbuzz-open-private.h
.\third_party\harfbuzz\src\harfbuzz-shaper-private.h
.\third_party\harfbuzz\src\harfbuzz-stream-private.h
.\third_party\harfbuzz-ng\src\hb-blob-private.h
.\third_party\harfbuzz-ng\src\hb-buffer-private.hh
.\third_party\harfbuzz-ng\src\hb-font-private.h
.\third_party\harfbuzz-ng\src\hb-object-private.h
.\third_party\harfbuzz-ng\src\hb-open-file-private.hh
.\third_party\harfbuzz-ng\src\hb-open-type-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-head-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-common-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-gdef-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-gpos-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-gsub-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-gsubgpos-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-layout-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-map-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-shape-complex-private.hh
.\third_party\harfbuzz-ng\src\hb-ot-shape-private.hh
.\third_party\harfbuzz-ng\src\hb-private.h
.\third_party\harfbuzz-ng\src\hb-unicode-private.h
.\third_party\icu\source\tools\tzcode\private.h
.\third_party\mesa\MesaLib\src\gallium\auxiliary\draw\draw_private.h
.\third_party\mesa\MesaLib\src\gallium\drivers\i915\i915_debug_private.h
.\third_party\mesa\MesaLib\src\gallium\drivers\svga\svga_draw_private.h
.\third_party\mesa\MesaLib\src\gallium\drivers\svga\svga_swtnl_private.h
.\third_party\npapi\bindings\npapi_extensions_private.h
.\third_party\WebKit\Source\WebKit\efl\ewk\ewk_private.h
.\third_party\WebKit\Source\WebKit\efl\ewk\ewk_tiled_private.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitdownloadprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitgeolocationpolicydecisionprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitglobalsprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkithittestresultprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitnetworkrequestprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitnetworkresponseprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitsecurityoriginprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitviewportattributesprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebbackforwardlistprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebdatasourceprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebframeprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebhistoryitemprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebinspectorprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebnavigationactionprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebplugindatabaseprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebpluginprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebpolicydecisionprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebresourceprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebsettingsprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebviewprivate.h
.\third_party\WebKit\Source\WebKit\gtk\webkit\webkitwebwindowfeaturesprivate.h
.\third_party\WebKit\Source\WebKit\qt\declarative\private\private.pro
.\third_party\WebKit\Source\WebKit2\UIProcess\API\qt\qquickwebviewprivateextension.cpp
.\third_party\WebKit\Source\WebKit2\UIProcess\API\qt\qquickwebviewprivateextension_p.h
.\third_party\webrtc\modules\audio_processing\ns\windows_private.h
.\third_party\webrtc\modules\rtp_rtcp\source\fec_private_tables.h
.\third_party\webrtc\modules\video_processing\main\source\color_enhancement_private.h
.\views\widget\native_widget_private.h
.\webkit\plugins\npapi\coregraphics_private_symbols_mac.h
.\webkit\plugins\npapi\test\plugin_private_test.cc
.\webkit\plugins\npapi\test\plugin_private_test.h
.\webkit\plugins\ppapi\ppb_gpu_blacklist_private_impl.cc
.\webkit\plugins\ppapi\ppb_gpu_blacklist_private_impl.h
.\webkit\plugins\ppapi\ppb_uma_private_impl.cc
.\webkit\plugins\ppapi\ppb_uma_private_impl.h

We will do some research and try to understand what is happening in each and every feature.

Advertisements
This entry was posted in Chrome and tagged , , , , . Bookmark the permalink.

2 Responses to Chrome Browser Private Stuff – Part 1

  1. Jake Khakis says:

    In many projects “private” just means “not to be used by modules outside of this one”. This has nothing to do with hidden functionality of software. This post is completely pointless.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s