Esempio n. 1
0
        private void Webview_NavigationStarting(IWebViewControl sender, WebViewControlNavigationStartingEventArgs e)
        {
            var args = new NavigatingEventArgs(e.Uri);

            Navigating?.Invoke(this, args);
            e.Cancel = args.Cancel;
        }
        private void OnNavigationCompleted(IWebViewControl sender, Windows.Web.UI.WebViewControlNavigationCompletedEventArgs args)
        {
            // When Source set to null or navigating to stream/string, we navigate to "about:blank" internally.
            if (NavigatingToAboutBlank)
            {
                Verify.Implies(NavigatingToAboutBlank, Source == null || Source == WebViewDefaults.AboutBlankUri);

                // Make sure we pass null in the event args
                var a = new WebViewControlNavigationCompletedEventArgs(args, null);
                OnNavigationCompleted(a);
            }
            else
            {
                OnNavigationCompleted(args);
            }
        }
 private void OnLostFocus(IWebViewControl sender, object args) => OnLostFocus(args);
 private void OnLongRunningScriptDetected(IWebViewControl sender, Windows.Web.UI.WebViewControlLongRunningScriptDetectedEventArgs args) => OnLongRunningScriptDetected(args);
 private void OnFrameNavigationStarting(IWebViewControl sender, Windows.Web.UI.WebViewControlNavigationStartingEventArgs args) => OnFrameNavigationStarting(args);
 private void OnFrameNavigationCompleted(IWebViewControl sender, Windows.Web.UI.WebViewControlNavigationCompletedEventArgs args)
 {
     // TODO: Need to handle frame navigation like NavigationCompleted?
     OnFrameNavigationCompleted(args);
 }
 private void OnFrameDOMContentLoaded(IWebViewControl sender, Windows.Web.UI.WebViewControlDOMContentLoadedEventArgs args) => OnFrameDOMContentLoaded(args);
 private void OnFrameContentLoading(IWebViewControl sender, Windows.Web.UI.WebViewControlContentLoadingEventArgs args) => OnFrameContentLoading(args);
 private void OnUnviewableContentIdentified(IWebViewControl sender, Windows.Web.UI.WebViewControlUnviewableContentIdentifiedEventArgs args) => OnUnviewableContentIdentified(args);
 private void OnUnsupportedUriSchemeIdentified(IWebViewControl sender, Windows.Web.UI.WebViewControlUnsupportedUriSchemeIdentifiedEventArgs args) => OnUnsupportedUriSchemeIdentified(args);
 private void OnUnsafeContentWarningDisplaying(IWebViewControl sender, object args) => OnUnsafeContentWarningDisplaying(args);
 private void OnPermissionRequested(IWebViewControl sender, Windows.Web.UI.WebViewControlPermissionRequestedEventArgs args) => OnPermissionRequested(args);
 private void OnOnScriptNotify(IWebViewControl sender, Windows.Web.UI.WebViewControlScriptNotifyEventArgs args) => OnScriptNotify(args);
 private void OnNewWindowRequested(IWebViewControl sender, Windows.Web.UI.WebViewControlNewWindowRequestedEventArgs args) => OnNewWindowRequested(args);
 private void OnWebResourceRequested(IWebViewControl sender, windows.Web.UI.WebViewControlWebResourceRequestedEventArgs args) => OnWebResourceRequested(args);
 private void OnContainsFullScreenElementChanged(IWebViewControl sender, object args) => OnContainsFullScreenElementChanged(args);
        private void OnNavigationStarting(IWebViewControl sender, Windows.Web.UI.WebViewControlNavigationStartingEventArgs args)
        {
            var newNavigationRequested = false;
            var cancelRequested        = false;

            try
            {
                var url = args.Uri;

                // The NavigatingToAboutBlank property indicates whether we are navigating to "about:blank" as a result of navigating
                // to a null source, or stream/string navigation.
                // We set the NavigatingToAboutBlank bit to true in the void Navigate(Uri) method. When the above conditions are true,
                // the NavigatingToAboutBlank is true and the source must be "about:blank"
                if (NavigatingToAboutBlank && url != null && url != new Uri("about:blank"))
                {
                    NavigatingToAboutBlank = false;
                }

                if (!NavigatingToAboutBlank && !Security.CallerHasWebPermission(url))
                {
                    cancelRequested = true;
                }
                else
                {
                    // When Source is set to null or navigating to stream/string, we navigate to "about:blank" internally.
                    // Make sure we pass null in the event args
                    if (NavigatingToAboutBlank)
                    {
                        url = null;
                    }

                    var a = new WebViewControlNavigationStartingEventArgs(args, url);

                    // Launching a navigation from the NavigationStarting event handler causes re-entrancy
                    var lastNavigation = LastNavigation;

                    // Fire navigating event
                    OnNavigationStarting(a);

                    if (LastNavigation != lastNavigation)
                    {
                        newNavigationRequested = true;
                    }

                    cancelRequested = a.Cancel;
                }
            }

            // Disable to suppress FXCop warning since we really do want to catch all exceptions
#pragma warning disable 6502
            catch
            {
                cancelRequested = true;
            }
#pragma warning restore 6502
            finally
            {
                if (cancelRequested && !newNavigationRequested)
                {
                    CleanInternalState();
                }

                if (cancelRequested || newNavigationRequested)
                {
                    args.Cancel = true;
                }
            }
        }
Esempio n. 18
0
 private async void Webview_ScriptNotify(IWebViewControl sender, WebViewControlScriptNotifyEventArgs e)
 {
     await bridge.HandleScriptCall(e.Value);
 }