webview: will-navigate and page-favicon-set navigation events

This commit is contained in:
deepak1556 2015-04-18 01:25:31 +05:30
parent c424d0e9f3
commit 9b585458c1
9 changed files with 72 additions and 3 deletions

View file

@ -18,6 +18,7 @@ WEB_VIEW_EVENTS =
'crashed': []
'destroyed': []
'page-title-set': ['title', 'explicitSet']
'page-favicon-set': ['favicons']
dispatchEvent = (webView, event, args...) ->
throw new Error("Unkown event #{event}") unless WEB_VIEW_EVENTS[event]?

View file

@ -154,6 +154,14 @@ class SrcAttribute extends WebViewAttribute
not @.getValue()
return
domEvent = new Event('will-navigate')
domEvent['url'] = @getValue()
domEvent.cancelable = true
self = @
domEvent.preventDefault = () ->
self.setValueIgnoreMutation ''
@webViewImpl.webviewNode.dispatchEvent domEvent
unless @webViewImpl.guestInstanceId?
if @webViewImpl.beforeFirstNavigation
@webViewImpl.beforeFirstNavigation = false
@ -161,9 +169,10 @@ class SrcAttribute extends WebViewAttribute
return
# Navigate to |this.src|.
httpreferrer = @webViewImpl.attributes[webViewConstants.ATTRIBUTE_HTTPREFERRER].getValue()
urlOptions = if httpreferrer then {httpreferrer} else {}
remote.getGuestWebContents(@webViewImpl.guestInstanceId).loadUrl @getValue(), urlOptions
if @getValue()
httpreferrer = @webViewImpl.attributes[webViewConstants.ATTRIBUTE_HTTPREFERRER].getValue()
urlOptions = if httpreferrer then {httpreferrer} else {}
remote.getGuestWebContents(@webViewImpl.guestInstanceId).loadUrl @getValue(), urlOptions
# Attribute specifies HTTP referrer.
class HttpReferrerAttribute extends WebViewAttribute