   }
 
   func reloadFromOrigin() {
+    progress.setProgress(0.3)
     self.reload()
   }
 

    super.loadRequest(request)
  }

  func kvoBroadcast(kvos: [KVOStrings]? = nil) {
    if let _kvos = kvos {
      for item in _kvos {

  func webViewDidFinishLoad(webView: UIWebView) {
    assert(NSThread.isMainThread())

    guard let parent = parent else { return }
    let readyState = parent.stringByEvaluatingJavaScriptFromString("document.readyState")?.lowercaseString

    //print("readyState:\(readyState)")

    parent.title = webView.stringByEvaluatingJavaScriptFromString("document.title") ?? ""
    if let item = parent.backForwardList.currentItem {
      item.title = parent.title
    }

    if let scrapedUrl = webView.stringByEvaluatingJavaScriptFromString("window.location.href") {
      if !parent.progress.pathContainsCompleted(scrapedUrl) {
        parent.URL = NSURL(string: scrapedUrl)
        if let item = parent.backForwardList.currentItem {
          item.URL = parent.URL ?? item.URL
        }
      }
    }

    parent.progress.webViewDidFinishLoad(documentReadyState: readyState)

    parent.kvoBroadcast()
  }

  func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
