Showing posts with label Internet Explorer. Show all posts
Showing posts with label Internet Explorer. Show all posts

Sunday, June 19, 2011

Display ads to Internet Explorer users only

Internet Explorer users are often the ones that care the less about using a good browser or about the web designer’s development time. If you want to give them extra ads to punish them for using that browser, here is how to do it, insert the following code in your web page:



Read more: Design Tips

Wednesday, June 15, 2011

IE 9.0.1 Available via Windows Update

The June 2011 Cumulative Security Update for Internet Explorer is now available via Windows Update. This security update resolves seven vulnerabilities in Internet Explorer that were disclosed in coordination with Microsoft.

The vulnerabilities could allow remote code execution if a user visits a malicious, specially crafted Web page using IE. Users who run without administrative rights are more secure in general and should be less impacted than other users; you can read more about this security principle (link) in many places (link). This security update is rated Critical for IE6, 7, 8, and 9 on Windows clients; for more information about the ratings and the vulnerabilities, please see the full bulletin.

Most customers have enabled automatic updating and do not need to take any action. We recommend that customers who have not enabled automatic updating, enable it (Start Menu, type “Windows Update”). We recommend that administrators, enterprise installations, and end users who want to install this security update manually, apply the update immediately using update management software or by checking for updates using the Microsoft Update service.


Changes to “About Internet Explorer” in IE9
With this update, IE9’s About box shows that the version is now 9.0.1:

20110613-jcsufiena-image1-2.png

Read more: IE Blog

Tuesday, June 07, 2011

Angry Birds on IE9

5804918304_01ddf8066e.jpg


I was asked recently where "angry birds for ie9" was. My answer was Angry Birds is already there, kind of, for IE9.   Actually its there for HTML5 browsers.  Angry Birds was released as a HTML5/Flash app targeted for Chrome at http://chrome.angrybirds.com recently.
Accordingly, ChromeBirds works pretty good on IE9 too. Simply point your IE9 browser to http://chrome.angrybirds.com and you'll have Angry Birds up and going in IE9. 
Why Blog this? Truthfully I was asked if there was angrybirds for IE9. I'm using this article this as a ref to email them.

Wednesday, April 13, 2011

MIX 2011 - IE10 Platform Preview 1 Available Now

The first key note is over is MIX 2011,Microsoft Talked about the future of IE and show some cool demos of IE10 capabilities.
And release the IE10 Preview to public. - http://ie.microsoft.com/testdrive/Info/Downloads/Default.html

Read more: Shai Raiten

First Look: Internet Explorer 10 Platform Preview

Just when you were expecting to hear more about IE9 on this opening day of Mix '11, and today we'll be talking about the IE10 Platform Preview. IE10 builds on IE9 with support for even more standards like CSS3 gradients, and grid layouts. In this video Rob Mauceri walks us through some of the new features of IE10 including an example of flowing of content in multi-column layouts.

Read more: Channel9

Tuesday, April 12, 2011

Browser Helper Objects for Windows Explorer

Both Windows Explorer and Internet Explorer are able to load extensions known as Browser Helper Objects (BHOs). BHOs are a minimal extensibility point into both the shell and the browser, allowing extensions to sync to events and react accordingly. For instance, the Mouse Gestures add-on is a BHO designed for IE, while Groove implements a BHO designed to add functionality to the Windows Explorer shell.

Back in the IE6 timeframe, when Windows Explorer could actually host the Web Browser control and render web pages, developers might often want their BHO to load in both Windows Explorer and Internet Explorer. In cases where Developers didn’t want their BHO to load in Windows Explorer, they could simply write a registry key named NoExplorer to prevent their BHO from being loaded into Windows Explorer. A developer who wanted to write a BHO that loaded only in Windows Explorer and not in IE had to do more work—in their DLLMain function, they’d have to get the module handle of the running executable and bail out of doing more work if they found they were running inside iexplore.exe (sample code). That wasn’t great for performance, since the DLL itself must begin loading in order to determine where it is being hosted.

Thursday, March 31, 2011

Silverlight, HttpWebRequest, HTTP Stacks and the UI Thread

This one comes from a customer who thought that they were seeing an issue in using the browser HTTP stack in Silverlight to make lots of HTTP requests. The issue seemed to be that the stack was blocking the UI thread and causing the UI to stutter.

The suspicion was that the blocking was occurring while data was being read from the stream that is handed back to you when you’re reading an HTTP response.

I thought I’d see if I could reproduce this behaviour myself and so I set out to put something together that made quite a lot of use of the browser HTTP stack and quite a lot of HTTP requests.
By the way – if this talk of browser/client HTTP stacks in Silverlight doesn’t resonate then take a look at this video over here which runs through the basics of it.
I put together a quick UI;

 <Grid
    x:Name="LayoutRoot"
    Background="Black">
    <MediaElement
      Stretch="Fill"
      AutoPlay="True"
      MediaEnded="MediaElement_MediaEnded"
      Source="Wildlife.wmv" />
    <Viewbox>
      <StackPanel>
        <TextBlock
          Foreground="White"
          Text="{Binding MegabytesRead,StringFormat=MB Read \{0:F2\} }" />
        <TextBlock
          Foreground="White"
          Text="{Binding MegabytesPerSecond,StringFormat=MBps \{0:F2\} }" />
        <TextBlock
          Foreground="White"
          Text="{Binding OpenRequests,StringFormat=Requests \{0\} }" />
        <TextBlock
          Foreground="White"
          Text="{Binding TimerTick,StringFormat=Timer \{0\} }" />
      </StackPanel>
    </Viewbox>
  </Grid>

This is playing a video (wildlife.wmv which ships with Windows 7) which I have embedded into my XAP. It’s also attempting to display (via binding) 4 pieces of data;

Total megabytes downloaded over HTTP
Number of megabytes read in the last second
Number of open HTTP requests in flight
A “tick” text block which will simple turn True/False as a timer ticks
and I put some code together behind this;

 public partial class MainPage : UserControl, INotifyPropertyChanged
  {
    public event PropertyChangedEventHandler PropertyChanged;
//#error This needs a Uri to a big file to download (mine is 1.5MB)
    static Uri videoFile = new Uri("http://localhost/wildlife.wmv", UriKind.Absolute);
    const int threadCount = 10;
    long bytesRead = 0;
    long requestsOpen = 0;    
    DateTime startTime;
    List<byte[]> bufferPool;
    public bool TimerTick
    {
      get
      {
        return (_TimerTick);
      }
      set
      {
        _TimerTick = value;
        RaisePropertyChanged("TimerTick");
      }
    }
    bool _TimerTick;
    public double MegabytesPerSecond
    {
      get
      {
        return (_MegabytesPerSecond);
      }
      set
      {
        _MegabytesPerSecond = value;
        RaisePropertyChanged("MegabytesPerSecond");
      }
    }
    double _MegabytesPerSecond;
    public double MegabytesRead
    {
      get
      {
        return (_Count);
      }

Read more: Mike Taulty's Blog

Tuesday, March 08, 2011

Internet Explorer 9 Security Part 1: Enhanced Memory Protections

Internet Explorer offers layered defenses to protect against and mitigate each of three major classes of threats that browser users face when surfing the sometimes-hostile Web:

Technological attacks designed to exploit the browser or operating system
Web attacks designed to exploit vulnerabilities in Web sites
Social engineering attacks against the user’s trust
Today’s post covers how browsers’ memory protections mitigate threats in the first class.

Preventing Reliable Exploitation

The goal of these memory protection features is helping prevent reliable exploitation of a memory-related vulnerability. Each technology in the “alphabet soup” of acronyms below is a way to securely terminate the browser tab before malicious code can run. Internet Explorer 9 utilizes the latest memory protection technologies to help prevent an attacker’s code from running if a memory-related vulnerability is discovered in the browser or one of its add-ons:

DEP/NX (Data Execution Prevention / No eXecute) is enabled by default in Internet Explorer 8 and 9 and it is the foundation of memory protection in the browser. DEP/NX works with your system’s processor to distinguish between code and data, helping to prevent execution of data placed into memory by an attacker. If the processor determines that it has been directed to execute a block of memory lacking the proper marking, it will securely terminate the process before executing the specified instructions.

ASLR (Address Space Layout Randomization) is a defense that helps ensure that the memory space of a process is laid out in an unpredictable manner. ASLR helps ensure that an attacker cannot easily bypass DEP/NX protections using a trick called “Return Oriented Programming” in which the attacker simply sets up the attack and jumps to existing code locations, abusing functions which are a part of the browser and operating system. For instance, a common trick is to attempt to jump to the VirtualProtect function which allows memory to be marked as “code” rather than data—if successful, this effectively bypasses DEP/NX. By ensuring that VirtualProtect and other functions are at unpredictable locations, exploit code will generally crash with an Access Violation instead of running successfully.

In IE9, we’ve improved our memory layout randomization to help eliminate predictable memory mappings. However, ASLR is enabled on a per-DLL basis, and some older browser add-ons are not properly opted in to the mitigation. You can use the Process Explorer tool from SysInternals to examine the loaded DLLs in a process to determine whether DEP/NX protection is successfully applied to each. For instance, in the following screenshot, you’ll see that all of the DLLs loaded by the Internet Explorer tab process have ASLR enabled except one ActiveX control which is missing the protection. If that DLL exposes any code segments useful to an attacker, the lack of ASLR randomization could provide a toehold into bypassing memory protections.

iespemp-image1.png

Read more: IE Blog

Sunday, February 27, 2011

Drawing lines in Mozilla based browsers and the Internet Explorer

Introduction
In this article, I want to explain and deduce the line drawing algorithm by Bresenham. Afterwards, I will show an optimized version which can be used to draw lines in Gecko based browsers like Mozilla or Firefox and Microsoft's Internet Explorer. As you know, HTML itself is not able to describe lines. Therefore, there is no built-in features in the above-mentioned browsers for drawing lines. By implementing the Bresenham algorithm with JavaScript while applying some tricks, we will be able to draw lines in a good manner in respect to the browser's runtime and memory footprints.

The Bresenham algorithm
The Bresenham algorithm aims at drawing an approximation of the mathematically correct line, which can be described in the form of a linear mathematical function. The demand for this algorithm came to hand when the first raster display or digital plotters were developed. These devices were unable to draw a continuous line in a strict mathematical sense. Rather, they were designed to plot a single pixel with a certain height and width on a screen coordinate. The approximation is based on finding the best and closest path on this raster display from the starting point to the end point.

The ideal line
The mathematical formula for describing a line is the following linear equation: y = m*x + b. In other words, a mathematical line is defined by a slope (variable m) and a pitch from the x-axis (variable b). By choosing two different points, we can, therefore, exactly define a line. To determine the two missing pieces of information (the slope and the pitch), we have to solve the following two equations:

I) y1 = m*x1 + b
II) y2 = m*x2 + b
=> I)
b = y1 - m*x1
=> II)
y2 = m*x2 + y1 - m*x1
y2 = m*(x2 - x1) + y1
m = (y2 - y1) / (x2 - x1)      | x1 != x2

Read more: Codeproject

Thursday, February 17, 2011

Understanding the IE9 Software Rendering Mode

I recently heard from some users who are seeing lower-than-expected scores on the Speed Reading and FishIE Tank benchmarks. I went to check these tests myself and found that my laptop’s score was low. In fact, it was much lower than I’d seen last year. What happened?

First, a bit of background: These graphically rich demos are designed to use your PC’s Graphics Processing Unit (GPU) instead of the Central Processing Unit (CPU) to do most of the heavy lifting. Generally speaking, a faster GPU will give better performance than a slower GPU. However, there are cases where the GPU is not used for rendering, and instead the CPU is used. The primary case where this occurs is when the GPU has an outdated driver version which is not supported by the browser. In those cases, the browser will use software emulation mode, forcing the CPU to do the work instead of the GPU.
You can determine whether Internet Explorer 9 is in software mode by clicking Tools > Internet Options > Advanced. The first checkbox in the list indicates whether IE9 is running in software mode.

Read more: EricLaw's IEInternals

Tuesday, February 15, 2011

Internet Explorer 9 RC – download, what’s new and get your sites ready

Dean Hachamovich has just announced availability of Internet Explorer 9 Release Candidate on the official IE team blog. As Dean blogs, we have received a lot of feedback from developer and end-users. We have listened and now with the RC, IE9 has made progress in the areas of performance, standards, user interface, safety and privacy.

Actions:

  1. Download Internet Explorer 9 Release Candidate through www.BeautyOfTheWeb.com (available in 40 languages)
  2. Test your sites and web applications, make sure you review the Developer’s Guide to adapt to the new standards support
  3. Report issues by using Send Feedback option in Internet Explorer (Tools or Alt+X > Send Feedback)
Platform Previews and what’s new

Since the release of Internet Explorer 9 Beta in September, we have also seen the release of new iterations of the Platform Preview. With IE9 Release Candidate, new features and additions surfaced through the Platform Previews have been rolled up into Internet Explorer 9 RC. For a good overview of where we have come from since the first Platform Preview announcement at MIX10 last year I’ve summed up the different blog posts on the official IE team blog.

Read more: Katrien's MSDN Blog

Fiddler and the IE9 Release Candidate

I’m delighted to announce that the now-available IE9 RC includes three significant enhancements for users of proxy-based debuggers like Fiddler.

These improvements are:

  1. The default Connections-Per-Proxy limit has been raised from 6 to 12, improving performance and in some cases reducing Observer Effect.
  2. Debugging of traffic sent to Localhost / 127.0.0.1 now “just works”—configuration changes are not required.
  3. Internet Explorer now can be configured to emit information about why a given HTTP request was issued, which helps you understand your web traffic.
I’ll explain each of these three improvements in this post.

Connections-Per-Proxy Limit

Browsers are typically designed to limit the number of connections made to a single server in order to prevent overloading it or incurring other problems. Some browsers have a different limit depending on whether the server being contacted is a proxy server or a normal host (web server). Internet Explorer 6 and 7 apply the “web server” connection limit to proxies as well; the two connection limit those versions use can severely impact your debugging performance when using Fiddler. Users still using those outdated browsers can re-configure the connection limit to mitigate this problem. Internet Explorer 8 limits the connections per proxy to six, which was a welcome improvement, but still could cause performance problems when debugging sites that “shard” their requests to many different hosts. Internet Explorer 9 maintains the existing connections-per-host limit of six, but also includes an specific connections-per-proxy limit which is set to 12 by default. This increased limit should help reduce the impact of connection limits upon your debugging scenarios.
For comparison, Firefox’s default value for the network.http.max-persistent-connections-per-proxy setting is eight, but the FiddlerHook extension kicks this value up to twenty-four.

Proxying Localhost Traffic

The WinINET networking component that is used by Internet Explorer and many other applications will automatically bypass a fixed proxy (like Fiddler) for traffic bound for //localhost and //127.0.0.1 because these “loopback” addresses point to the local machine and traditional proxy servers will not be able to interpret such addresses properly. However, for a debugging proxy running on the local computer, these are perfectly understandable addresses, and when developers are debugging against a local server (like IIS Express or the Visual Studio Test Server Cassini) they often test against these loopback addresses. To proxy loopback traffic from IE8 and below, somewhat awkward workarounds are needed.

Read more: Fiddler Web Debugger

Wednesday, February 09, 2011

How to Access/Manipulate HTML Elements/Javascript in Silverlight

Introduction:
Interacting between HTML and ASP.NET has been one of the most common coding scenarios we have come across; i.e. accessing HTMLl elements and calling JavaScript from code behind. I recently came across a situation where I wanted to add Silverlight content to an existing page and allow the HTML and Silverlight portions of the page to interact.

When we need this interaction: So let us see initially what could be probable scenarios where we need to interact / access HTML in Silverlight page.
  1. To make compatible: When we want to use the latest and greatest user interfaces with Silverlight, this requires compatibility with HTML. Situations could be like including a Silverlight content region to show non-essential extras alongside the critical HTML content.
  2. Legacy web pages: If we have an existing web page that does exactly what we want, it may make more sense to extend it with a bit of Silverlight pizzazz than to replace it outright. So the solution is to create a page that includes both HTML and Silverlight content.
  3. Server-side features: We know that Silverlight is a poor fit for tasks that need to access server resources or require high security, which is why it makes far more sense to build a secure checkout process with a server-side programming framework like ASP.NET. But you can still use Silverlight to display advertisements, video content, product visualizations, and other value-added features in the same pages.

So, let's try to BRIDGE this gap between Silverlight and the ordinary world of HTML.
What is this BRIDGE: This BRIDGE is built using a Silverlight set of managed classes (commonly called Helper classes) that replicate the HTML DOM (document object model), and we can access these classes by namespace, System.Window.Browser.

silver1.gif

Read more: C# Corner

Tuesday, February 08, 2011

es5-shim: use ECMAScript 5 in older browsers

ECMAScript 5 (ES5) brings with it some nice improvements. The only problem is that only newer browsers (Internet Explorer 9, Firefox 4, Chrome 5, Safari 5) support it, or at least its most interesting parts. es5-shim provides a neat solution: It checks for each ES5 feature whether it is present and if not, it provides its own implementation. As an aside: es5-shim originated as a Narwhal module and was then turned into a stand-alone library, to encourage broader adoption. es5-shim is the more current version of the two.

Read more: 2 ality

Thursday, January 20, 2011

Internet Explorer 9 to bolster security with ActiveX content filter

ie9-acx.jpg

Sure, you can wade through Internet Explorer 8's security settings and flip a number of radio buttons to change ActiveX permissions in its many zones, but it's kind of a pain in the butt. It's also not also flexible a system as it could be -- but Microsoft appears ready to change all that in Internet Explorer 9.
Read more: DownloadSquad

Monday, January 10, 2011

Ускоритель для IE или GenericHandler.ashx своми руками

На моем сайте есть лента анекдотов (на главной странице), так вот, чтобы добавить на ленту новую запись надо зайти на сайт, нажать кнопку, которая откроет форму добавления, запонить поля, выбрать параметры и нажать кнопку "добавить". Это долго и не всегда хочется тратить на это время. Хочу чтобы было просто: нашел что-то интересное и смешное на каком-нибудь сайте, выделил, нажал на ускоритель и всё уже на сайте. Итак...

Для начала потребуется создать обработчик запросов (я выбрал название LentaIE.ashx), который будет получать данные от ускорителя. А потом создать специальный xml-файл, который должен соответствовать спецификации. Описание спецификации достаточно подробно описано MSDN, поэтому я не буду этого делать, а просто приведу готовый код:

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
   xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
   <os:homepageUrl>http://www.calabonga.com</os:homepageUrl>
   <os:display>
       <os:name>Поделиться анекдотом</os:name>
       <os:icon>http://www.calabonga.com/images/musorka.ico</os:icon>
       <os:description>Мусорка - рассказать разместить свой анекдот</os:description>
   </os:display>
   <os:activity category="Share">
       <os:activityAction context="selection">
           <os:execute action="http://www.calabonga.com/h/LentaIE.ashx?content={selection}" method="post">
               <os:parameter name="content" value="{selection}" type="text" />
           </os:execute>
       </os:activityAction>
   </os:activity>
</os:openServiceDescription>

Теперь что касается обработчика (.ashx). Создадим новый при помощи шаблона Visual Studio. Вновь созданный файл имеет следующий вид:

   public class LentaIE : IHttpHandler
   {
       public void ProcessRequest(HttpContext context)
       {
       }
       public bool IsReusable
       {
           get
           {
               return false;
           }
       }
   }

А теперь давайте напичкаем этот класс полезностями. Во-первых, создадим поле которое будет экземпляром класса унаследованного от DataContext (LINQ to SQL).

Read more: Мусорка - найди лучшее!

Monday, December 27, 2010

New IE Zero Day

Microsoft has released a notice about a new zero day attack against Internet Explorer. Guess it's going to be more a 'Script Kiddie Christmas,' less of a 'White Christmas.' 'Ok, fess up — who asked for an IE 0 day for Christmas? I'm guessing Santa got his lumps of coal mixed up with a bag of exploits. This exploit has been discussed over the last day or so on full disclosure and a number of other sites. Metasploit already has a module available for it (just search for CSS & IE). Microsoft has put out an advisory 2488013 regarding the issue which manifests itself when a specially crafted web page is used and could result in remote code execution on the client.

Read more: Slashdot

Wednesday, December 15, 2010

IE December Cumulative Security Update Now Available

The IE Cumulative Security Update for December 2010 is now available via Windows Update. This security update resolves four privately reported vulnerabilities and three publicly disclosed vulnerabilities in Internet Explorer. The most severe vulnerabilities could allow remote code execution if a user views a specially crafted Web page using Internet Explorer. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

This security update is rated Critical for Internet Explorer 6, Internet Explorer 7, and Internet Explorer 8. For more information about the vulnerabilities, please see the full bulletin.

The security update addresses the vulnerabilities by modifying the way that Internet Explorer handles objects in memory and script during certain processes. For more information about the vulnerabilities, see the Frequently Asked Questions (FAQ) subsection for the specific vulnerability entry under the next section, Vulnerability Information.

This security update also addresses the vulnerability first described in Microsoft Security Advisory 2458511.

The majority of customers have automatic updating enabled and will not need to take any action because this security update will be downloaded and installed automatically. Customers who have not enabled automatic updating need to check for updates and install this update manually. For information about specific configuration options in automatic updating, see Microsoft Knowledge Base Article 294871.

Read more: IEBlog

Posted via email from .NET Info

Thursday, December 02, 2010

Selectively Filtering Content in Web Browsers

Typically the job of a web browser is to download and display content-- establishing a network connection, sending HTTP requests, retrieving the web page, and downloading and running all of its content. These operations pose non-trivial challenges, and as such, web-browsers are among the most complicated software that most of us routinely use. However, there’s a whole separate (higher level!) challenge around selectively not running (filtering) content.
Today, different browsers offer many different mechanisms for selectively filtering content. This post is a survey of how these mechanisms work, and the subtle and sometimes not so subtle differences between them.

Examples and Motivations

Different users have shown an interest in myriad different types of Content Blocking, and not all users have similar goals.
Certain types of blockers are over a decade old and extremely commonly used (e.g. popup-blockers) while others are less often used or only of interest to a small niche audience. Just reading the comments on this blog, it’s clear that some users want to be able to block cookies, plugins or ActiveX controls, certain types of content (e.g. malware, adult content), privacy-impactful “trackers” (e.g. “web beacons”), advertisements, file downloads, or content they consider “annoying” (e.g. popups, flashing content). Individual consumers may have many different reasons for wanting to block particular content: faster performance, improved security, increased reliability and stability, enhanced privacy, increased battery life, preference about user-experience, legal or supervisory requirements (e.g. parental controls) lower bandwidth charges, as well as many others.
However, on the other end of the internet connection, a website provider may or may not want content blocked, for any of any number of reasons: revenue (direct or indirect), site analytics and understanding customers and markets, predictability and reliability of the user experience, malicious intent, and many others.
In some scenarios, site publishers and developers are just fine with content blocking and modification. For instance, a site owner whose legitimate site was compromised to serve malware probably wants that malware content blocked to keep his visitors safe until the site can be cleaned. Accessibility tools are crucial for some people to use the web and websites. Some sites and networks may offer users a way for to opt-out of analytics or other tracking.

Blocking at the Network Level

There are several common ways to block content at the network level—the most common are by using the HOSTS file, or by filtering content with a proxy. There are a number of other, less-common network-level approaches, including using a router to block particular content (most Linksys routers can be configured to block Java, ActiveX installers, and cookies, for example). Large organizations or networks with restricted bandwidth, for instance, may block content at the gateway:

Read more: IE Blog

Thursday, November 18, 2010

Did Internet Explorer 9 Cheat In The SunSpider Benchmark?

A Mozilla engineer has uncovered something embarrassing for Microsoft – Internet Explorer might be cheating in the SunSpider Benchmark. The SunSpider, although developed by Apple, has nowadays become a very popular choice of benchmark for the JavaScript engines of browsers.
While Mozilla engineer Rob Sayre was benchmarking Firefox 4 with different browsers, he noticed something with Internet Explorer 9 – Internet Explorer 9 was around 10 times faster than the other browsers in a particular test (math-cordic) in the SunSpider benchmark. While Chrome and Opera scored took around 10ms in that test, Internet Explorer 9 finished it it in about 1ms.
Sayre investigated further by modifying the code for that test used in the SunSpider Benchmark a bit. He made two variations of the test little bits of codes to the original – one by adding a “true” and another by adding a “return”. As these “true” and “return” in this context does not do anything there should be minimal impact.
The result though is startling – Internet Explorer 9 took around 20 times longer with the two new tests compared with the original. While the original took only 1ms in my laptop, the other two took around 20ms each.

Read more: digitizor