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
- DataGridViewRowHeightInfoNeededEventArgs.cs
- PageHandlerFactory.cs
- VectorAnimationUsingKeyFrames.cs
- Color.cs
- Errors.cs
- XamlSerializerUtil.cs
- SingleTagSectionHandler.cs
- PtsHost.cs
- ParseNumbers.cs
- DataSysAttribute.cs
- OlePropertyStructs.cs
- DynamicMethod.cs
- wgx_exports.cs
- UnsafeNetInfoNativeMethods.cs
- SerialPinChanges.cs
- SlipBehavior.cs
- ListViewContainer.cs
- IntPtr.cs
- ValidationSummary.cs
- FloatAverageAggregationOperator.cs
- ProtocolReflector.cs
- Figure.cs
- XmlUnspecifiedAttribute.cs
- Action.cs
- SystemResourceHost.cs
- MergeFailedEvent.cs
- NetNamedPipeBindingCollectionElement.cs
- WebPartChrome.cs
- WebContext.cs
- SpecialFolderEnumConverter.cs
- FixedStringLookup.cs
- NavigationProgressEventArgs.cs
- TextTrailingCharacterEllipsis.cs
- NativeMethods.cs
- SQLMembershipProvider.cs
- XamlTreeBuilder.cs
- ByteRangeDownloader.cs
- BufferedStream.cs
- Pair.cs
- WsdlInspector.cs
- CodeNamespace.cs
- TagPrefixInfo.cs
- Socket.cs
- DataObjectEventArgs.cs
- Rules.cs
- ScalarConstant.cs
- TextServicesPropertyRanges.cs
- InlineUIContainer.cs
- Header.cs
- ScrollEvent.cs
- DeviceContext2.cs
- FontFamily.cs
- Canvas.cs
- SolidColorBrush.cs
- AssociationTypeEmitter.cs
- TdsParserHelperClasses.cs
- EventItfInfo.cs
- CalendarDay.cs
- SortDescription.cs
- SpeechEvent.cs
- PathFigureCollection.cs
- SizeChangedEventArgs.cs
- WorkflowViewElement.cs
- SerializationSectionGroup.cs
- EncryptedData.cs
- Schema.cs
- InstanceDescriptor.cs
- documentsequencetextcontainer.cs
- SlotInfo.cs
- HostedElements.cs
- PolicyFactory.cs
- UmAlQuraCalendar.cs
- ProfileServiceManager.cs
- DynamicILGenerator.cs
- SchemaContext.cs
- ReaderContextStackData.cs
- IntSecurity.cs
- StructuredTypeEmitter.cs
- QueryCursorEventArgs.cs
- CssStyleCollection.cs
- ConsumerConnectionPointCollection.cs
- CommandBinding.cs
- ResourceManager.cs
- ComponentDispatcher.cs
- ArraySegment.cs
- ByteConverter.cs
- PtsPage.cs
- ZoneLinkButton.cs
- NullExtension.cs
- XamlPoint3DCollectionSerializer.cs
- HttpDictionary.cs
- XmlDocumentType.cs
- DelimitedListTraceListener.cs
- _NativeSSPI.cs
- DelegateArgumentValue.cs
- ReadOnlyDictionary.cs
- ExpandableObjectConverter.cs
- TitleStyle.cs
- Utilities.cs
- InvalidProgramException.cs