分享

chromium相关问题集合

 win2zhang 2014-12-28

  • Q: 如何替换chromium浏览器中的图标?

A: 替换src\chrome\app\theme\chromium下面相关的图片;


  • Q: chrome应用可以分为哪些类型?

 A:

    case Manifest::TYPE_EXTENSION:

    case Manifest::TYPE_THEME:
    case Manifest::TYPE_USER_SCRIPT:
    case Manifest::TYPE_HOSTED_APP:
    case Manifest::TYPE_LEGACY_PACKAGED_APP:
    case Manifest::TYPE_PLATFORM_APP:

    case Manifest::TYPE_SHARED_MODULE:


  • Q: extension是可以通过哪些发方式来加载?

A:

  // What an extension was loaded from.
  // NOTE: These values are stored as integers in the preferences and used
  // in histograms so don't remove or reorder existing items.  Just append
  // to the end.
  enum Location {
    INVALID_LOCATION,
    INTERNAL,           // A crx file from the internal Extensions directory.
    EXTERNAL_PREF,      // A crx file from an external directory (via prefs).
    EXTERNAL_REGISTRY,  // A crx file from an external directory (via eg the
                        // registry on Windows).
    UNPACKED,           // From loading an unpacked extension from the
                        // extensions settings page.
    COMPONENT,          // An integral component of Chrome itself, which
                        // happens to be implemented as an extension. We don't
                        // show these in the management UI.
    EXTERNAL_PREF_DOWNLOAD,    // A crx file from an external directory (via
                               // prefs), installed from an update URL.
    EXTERNAL_POLICY_DOWNLOAD,  // A crx file from an external directory (via
                               // admin policies), installed from an update URL.
    COMMAND_LINE,       // --load-extension.
    EXTERNAL_POLICY,    // A crx file from an external directory (via admin
                        // policies), cached locally and installed from the
                        // cache.
    EXTERNAL_COMPONENT, // Similar to COMPONENT in that it's considered an
                        // internal implementation detail of chrome, but
                        // installed from an update URL like the *DOWNLOAD ones.


    NUM_LOCATIONS
  };



An extension that's installed automatically is known as an external extension. Google Chrome supports two ways of installing external extensions:

Using a preferences JSON file (Mac OS X and Linux only)
Using the Windows registry (Windows only)src/chrome/common/extensions/docs/templates/articles/external_extensions.html

  • Q: 以什么理由来通知系统我们需要通过本地安装呢?
A:
  enum OffStoreInstallAllowReason {
    OffStoreInstallDisallowed,
    OffStoreInstallAllowedFromSettingsPage,
    OffStoreInstallAllowedBecausePref,
    OffStoreInstallAllowedInTest,
    NumOffStoreInstallAllowReasons

  };


  • 扩展默认安装示例
A: src\chrome\browser\extensions\api\management\management_apitest.cc:102行
  1. IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, Basics) {  
  2.   LoadExtensions();  
  3.   
  4.   base::FilePath basedir = test_data_dir_.AppendASCII("management");  
  5.   InstallNamedExtension(basedir, "internal_extension", Manifest::INTERNAL);  
  6.   InstallNamedExtension(basedir, "external_extension",  
  7.                         Manifest::EXTERNAL_PREF);  
  8.   InstallNamedExtension(basedir, "admin_extension",  
  9.                         Manifest::EXTERNAL_POLICY_DOWNLOAD);  
  10.   
  11.   ASSERT_TRUE(RunExtensionSubtest("management/test", "basics.html"));  
  12. }  

  • Q: 如何编译chromium?

A: 最新的chromium(2014-03-18)已经不再支持单独的vs编译方式,需要用nanja或者nanja+vs的方式来编译,具体参考这里


  • Q: chromium代码由于网络的原因很难下载源码,怎么办?

A: 可以从网上下载别人编译好的放到自己的本地,可以从这里下载http://pan.baidu.com/s/1kTofGc3,请仔细看说明后在动手。但代码目录一定要和原编译人的一样,也可以按如下操作解决,说白了就是vs、sdk等有些变量的路径查找不到。具体详细讨论看这里

http://code.google.com/p/chromium/issues/detail?id=353425

Delete depot_tools\win_toolchain and reinstal it (by running gclient runhooks) error  
wont happen in new partition.


  • Q:chromium release版本在那里看?

A: http://src./viewvc/chrome/releases和http://src./svn/releases/


  • Q: 如何开始学习chromium?
A: 请到这里http://chromium./ 和http://www./Home上开始学习。


  • Q:如何开始调试chromium?启动时默认的动作执行在是如何开始的?
A: src\chrome\browser\chrome_browser_main.cc:ChromeBrowserMainParts::PreMainMessageLoopRunImpl() :1094

  • window 平台cmd下能用什么命令看一个进程的父进程的PID?
A: process explorer

  • 在哪里可以了解到chromium设计的策略?
A: http://www./administrators/policy-list-3

  • 如何修改安装后第一次运行时显示的欢迎页面?
A: src\chrome\browser\resources\locale_settings.grd中搜索IDS_WELCOME_PAGE_URL,修改为自己的。

  • 如何给chromium添加默认的extension
具体参考这里

1. http://developer./extensions/external_extensions
2.  http://dev./administrators/pre-installed-extensions
3.  http://dev./administrators/configuring-other-preferences
4. http://open.chrome.360.cn/extension_dev/external_extensions.html
下载扩展的方法:http://blog.csdn.net/talking12391239/article/details/22877451
代码调试位置:


  • Q: 如何移除"缺少 Google API 密钥,因此 Chromium 的部分功能将无法使用"的提示?
A: src\chrome\browser\ui\startup\startup_browser_creator_impl.cc:StartupBrowserCreatorImpl::AddInfoBarsIfNecessary:900中移除GoogleApiKeysInfoBarDelegate::Create(InfoBarService::FromWebContents(
        browser->tab_strip_model()->GetActiveWebContents()));
  • chrome安装目录下各个dll文件的作用 
A: http://bbs.kafan.cn/thread-1439185-1-1.html

  • Chromium有那些主要功能模块?
A: 
base - 基础模块,放最基本的操作封装
ash - aura she'll
breakpad - 崩溃捕捉
chrome - 所有的功能都集中在这里,包含content
cryoto - 加密解密
nataive libary - 替代activex的技术
media - 音频解码
ipc - 进程间通信
jingle - p2p库
net - 网络通信组件
ui -----------

  • chrome安装目录下各个dll文件的作用
A:

chrome.dll:浏览器的内核文件,执行chrome几乎所有的功能;

blink_web.dll:

content.dll: 提供内核多进程的sandbox功能的模块,具体看http://www./developers/content-module

resources.pak:是chrome的资源文件,包括很多如chrome://开头的页面资源等

icudtl.dat:

nacl_irt_x86_32.nexe: Google Native Client相关插件

net.dll:网络模块

v8.dll:javascript解析引擎模块;

nacl_irt_x86_64.nexe:NACL模块,

mksnapshot.ia32.exe:

d3dcompiler_46.dll: 硬件加速匹配模块

blink_platform.dll

sync.dll:

skia.dll:

media.dll:

chrome_200_percent.pak: 高DPI资源,应该是theme资源

nacl64.exe: 难道可以直接运行window上的传统app?

cc.dll:

gpu.dll

webkit_storage_browser.dll

crnss.dll

ash.dll

ppapi_proxy.dll

icui18n.dll

base_win64.dll:base 64编解码库

chrome_100_percent.pak:普通DPI theme资源包

views.dll

base.dll

protoc.exe

policy_component.dll

ffmpegsumo.dll

gcm.dll

gfx.dll

keyboard_resources.pak:

wifi_component.dll:

ppapi_shared.dll

ppapi_shared_win64.dll

yasm.exe

translator.dll

ui_base.dll

libGLESv2.dll

app_list.dll

wtf.dll

message_center.dll

url_matcher.dll

gl_wrapper.dll

gles2_implementation.dll

aura.dll

compositor.dll

crssl.dll

crnspr.dll

metro_driver.dll

content_resources.pak

ipc_win64.dll

printing.dll

net_with_v8.dll

protobuf_lite.dll

base_prefs.dll

events.dll

ipc.dll

delegate_execute.exe

gin.dll

wm_core.dll

url_lib.dll

webkit_storage_common.dll

keyboard.dll

native_theme.dll

gfx_geometry.dll

ash_with_content.dll

wow_helper.exe

gesture_detection.dll

webkit_gpu.dll
webkit_compositor_bindings.dll

webview.dll

shell_dialogs.dll

webdata_common.dll

ppapi_host.dll

blink_heap.dll

chrome_elf.dll

libEGL.dll

webkit_common.dll

mojo_common_lib.dll

webkit_child.dll

shared_memory_support.dll

keyed_service_content.dll

blink_common.dll

browser_ui_views.dll

surface.dll

wtf_unittest_helpers.dll

libvpx_obj_int_extract.exe

mojo_system.dll

locales:


  • chromium中定义的url常量在什么地方?

A: src\chrome\common\url_constants.cc


A: 

1. http://blog.csdn.net/zero_lee/article/details/7896856

2. https://support.google.com/chrome/answer/2918032?hl=en&rd=1


  • 编译cef3时报错类型冲突,估计chromium也会遇到吧
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wtypes.h(501): error C2011: “_COAUTHIDENTITY”:“struct”类型重定义
2>          C:\Program Files (x86)\Windows Kits\8.0\Include\shared\wtypesbase.h(260) : 参见“_COAUTHIDENTITY”的声明
2>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\wtypes.h(512): error C2011: “_COAUTHINFO”:“struct”类型重定义
2>          C:\Program Files (x86)\Windows Kits\8.0\Include\shared\wtypesbase.h(271) : 参见“_COAUTHINFO”的声明

A: 进入C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include,重命名WTypes.h.


Q: chromium扩展中permissions是在哪里注册的?

A: 直接参考这个链接吧:http://blog.csdn.net/talking12391239/article/details/40374241


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多