??????в????
?????????????????????в???????????????chromium?е?????????????в??????25%?????????о??????????????????в????????????????????????????????????????????????????gtest??google mock??
????????????
???????????????????automation????chromium/src/chrome/test/???棬???????????????????????????????????????ENABLE_AUTOMATION???б??????????????????????????UI??????????????????chrome????????????????????????view????????????????????????????????????У?automation??????????????????и?????????chromium?е???????????????????C++?????????????????????????????·???????У?
????automation_proxy.h/.cc??
???????????????????????????automation_provider.h/.cc???????????????????????????????????????ipc??????
????browser_proxy.h/.cc:
????browser???????????????browser??automation_provider???н?????????chrome?????????????????tab???????
????tab_proxy.h/.cc:
????tab????????????tab??provider???н?????????????????tab????js????
????automation_json_request.h/.cc:
????Json??????????????????????Json?????????
????window_proxy.h/.cc??
?????????????window????????
?????????????????????????????????????У????У?
?????????????
????chrome_frame_project??chrome frame??????????????棻
????browser_project??chrome??????????????
????????????????У?
????test_support_ui_project??
???????ЩUI?????????????????????????????????????????????????????????????
????realibility_test_project:
???????test_support_ui?е???????????????chrome??????????????????????????crash???????????
????????????:
????pyautolib_project??
????chrome????pythonUI?????????uitest??C++????python????????У?
????webdriver_project/chromedriver_project:
????????????????????????selenium??webdriver???
????????????????ò???????????й??????
????breakpad??????
????crash??????????????????????????????????????г????crash????dump???????????????
????IAccessible??????
??????????????views???з??IAccessible????????????н??????????????????????MASS???????????????????????????????????????UI????
????memory_watch??
????chrome?е????????С?????
????IE&Chrome???????????
????IE??Chrome??????????????????????????????????У?
????IE??
??????????Ole??Com????????????(???????????90??????????)??IPC?????淽????(???ü?????????)????????MSAA???μ?UIA????????QTP????windows??????Щ??????????selenium??ie driver???????????????IE????????
????????????IE??????windows???????????????????????????IE??????????????????????hook?????
????Chrome:
????chrome???????????????磨ò??32???????autolib????????????????chrome?????????????????????pyd?????????????ID??????????????chrome????????????channal????????????????湲????????????????С?
?????μ?chrome?????webdriver?????????????????????????chromedriver.exe??chrome??佨?????socket???????????????????selenium?????chromedriver.exe?????web???????·????session???????????壬??selenium????????web????????????
????chrome&chromedriver?????session??ο???https://code.google.com/p/chromium/codesearch#chromium/src/chrome/test/webdriver/webdriver_session.h&sq=package:chromium&type=cs
???????selenium?????????chromedriver.exe??????????????????socket?????????????????IE???hook??????????????????????????????湲???????????????????chromedriver.exe???session??????