webkit to Chromium/load/rtsp/dns
a.webkit to chromium to webkit
ResourceLoaderAndroid to chromium// for file
 1.ResourceLoaderAndroid::start
 2.WebUrlLoader::start (convert "ResourceRequest" to "WebRequest")
 3.WebUrlLoaderClient::start
 4.WebRequest::start
 5.URLRequest::start()//chromium
 6.URLRequest::StartJob(URLRequestJobManager::CreateJob)//create different job
 //URLRequest::StartInternal() for 4.0
 7.job.start()//depending on defferent job.
 8.URLRequestFileJob::Start()//PostTask(FROM_HERE, NewRunnableMethod(this, &URLRequestFileJob::DidResolve)
 9.URLRequestFileJob::DidResolve
 10.NotifyHeadersComplete()
 11.URLRequest::ResponseStarted(URLRequest ){delegate_->OnResponseStarted(this);}
 12.WebRequest::OnResponseStarted(URLRequest);//create WebResponse.
 //pass URLRequest to webkit, so get the type
13.WebUrlLoaderClient::didReceiveResponse.
b. click to load
TitleBarXlarge->onClick
 TitleBarBase->onAction
 Controller->handleNewIntent
 IntentHandler->onNewIntent
 Controller->openTabAndShow
c rtsp protocal to other application
PolicyChecker::continueAfterNavigationPolicy
 FrameLoaderClientAndroid::canHandleRequest
 WebFrame::canHandleRequest
 BrowserFrame::handleUrl
 CallbackProxy::shouldOverrideUrlLoading
 CallbackProxy::handlemessage:OVERRIDE_URL
 CallbackProxy::uiOverrideUrlLoading
 WebViewClient::shouldOverrideUrlLoading
 Controller::shouldOverrideUrlLoading
 UrlHandler::shouldOverrideUrlLoading
d. chromium's job
  { "http", URLRequestHttpJob::Factory },
   { "https", URLRequestHttpJob::Factory },
   { "file", URLRequestFileJob::Factory },
 #ifndef ANDROID
   { "ftp", URLRequestFtpJob::Factory },
   { "about", URLRequestAboutJob::Factory },
   { "data", URLRequestDataJob::Factory },
e. apache dns
Socket()//httpconnection
 tryAllAddresses() //InetAddress.getAllByName
 startupSocket
 impl.connect(dstAddress, dstPort);
 ?impl
 PlainSocketImpl
 
 PlainSocketImpl.connect
 socksConnect
 socksRequestConnection
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号