Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / TrustUi / MS / Internal / documents / Application / NavigationHelper.cs / 1 / NavigationHelper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description:
// NavigationHelper is an internal utility class for Mongoose to deal
// with Uri navigations.
//
// History:
// 11/10/05 - [....] created
//
//---------------------------------------------------------------------------
using System;
using System.Security;
using System.Windows.Interop;
using System.Windows.TrustUI;
using MS.Internal;
using MS.Internal.PresentationUI;
namespace MS.Internal.Documents.Application
{
///
/// Helper class for handling browser navigations.
///
internal static class NavigationHelper
{
/////
///// Invokes a navigation to a new document
/////
///
/// Critical:
/// - uses delegate from framework
/// - uses Document.Uri
///
[SecurityCritical]
internal static void NavigateToDocument(Document document)
{
Trace.SafeWrite(
Trace.File,
"Attempting to navigate to new document {0}.",
document.Uri);
Invariant.Assert(
_navigate != null,
"Navigation object has not been instantiated.");
Invariant.Assert(
_navigate.Value != null,
"Navigation delegate has not been assigned.");
Invariant.Assert(
document != null,
"Target document has not been assigned.");
_navigate.Value(new SecurityCriticalData(document.Uri));
}
/////
///// Invokes a top-level browserNavigation action to the specified Uri.
/////
/////
///// Critical:
///// - causes a navigation action to occur to an external uri
///// - passes the Uri to another method
/////
[SecurityCritical]
internal static void NavigateToExternalUri(Uri uri)
{
Trace.SafeWrite(
Trace.File,
"Attempting to navigate to external Uri {0}.",
uri);
Invariant.Assert(
_navigate != null,
"Navigation object has not been instantiated.");
Invariant.Assert(
_navigate.Value != null,
"Navigation delegate has not been assigned.");
Invariant.Assert(
uri != null,
"Target uri has not been assigned.");
_navigate.Value(new SecurityCriticalData(uri));
}
///
/// A delegate that will navigate the root browser window.
///
///
/// Critical:
/// - sets _navigate which should only be BrowserInteropHelper.Navigate
///
///
/// If we are going to add more functionality a IBrowserService interface
/// of some type should be defined and set vs many delegates.
///
[FriendAccessAllowed]
internal static NavigateDelegate Navigate
{
[SecurityCritical]
get
{
if (_navigate != null)
{
return _navigate.Value;
}
return null;
}
[SecurityCritical]
set
{
_navigate = new SecurityCriticalDataClass(value);
}
}
internal delegate void NavigateDelegate(SecurityCriticalData uri);
private static SecurityCriticalDataClass _navigate;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FlowLayoutSettings.cs
- ModulesEntry.cs
- Signature.cs
- XamlWriter.cs
- TypeBuilderInstantiation.cs
- SlotInfo.cs
- TextEndOfParagraph.cs
- MenuItem.cs
- AndCondition.cs
- Stroke2.cs
- BaseParaClient.cs
- Hyperlink.cs
- updatecommandorderer.cs
- IPAddressCollection.cs
- IgnoreFlushAndCloseStream.cs
- Visual3D.cs
- PageVisual.cs
- ProfileProvider.cs
- XmlSiteMapProvider.cs
- XappLauncher.cs
- CodeNamespace.cs
- CapabilitiesAssignment.cs
- CryptoApi.cs
- PeekCompletedEventArgs.cs
- ApplicationInterop.cs
- RadioButtonPopupAdapter.cs
- QilScopedVisitor.cs
- ServicePoint.cs
- KoreanCalendar.cs
- ConnectionManagementElement.cs
- CustomAttributeSerializer.cs
- SlotInfo.cs
- EventSinkHelperWriter.cs
- UnknownBitmapDecoder.cs
- SelectionEditingBehavior.cs
- Helper.cs
- TargetParameterCountException.cs
- SqlFormatter.cs
- TreeViewCancelEvent.cs
- CompositeFontInfo.cs
- TypedDataSourceCodeGenerator.cs
- DataGridColumnFloatingHeader.cs
- SafeEventLogReadHandle.cs
- BypassElement.cs
- ToolStripLabel.cs
- HttpModulesSection.cs
- Keyboard.cs
- TextEditorTyping.cs
- CommandPlan.cs
- ResourceDisplayNameAttribute.cs
- DbConnectionOptions.cs
- CornerRadiusConverter.cs
- SystemShuttingDownException.cs
- BinHexDecoder.cs
- EntityDataSourceViewSchema.cs
- DataListCommandEventArgs.cs
- ConnectionManagementElement.cs
- AddingNewEventArgs.cs
- FormViewRow.cs
- Converter.cs
- Polyline.cs
- CodeBinaryOperatorExpression.cs
- PrimaryKeyTypeConverter.cs
- InternalControlCollection.cs
- TimeSpan.cs
- unitconverter.cs
- WebRequestModuleElementCollection.cs
- DataGridViewColumnEventArgs.cs
- InputLanguageCollection.cs
- ProcessModuleDesigner.cs
- ConstructorNeedsTagAttribute.cs
- DataGridViewSortCompareEventArgs.cs
- CopyOnWriteList.cs
- CdpEqualityComparer.cs
- RequestResizeEvent.cs
- ProfileManager.cs
- RequestQueue.cs
- DataGridTextBox.cs
- ProfileGroupSettingsCollection.cs
- ConnectionsZoneDesigner.cs
- SQLBinaryStorage.cs
- DataPagerField.cs
- SchemaTableColumn.cs
- StringValueSerializer.cs
- HtmlImage.cs
- StrongName.cs
- FunctionNode.cs
- basenumberconverter.cs
- WindowsFormsHelpers.cs
- TraceContext.cs
- RemotingSurrogateSelector.cs
- URIFormatException.cs
- ScriptResourceHandler.cs
- TileModeValidation.cs
- DataGridViewRowsRemovedEventArgs.cs
- GeneralTransform3DTo2DTo3D.cs
- DesignSurfaceEvent.cs
- ConnectionStringsExpressionBuilder.cs
- Size3DValueSerializer.cs
- HttpConfigurationSystem.cs