throbber
(12,UK Patent Application (,s,GB (11)2 350 213 (13)A
`
`(43) Date of A Publication 22.11.2000
`
`(21) Application No 9911739.2
`
`(22) Date of Filing 21.05.1999
`
`(71) Applicant(s)
`International Business Machines Corporation
`!Incorporated in USA - New York)
`Armonk, New York 10504, United States of America
`
`(72)
`
`lnventor(s)
`Gordon Douglas Hutchison
`Noel Rooney
`
`(74) Agent and/or Address for Service
`PWaldner
`IBM United Kingdom Limited, Intellectual Property
`Department, Hursley Park, WINCHESTER, Hampshire,
`SO21 2JN, United Kingdom
`
`(54) Abstract litle
`Web page downloading
`
`(51)
`
`INT CL7
`G06F 17/30
`
`(52) UK CL (Edition R )
`G4AAMU AUDB
`
`(56) Documents Cited
`WO 97 /46955 A 1
`http://libsun1.jr2.ox.ac.uk/training/ netscape.html
`HCLU,''Netscape Navigator", 1996
`
`(58) Field of Search
`UK CL (Edition R ) G4A AMU AUDB
`INT CL7 G06F 17 /30
`ONLINE: COMPUTER EPODOC JAPIO WPI INTERNET
`
`(57) A method of using a "markup language", such as HTML, browser, in which a page is loaded into display
`memory, the user selects multiple URLs from those displayed on the page, and the browser preloads pages
`corresponding to the URLs into a cache without necessarily displaying them, so the user may continue to view
`the original page. Before preloading a given page, it may update a navigation list with the corresponding URL,
`and a user may select an entry in this list, directly or via "forward" and "back" GUI buttons, to display
`immediately.
`
`Server
`12A
`
`Server
`128
`
`Platform 10
`Memory 16
`Browser20
`
`Browser Cache
`Code 22 memory
`24
`
`Cache
`Index
`26
`
`Preload Plugin 30
`I Register plug-in 40 I
`I Capture events 42 I
`I Download pages 44 l
`I Maintain list 46 I
`I Display page 48 I
`
`Webpage38 1
`
`Figure 1
`
`G>
`OJ
`I\.)
`w
`0,
`0
`I\.)
`
`~ w
`)>
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. i
`
`

`

`Figure 1
`
`~
`
`Web page 38
`
`12C
`Server
`
`I HELP
`
`•••
`
`01
`...........
`-1.
`
`I Display page 48 I
`I Maintain list 46 I
`I Download pages 44 I
`I Capture events 42 I
`I Register plug-in 40 I
`Preload Plugin 30
`
`' ........................ ..:
`l36Dl
`~--~] ... ,~
`f3s-c1
`
`"' .................. -~
`[36A1
`
`List 28
`Navigation
`
`Cache
`
`~ ..................... <
`
`j 32A f
`: .......................... :
`24
`memory
`
`Code 22
`Browser 11 Cache
`
`Browser 20
`Memory16
`
`Platform 10
`
`128
`Server
`
`12A
`Server
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. ii
`
`

`

`Figure 2
`
`0,
`'-......
`I\)
`
`None
`
`http:// adf orce. imgis. com/? add_ynl...
`299 b... 7 /30/98 1 : 09 PM
`ftp:// sunsite. unc. edu/pub/Linu:-:/...
`5. 90KB None
`http://d06dbl51.portsmouth.uk.ib...
`1.21 KB None
`http://www.jumbo.com/images/n... 1.02KB None
`http: //cnuce-arch. cnr. it/Linu:-:/ de ...
`
`~ Exploring -C:\WINNT\Profiles\hutchig\ Temporary Internet Files
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. iii
`
`

`

`page 110
`Request
`
`0,
`............
`w
`
`-----,
`
`navigation
`dd item to
`
`list 1 08
`
`Background
`
`/~
`
`URL 100
`selects
`Use~
`
`,,._ .. ___ _
`
`Browser Action
`
`User Action
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. iv
`
`Figure 3A
`
`busy 112
`and display
`Request page
`
`Display 104
`
`Foreground
`
`foreground?
`
`or
`
`Backgroun~
`
`"'· .
`'-,_ 106/
`// "'
`
`

`

`(J1
`~ ......._
`
`Figure 38
`
`Update cached page table 122 I
`
`I Update cache index 120 I
`
`, ,
`
`Update Icons 118
`
`, ,
`
`Add to cache 116
`
`, ,
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. v
`
`I
`
`Update Navigation List 1 08
`
`~·
`
`Pager arrives 114
`
`~,
`
`

`

`5/5
`
`"awn_
`
`.aw
`
`mewmohfiv
`
`'""3?
`
`Figure4
`
`V
`Q)
`"-:::s
`C)
`(cid:127) -LL
`
`WC.i"
`
`ggg E i
`
`s E '
`
`M‘
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. vi
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. vi
`
`

`

`' .
`
`1
`
`WEB PAGE DOWNLOADING
`
`FIELD OF INVENTION
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`This invention relates to the Internet world wide web page
`downloading and in particular relates to browser prefetching of web
`pages.
`
`BACKGROUND OF INVENTION
`
`The Internet is a large number of computers connected in an ad hoc
`fashion forming a world wide network. It was originally conceived by the
`US government to allow a scaleable network of computers to talk to each
`other and share information and has the added effect of being resilient
`to malfunction of single computers in the network. This means a lower
`risk of loosing total communication between computers in the event of an
`intermediate computer failing because the network may be connected in
`other ways. The communication language of the Internet is the double
`layer Transmission Control Protocol/Internet Protocol (TCP/IP). TCP
`controls the way that data is broken down into small packets for
`transmission over the Internet and controls the way the packets are
`subsequently built up in the correct order. The Internet protocol
`controls the addressing of the packets so that they are transmitted to
`and received by the correct computer.
`
`The Internet's best known medium is the world wide web
`(WWW) which
`is very broadly a set of protocols allowing transfer of multimedia data
`between computers. One of these protocols is Hypertext Transfer Protocol
`(HTTP) which allows pages of data in hypertext mark up language (HTML) to
`be transferred. The application which sits on a computer to make this
`transfer possible is an Internet browser such as Microsoft Internet
`Explorer or Netscape Navigator.
`
`A very common mode of operation in web browsers is the following. A
`user enters criteria into a search engine prompt or goes to an
`index/contents page of link. The user is then presented with list of
`available web Uniform Resource Locators (URLs) a subset of which he/she
`wishes to browse and selects one location for download. The user then
`waits for the page to load from the Internet server to the proxy server
`and to his machine before viewing the page. After finding something of
`interest or not the user moves back to the index/list and makes a next
`selection, waits for download etc. This process repeats until the user
`has read or collected the relevant material.
`In this mode of operation
`it is necessary to repeatedly wait, sometimes for excessive periods, for
`the pages to download. One solution is to launch a ne_w browser t9 request
`a download from the selection and return to the original browser to
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 1
`
`

`

`2
`
`launch further browsers for each desired URL. This is a messy and
`irritating way to operate as one must keep track of where one is in the
`desired list and has no visual clue as to when the pages have been
`downloaded to the multiple windows and which to which window on the
`screen a particular page will appear at.
`
`Gotit from Ahead Software Inc., Redmond, WA
`( www.goahead.com)
`preloads web pages into proxy cache. Gotit is a www proxy gateway to the
`Internet for providing a portal and location for fire walls, security
`policy and web page caching as standard. For example most www proxies
`are likely to fetch www.yahoo.com many times each hour and the advantage
`of storing it and refreshing it say only every 10 minutes is clear. Gotit
`allows preloads of pages linked to the current page. The proxy server
`will download from the servers in the background all the pages that are
`linked to from a page currently being viewed it then stores these on the
`disk of the machine running the proxy.
`
`However in the Gotit solution the proxy has no interaction with the
`browser interface and visa versa during the background downloading
`process. This has two disadvantages: 1) The user's model is not improved
`since the process of moving to proxy pages remains inflexible. 2) The
`Gotit! proxy has no way of knowing which pages the user will actually hit
`so it downloads all of them that are linked to. It undoubtedly filters
`out these links for it's own use during the action of serving the linking
`page to the user. Depending on the performance of serving machine and the
`nature of the linking page, this could actually slow down performance if,
`for example, the user is only interested in the 3,4, 6 and 9th links as
`all 1 to 12 links will be fetched. Gotit's pre-fetch model blindly
`prefetches all links on a page. This would result in too many prefetched
`pages for the average browser set up and platform as sites now commonly
`have many navigation links at their top levels.
`
`SUMMARY OF INVENTION
`
`According to one aspect of the invention there is provided a method
`of browsing an H™L page on a TCP/IP network comprising: loading a first
`HTML page into browser memory from a network server; loading said memory
`into display memory for displaying said the page; providing means for
`selecting multiple URLs on the HTML page; and preloading pages
`corresponding to user selected URLs into browser memory without loading
`them into display memory or affecting the ability to select further URLs.
`The solution allows multiple requests by the user and res~lts in a much
`reduced start-to-finish time for a user who is using the net in a
`'query, list, browse' mode (as is commonly done). The_ .user need not· look
`at every page downloaded and available from cache memory. As most·of the
`pages wii."i be 'instant' from the cache, page providers may be~efit too by
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 2
`
`

`

`3
`
`receiving more 'hits' as users are much more likely to view a page if
`they can see that it will be displayed 'instantly' from the browser
`cache.
`
`Advantageously, this aspect of the invention further provides a
`step of on selection of a URL and before preloading the corresponding
`page, updating a navigation list with the URL. This allows a user, having
`finished making multiple selections from the first page, to instruct the
`browser to display pages from the navigation list even though the pages
`may not be fully loaded into memory. More advantageously the method
`further comprises updating the navigation list with information as to
`whether a URL on the list is fully loaded. In which case the user can
`maximise the time spent in viewing only fully loaded pages.
`
`Advantageously, on selection of a URL and before preloading the
`corresponding page into cache memory, there is provided a further step of
`updating a cache index file with the location of the page in cache. This
`allows a user, having finished making multiple selections from the first
`page, to instruct the browser to display pages from the navigation list
`even though the pages may not be fully loaded into memory.
`
`Advantageously pages corresponding to selected URLs are not
`displayed during preloading so that the user may view the original page
`until finished checking all the URLs. After the user is finished checking
`he may move on to one of the selected web pages.
`
`One beneficial method for navigating the selected URLs is to build
`a list of page references including that of the first page. A drop down
`list may be provided for selecting a page reference in the list so that
`the corresponding page can be displayed. Alternatively or as well as
`'forward' and 'back' GUI buttons may be provided for selecting the
`previous or next page reference in the list and displaying the
`corresponding page.
`
`The user is already used to using control-mouse-left-click (for
`copy-drag actions in Windows) and the above solves the problem in an
`intuitive way. As the model suggests, making use of the 'forward-arrow'
`for navigation through the pages downloaded in the background is a
`familiar navigation method for the user. The browser cache will end up
`in exactly the same state it would if he/she had interactively downloaded
`the pages one at a time and then used 'back-arrow' to return to the index
`page. Moreover the user is not faced with having to continually jump back
`to the top level and has much less 'waiting time' overall as the
`downloads occur in parallel. Furthermore the user has something active
`to do/read while downloads are going on the background the operation will
`be even more efficient/enjoyable.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 3
`
`

`

`4
`
`Preferably a page reference is added to the list when its
`corresponding URL is selected from the first page so that the list is
`order sequentially in a logical order. Alternatively a page reference
`maybe added to the list when its corresponding page is substantially
`loaded into browser memory so that if a user moves forward in the list
`there is greater chance that the page will have loaded into the browser.
`This solution provides for a much more easily navigable model for doing
`parallel downloads over the current possible mechanisms. The solution is
`coherent with the current user model of path walking with marks for
`places visited. The solution is applicable to a
`'usage scenario'
`employed many times every day in a highly competitive area and is easily
`detectable.
`
`Browser memory comprises cache memory. When a preloaded page in
`proxy memory is required for display on a browser, the browser sends a
`TCP/IP request to the proxy for a page stored in proxy memory. The page
`is copied into both cache memory and display memory for display on the
`browser. It is advantageous to preload selected pages directly into cache
`memory from an TCP/IP network so that a quicker internal request from the
`browser to the cache memory renders the displayed page to the user in a
`shorter time as opposed to a slower TCP/IP request from the browser to
`the proxy.
`
`According to another aspect of the invention there is provided a
`system for browsing an HTML page on a TCP/IP network comprising: means
`for loading a first HTML page into browser memory from a network server;
`means for loading said memory into display memory for displaying said
`page; means for selecting multiple URLs on the HTML page; and means for
`preloading pages corresponding to selected URLs into browser memory
`without loading them into display memory.
`
`According to another aspect of the invention there is provided a
`method of processing a URL database comprising: loading the HTML result
`of a URL search into browser memory; loading the HTML results into
`display memory and displaying a list of located URLs; providing means for
`selecting multiple URLs from the list; and preloading web pages
`corresponding to selected URLs without displaying said web pages.
`
`According to a further aspect of the invention there is provided a
`computer program product comprising a computer usable medium having
`computer readable program code means embodied in the medium for
`processing work items in a data processing system, the program code means
`comprising: code means for causing the data processing system to load a
`first HTML page into browser memory from an network server; code means
`for causing the data processing system to load said first HTML page into
`display memory for displaying said page; code means for causing the data
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 4
`
`

`

`5
`
`processing system to provide means for selecting multiple URLs on the
`HTML page; and code means for causing the data processing system to
`preload pages corresponding to selected URLs into browser memory without
`loading them into display memory.
`
`According to a further aspect of the invention there is provided a
`computer program product comprising a computer usable medium having a
`computer readable code page embodied in the medium for processing work
`items in a data processing system, the code page comprising: code means
`for instructing a
`code page browser to display one or more links to
`other codes pages; and code means for, on selection of one or more of the
`displayed links, instructing a code page browser to load one or more of
`the code page into browser memory whilst instructing the code page
`browser to retain the current code page display of said one or more
`links.
`
`Once a user has completed the process of viewing all his/her
`desired pages by initiating each download interactively, all the
`previous pages are easily selectable for reviewing using the 'back' and
`'forward' features of the browser. As these work in conjunction with the
`browser cache one can quickly move backward through the list (and
`subsequently forward again). If it were possible to reverse this process
`how much easier say Yahoo or patent searches would be.
`
`Although the invention is described in terms of TCP/IP networks it
`could equally apply to other types of packet networks. Furthermore
`although the invention is described in terms of HTML pages it could
`equally apply to other types of mark up language data containing URLs.
`Although the invention is described in terms of URLs it could equally
`apply to other network data references.
`
`BRIEF DESCRIPTION OF DRAWINGS
`
`In order to promote a fuller understanding of this and other
`aspects of the present invention, an embodiment will now be described, by
`way of example only, with reference to the accompanying drawings in
`which:
`Figure 1 is a schematic representation of a computer system of the
`embodiment;
`Figure 2 is a screen dump of a cache memory;
`Figure 3A and 3B represent the procedures of the embodiment; and
`Figure 4 is a screen dump illustrating one of the advantages of the
`embodiment.
`
`DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 5
`
`

`

`6
`
`Referring to Figure 1 there is represented an operational platform
`10 connected to a plurality of servers 12A, 12B, 12C, via a proxy server
`13 and an Internet network 14. Platform 10 is an Intel Pentium II 450Mhz
`processor based computer, having 128 MB 100 MHz SDRAM (reference number
`16 on Figure 1 ) , 17 GB ATA-33 hard drive (also represented as reference
`number 16 on Figure 1), 19" colour SVGA monitor, 16 MB video memory
`(reference number 18 on Figure 1), 17/40 x CD-ROM drive, 3 PCI, 1 ISA and
`1 AGP expansion slots and Microsoft Windows 98 operating system. The
`platform 10 has a TCP/IP browser 20 such as Netscape Navigator. The
`servers 12,13 have similar specifications to platform 10 but run under
`Microsoft Windows NT operating system. Although the example platform is
`described in detail, any processor and operating system combination
`capable of running a TCP/IP browser is suitable. The example browser need
`not be Netscape Navigator but any browser capable of receiving mark up
`code pages from a network, for instance Microsoft Internet Explorer.
`
`Browser 20 is the client application which is used to view pages of
`information sent by the servers. Five components of the browser are of
`interest in the present embodiment. The browser code 22; the cache memory
`24; the cache index 26; and the navigation list 28 are known components
`of browser 20. In this embodiment the invention is centred on a browser
`plug-in 30 so that no adaptation of the browser code is necessary and the
`invention may be incorporated into any present browser set up by adding
`the component to the browser.
`
`In another embodiment the browser code 22 may be modified with
`necessary functionality so that no plug-in to the shipped browser is
`necessary.
`
`In a further embodiment the methods of the invention may take the
`form of code (such as Javascript) within the web page data instructing
`the browser to carry out the steps of the invention.
`
`Proxy server 13 is the gateway to the Internet for the platform 10
`and potentially many other platforms. When web page information is
`downloaded from servers on the Internet to the browser it is stored in
`the proxy server 13 as well as being transferred to the cache memory 24
`of the browser 20.
`If any other browser using the proxy server 13 as a
`gateway requests the same page then the proxy server 13 can transfer it
`from its own memory without incurring the delay by transferring it again
`from the Internet. The proxy also has some security functionality for
`limiting what information is sent and received. Internal web pages can
`not be sent through 'fire wall' security measures in the proxy server.
`
`Browser code 22 contains the functionality of the browser including
`the TCP/IP interface code and the mark up language interpreter (both not
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 6
`
`

`

`7
`
`shown). Cache memory 24 stores several pages 32A and 32B including main
`pages and related files of information from the Internet servers. The
`proxy server 13 has a similar cache memory for Internet information but
`stores more information than a browser cache memory so that it may supply
`the other connected browsers. Cache index 26 contains the groups 34A,B,C
`of names and references of the files that make up web pages 32A and 32B.
`Navigation list 28 is a sequential list of web pages visited in the
`browser session with associated URLs. Both Netscape Navigator and
`Microsoft Internet Explorer have cache memories 24 where HTML, GIFs, MP3
`etc. files are cached in a hard disk directory with a cache index 26.
`With Internet Explorer these are held at
`C:\winnt\profiles\<user>\Temporary Internet Files\index.dat and in
`Netscape the equivalent file is, for example, C:\Program
`Files\Netscape\Users\<user>\Cache\fat.db. For Internet Explorer, these
`can be seen using Windows Explorer as shown in Figure 2.
`
`The navigation list contains the URLs 36A,B,C,D visited including
`the present web page 36B (indicated by the bold outline), those
`previously visited 36C,D (indicated by the dotted outlines) and the page
`36A to be visited in the future (indicated by the dotted line). The
`cache index 26 holds file references 34A for the present web page and
`perhaps those of the previous web page e.g. 34B and 34C but not the web
`page references of 36D which have been removed due to limited space for
`illustration only. The actual embodiment has extended cache memory 24 and
`holds from two to ten or more complete web pages. The cache memory 24
`holds the web page data 32A and 32B as referenced by the cache index 34A
`anbd 34B respectively and some or all of previous web pages, for example
`those referenced by pages 36C and 36D. The mark up code interpreter in
`the browser code 22 uses the mark up files 32A as indexed by cache index
`34A and pointed to by list item 36A to represent a web page 38 in
`graphical form in the display memory 18 which is displayed to the user on
`the monitor.
`
`Plug-in 30 uses a defined way of extending the functionality of the
`well-known browser described above without having to alter the underlying
`browser or requiring a recompilation of it. It works by a convention of
`entry points (or functions)
`that the browser can call within the plug-in
`and vice versa. The functions are called at significant points in the
`processing of a downloaded page and different page 'types' can be
`associated with different plugins.
`It is implemented as a dynamically
`loaded library and thus has access to the underlying computer's file
`system and other facilities (and so could manipulate the browser cache),
`it also has the ability to intercept mouse and keyboard actions from the
`user and have visibility of the browser's URL fetching via the defined
`browser to plug-in interface. Plugins conventionally deal with new file
`types (such as the well known VRML plug in that displays virtual reality
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 7
`
`

`

`8
`
`markup language and interacts with the user to control the display).
`However plug-in 30 deals with existing file types such as .HTML with
`slightly different processing than is conventionally used.
`
`To implement the embodiment we need to achieve the following
`functional units as identified in Figure 1: means 40 to register a
`plug-in that is called for 'standard' HTML and HTM web pages; means 42 to
`capture mouse or keyboard events to control the page downloads; means 44
`to request that pages are downloaded without being displayed and
`furthermore that these pages can be placed in the Netscape cache; means
`46 to maintain a list of pages that have been so placed in the cache to
`enable them to be displayed in response to the user selecting the
`'forward' and 'reverse' option in the user interface; and means 48 to
`trigger Netscape to display a particular page that is stored in the
`Netscape cache.
`
`Each of these five parts of the design is implemented using the
`Netscape plug-in interface and will be discussed in turn.
`
`1) Registering a plug-in that is called for 'standard' HTML and HTM web
`pages.
`
`When Communicator starts up, it checks for plug-in modules in the
`plugins directory for the platform:
`
`MS Windows: plugins subdirectory, in the same directory as the
`Communicator application.
`
`Mac OS: Plug-ins folder. A Mac OS plug-in can reside in a different
`directory if one installs a Macintosh alias that links to the plug-in in
`the Plug-ins folder.
`
`UNIX: usr/local/lib/Netscape/plugins or $HOME/.Netscape/plugins. If a
`different directory is wanted, the NPX_PLUG-IN_PATH environment variable
`is set to its filepath, for example, $HOME/yourplugins:/
`usr/local/lib/Netscape/plugins. Communicator searches any directory that
`this variable specifies. The local user location, if it exists, overrides
`the network location.
`
`On all platforms, the plugins default subdirectory or folder is in
`the same directory as the Communicator application. Users can install
`plugins in this directory manually, by using either an installation
`program or Communicator's JAR Manager facility. The plugins currently
`installed can be viewed under Netscape by selecting the 'help' menu
`option and
`the "About Plug-ins" menu item. This gives a list of
`installed· plugs ins currently registered with the Netscape Browser and
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 8
`
`

`

`9
`
`identifies the 'default' plug in that is run for all file types not
`registered with another plug in:
`
`Netscape Default Plug-in
`File name: C:\PROGRA-1\Netscape\COMMUN-1\Program\plugins\npnul32.DLL
`
`Default Plug-in
`Mime Type
`*
`
`Description
`Netscape Default Plug-in
`
`Suffixes
`*
`
`Enabled
`Yes
`
`There is usually no other plug in that is registered for the file
`type .HTM or .HTML as this type being handled by the default services of
`Netscape. The plug in architecture does not prevent this happening and
`allows a plug-in that is activated when a file of type .HTM or .HTML is
`loaded. A dynamic link library (DLL) file is developed that conforms to
`the plug-in conventions as documented in the "Netscape Communicator
`Plug-in Guide" with a number of known function entry points. The DLL file
`is placed in the appropriate directory on platform 10. When it starts
`up, Communicator checks for plug-in modules in the plug-in directory for
`the platform and registers them. It determines which plugins are
`installed and which types they support through a combination of user
`preferences that are private to Communicator and the contents of the
`plugins directory. When Netscape is initialising it sweeps this directory
`and for each plug-in DLL that it finds it calls the NPP_Initialise
`function entry point in the DLL file. It also examines the DLL's version
`information.
`
`On Windows, the plugin's directory is located in the same directory
`as the Communicator application and has a 8.3 filename beginning with NP
`and ending with .DLL. The Windows version information for the plug-in DLL
`determines the MIME types, file extensions, file open template, plug-in
`name, and description. In the MIME types and file extensions strings,
`multiple types and extensions are separated by the "I" character, for
`example: video/quicktimelaudio/aifflimage/jpeg
`
`The version stamp of the plug-in DLL contains the following lines
`so that Communicator recognises the plug-in,:
`
`File Extents: for file extensions
`
`MIME Type: for MIME types
`
`Language: for language in use
`
`In order to display an example of this use Windows Explorer to get
`to the C:\Program Files\Netscape\ Communicator\Program\Plugins> directory
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 9
`
`

`

`10
`
`and right click on one of the np*.DLL files - use the pop-up menu to view
`the DLL's properties. Up will come a notebook, click on the Version Page
`Tab -> You will see fields called "File Extents" and "MIME Type" these
`fields are decoded by Netscape using the convention above.
`
`By creating a Netscape plug in using the instructions in the
`plug-in SDK and setting the values in the plug-in DLL's properties
`information to indicate that this plug is for file extensions of .HTM and
`.HTML we will cause Netscape to communicate with this plug in when files
`of this type are loaded.
`
`2) Capturing mouse or keyboard events to control mouse or keyboard events
`to control web page downloads.
`
`In order to capture mouse events that are driven from the HTML page
`the plug-in 30 operates as a
`'full page' plug-in. A full page plug-in is
`visible but not part of an HTML page. The server looks for the media
`(MIME) type registered by a plug-in, based on the file extension, and
`starts sending the file to the browser. Communicator looks up the MIME
`type and loads the plug-in if it finds a plug-in registered to that type.
`This type of plug-in completely fills the Communicator page and are
`commonly used for document viewers, such as Adobe Acrobat. Plug-in 30
`receives mouse events that take place while the mouse pointer is over
`it's own display window. The following events are visible to the plug-in
`
`WM_PAINT
`WM_LBUTTONDOWN
`WM_LBUTTONUP
`WM_LBUTTONDBLCLK
`WM_RBUTTONDOWN
`WM_RBUTTONUP
`WM_RBUTTONDBLCLK
`WM_MBUTTONDOWN
`WM_MBUTTONUP
`WM_MBUTTONDBLCLK
`WM_MOUSEMOVE
`WM_KEYUP
`WM_KEYDOWN
`WM_SETCURSOR
`WM_SETFOCUS
`WM_KILLFOCUS
`
`These events will be passed to the plug-in via the "int16
`NPP_HandleEvent(NPP instance, NPEvent *event);"
`function entry point
`defined in the plugin's DLL.
`In the embodiment the user holds down the
`control key to indicate that a background download of a URL. This causes
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1024, p. 10
`
`

`

`11
`
`a
`'WM_KEYDOWN event to take place for the control key. Plug-in 30
`maintains a flag that represents whether the control key is down or up.
`
`3) Requesting pages for download in cache memory without displaying
`
`When the download of a new page is requested and a plug-in is
`registered for that page type then browser 20 will create a new 'stream'
`that represents the stream of data in the web page. To tell the plug-in
`when a new stream is created, browser 20 calls a NPP_NewStream method.
`This method also determines which mode it should use to send data to the
`plug-in via a return parameter in the function call.
`
`The NPP_NewStream method has the following syntax:
`
`NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream,
`NPBool seekable, uint16* stype);
`
`The instance parameter refers to the plug-in instance receiving the
`stream; the type parameter represents the stream's MIME type. The stream
`parameter is a pointer to the new stream, which is valid until the stream
`is destroyed. The seekable parameter specifies whether the stream is
`seekable (true) or not (false). Seekable streams support random access
`(for example, local files or HTTP servers that support byte-range
`requests). The plug-in can set the type output parameter type to various
`transmission modes and the embodiment chooses the mode based on whether
`the control key is down or not. If the control key is currently down
`(background download is requested) the type NP_ASFILEONLY is selected.
`The plug-in gets full random access to the data using platform-specific
`file operations. Browser 20 saves stream data to a local file in the
`cache, and, when the stream is complete and delivers the path of the file
`to the plug-in through a call to NPP_StrearnAsFile. The URL will not be
`launched in a browser window or replace the contents of the current
`window. This mode will fetch the page to the Netscape cache without
`causing it to be displayed on a window. If the control key is not held
`down then the type of the fetch will be NP_NORMAL which will allow for
`the default behaviour of the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket