Browser UI/UE & Embedding QA Status
- Claudius - Search, Bookmarks, History, Toolbars
- Monitoring and responding to avalanche of Bug-email.
- Ad-Hoc testing on trunk builds.
- Wrote 2 search testcases.
- John - XPToolkit/Widgets, XUL, XUL
- Gave pavlov the results of a survey of image sizes for typical web
sites, which he wanted to use in tuning how imglib operates: http://jrgm/perf/notes/image-sizes/note.html
- Spoke briefly with Prashant about options for capturing screenshots
automatically (`import` command on linux), and how one might compare
("fuzzily") two images (do a sum of the differences of RGB values?).
- Spoke with junruh about setting him up with the page loading application
for all pages with SSL, so he can look at performance issues with SSL
changes, and we agreed to do this in a week or two. Cool!
- Had a quick look at adding HTTPS/ SSL support to the test server
for page loads (by request of choffman, from a suggestion by Chris Nelson).
May do this next week.
- Had a look at jband's JS/XPConnect profiler, and worked with Blake
to get him running with it. Wrote a little script to post-process
the output, and passed on to Blake to try out.
- Discovered that pink's 450MHz G4 was 1/3 faster than twalker's 450Mz
G4 Mac -- that's 4.5s/page instead of 6.6s/page. Found out that the
slowdown wrt tracy's mac is due (at least in large part) to Mac File
Sharing, and that that is just the way the Mac is. :-[
- Prepared and presented a short talk on the page-loader app for QA
- Sarah - Preferences, GUI, Command Line, Context Menus, Keyboard
- what can i say? unfortunately sick most of this week. however, did
manage to do a *few* things...
- with some tips from doron rosenberg and leaf, figured out how to
build mozilla with security [psm]. yay!
- periodically checked for new blockers/critical bugs in my areas,
- Shrirang - Plugins, OJI, Composer
- Verified bug fixes on branch and trunk builds
- Reassigned sidebar/ printing bugs to Sujay
- Testing Composer as a primary objective, specifically concentrating
on menus and dialogs
- Filed bugs for problems found in Composer
- Set up the build system on my windows box
- Terri - Cut&Paste, Drag&Drop, Text Selection, Imaging,
Help, Password/Form Manager
- Came up to spend some time in Mountain View with MIB
- Sujay - Composer, Printing, Sidebar
- verified several(~20+) bugs for Editor component
- installed and troubleshoot daily builds on Windows, Mac and Linux
- filed few bugs(~2-3)
- processed verification requests from Engineering(Beth, Kathy,etc.)
- tested Find/Replace functionality(more complex testing)
- tested Sidebar and Printing features per testcases
- Patty - Skins
- Completed the "Resolved-fixed" for the trunk builds.
- Completed the "Resolved-duplicated" for the trunk builds.
- Michael - Embedding
- Continued Test Plan Creation (still struggling along)
- Installed LINUX (finally configured)
- Meetings with Jud, Team
- Bug Review
- Brent - Embedding
- Paul - Embedding & Browser
- Attended the weekly Embed meetings as well as the ns 6.x project
- Began to setup the feature page for ns 6.x
Volunteer QA and Testing Status
Asa Dotzler <firstname.lastname@example.org>
- Fabian Guisset
- Bug triage (js engine, bookmarks, browser-general)
- Attended OSDEM : conferences about Zope, Mozilla, OSS development,
- Helped a little Daniel Brooks with his new Page Info (bug 52730)
- Working on Bookmarks spec, QA documentation, More bug triage
- Keyser Sosez
- Changed the Status of: 109 bugs
- patched bug 62480
- Getting set up to watch Compositor to help triage misfiled Composer
bugs to the Editor component
- Chris - Core Gecko Embedding, CSS1/2, HTML Tables
- Updated Mozilla QA Page
- Set up the environment and build a debug build on new NT machine
- In process of learning tool to run regression tests in debug build
with Buster (Steve Clark)
- Gerardo - Gecko & Necko QA Mngmt., HTML, Events
- Updated the
Gecko & Necko Test Plan, and set up a team meeting
to go over QA Planning for next release.
- Provided Vlad with samples of testcase matrices for Form Submission.
- Looked at the automation crashes reported in DOM and JS test result
- Ian - CSS1/2, DOM2
- Merged CSS test case matrices.
- Performed 404 bug modifications / comments / triage / etc.
- Nominated various bugs for nsbeta1/mozilla0.9.
- Prioritised the
most important layout-orientated compliance bugs.
- Jan - DOM1, Parser
- Ran automation for Win98/Mac
- Performance Testing
- Petersen - XML, HTML Frames, Layout
- Finished conversion of remaining HTML 4 tests (180) to XHTML 1.0
- Posted files to slip and create new matrixes for XHTML Frames,
XHTML Tables, and XHTML Elements.
- Phil - JS Engine, LiveConnect
- Triage of incoming bugs
- Rewriting tests involving indirect calls to eval()
- Rewriting tests involving comma operator
- Writing tests for the arguments object
- Rhino makefile has bit-rot
- Prashant - Client-side JS (DOM0)
- Worked on checking which of DHTML CSS properties are supported
and are going to be supported.
- Created document which tells clearly which ones are supported and
which ones are not.
- Working in necko automation failure.
- Tom - Networking
- Finalized test cases for testing secure cookies over https
- re-started posting default http headers on necko newsgroup per
- continuing to work on lowering bug verification count
- Vlad - Form Submission
- Finished the test case harness
- Developed some testcases
- Helped verify attachment bug 3754
- Worked on assign bugs.
- Reviewed new daily bugs, reproduce/narrow down problem as needed.
- Installed daily mtrunk build to do ad. hoc testings and verify
- Verified a few bugs, this completes all Resolved/Fixed bugs in
- There are 11 Biff new/assigned bugs, 5 Intelligent Send and 5 printing
bugs. I have changed the qa-assigned to sheelar.
- There are a total of 87 attachment outstanding bugs, including
new/assigned/reopened/resolved. It may take a while to change the qa-assigned
- While running the basic functional testing, I was unable
to migrate my personal profile from 4.7 to seamonkey. Thanks to
Seth for helping me solving the mystery. See bug 67365 for details.
- Verified 8 bugs (fixed, dup, worksforme) all platforms
- Confirming, reassigning bugs which belong to my area.
- Logged in couple of new bugs
- Ran feature Save as(file,template) test cases on trunk build for
- Did my usual performance testing, this time, on Mac and Linux,
- Resolved a bunch of bugs, some Esther's, some Lisa's, also top
bugs or incoming duplicates.
- I've got a much better understanding of how NNTP works (it's actually
pretty simple), but David B and Seth are cleaning up our connections,
so as to increase performance overhead.
- Continuing with the updating of 6.x test cases
- Worked with Sheela and Fenella to finalize who would be taking
XPInstall, Security (non-crypto), Installer,
Profile Manager/Migration QA Status
- Did manual testing of Trunk and MTEST Seamonkey builds on Win32,
Mac OS 9.04, testing the Security Advisor UI, warning messages, ciphers,
cert handling, and lock icon behavior.
- Tested the single signon feature on Mac, Linux and Win32.
- Filed several new Seamonkey bugs.
- Verified Seamonkey bugs assigned to me or verifyme.
- Kept familiar with and up to date with open crypto bugs.
- Tested OJI on the Mac.
- Tested SSL/IMAP and SSL/SMTP with Seamonkey.
- Started working on creating test plans for PSM 2.0
- Trunk build testing for Win/Mac/Linux Installers/ ProfileManager/Migrator
- Bug reproducing/testing/investigating/verifying
- Planning for XPInstall 6.x testing
- Prepared/ran acceptance test cases for new Execute and Wait
- Checking bug database
- Completed Linux acceptance scripts to test Install.execute() blocking
- Completed Linux acceptance scripts to test File.execute() blocking
- Started writing Linux functional test cases for execute().
- Form elements store 80% less data in session history. (We no longer store the
state of the form controls if they are the same as the default setting)
Fixed large memory leak incurred when printing.
offline printing. Depends on landing of imagelib rewrite.
printing ART images (62562) has an ETA of 2/10 but has not been closed!
Rod Spears tentatively will be on Sabbatical from Mid May thru MidJuly
Priorities for next week:
Check in fixes for 59103 and 64805.. printing leaks
66781 - Mac UI printing work
Printing Embedding meeting
- Rod Spears
More testing on 65747 (<input type="image"> works only if theimagecan
67296 - Printing selection: borders outside selection are printed
67293 - Printed Footer: Time is constantly '22:00'/'10:00 PM'
- Waqar Malik
17027 - Eliminate dead code from layout to reduce footprint - check in fix
- Eric Pollmann
- Kevin McCluskey
41134 - Entire image redraws each time new rows are rendered. Check in patch.
19256 - Excess frame redrawing during incremental reflow.
- Don Cone
checked in all the printing Frame/selection code with Rod.
Worked at finding frame crasher.. now fixed.
Checked in Printing API's for embedding
worked on and found a printing leak (leaked a ton of memory for each job)
Printing API meeting
- Rod Spears
Printing - Completed initial work on printing of Selected Frame,and theprinting
It is was all checked in for Mozilla 0.8
Caught up on all my "New" bugs
67967 - removed unneeded :-moz-checkbox from layout
After speak ing with Kevin, it sem that we do not want to
removethis because it
provides functionality for skinning the checkbox, which is
we move over to XBL-based form controls
(Worked on several bugs, I forgot to keep track)
67537 - Print selection/pages doesn't work
UNIX regression in the JS code
66805 - Print dialog says 1001 pages
66804 - Print page range produces unexpected page definitions
57584 - Test8's button uses bad style >>> style="bg.jpg"
67497 - buttons text isn't shown when using HTML stric
65747 - <input type="image"> works only if the image canbe loaded
- Waqar Malik
58935 Images sometimes vanish after page finishes loading
29311 code to set window position called excessively on GTK
17027 Eliminate dead code from layout to reduce footprint
49979 name attribute of Button element fails.
54985 redrawing problem with select/listbox
64902 form popup in iframe appears in wrong place after scroll
57589 crashes when opening GAIM link
53492 GTK form widgets are sized incorrectly with TrueType fonts
37779 nsImageFrame repaints entire image instead of just the dirty rect
- Eric Pollmann
- Kevin McCluskey
Participated in weekly SVG teleconference
Attended 2 meetings on BlockFrame hosted by Steve Clark.
Interviewed 2 people.
- General bug triage.
62675 - Remove unused code in the view module.
66034 - Content in Mozilla disappears seemingly at random. Tracked down
cause to be a change in the chrome xul files.
41134 - Entire image redraws each time new rows are rendered. Created patch-
waiting for tree to open for mozilla0.9
19256 - Excess frame redrawing during incremental reflow. Identified the
problem. Discussed possible solutions with Steve Clark.
66805 - Print dialog says 1001 pages. Produced an attempt at a fix.
Summary (details below)
Dave Hyatt got his new outliner widget up. It is blazingly fast and
Dave also found and fixed (with Pierre Saslawsky's help), a 21% slowdown
in page load time.
Eric Vaughan made excellent progress on accessibility - navigation, DOM-walking,
and an nsIAccessible XBL widget.
Chris Saari got GIFs working and XUL rendering using libpr0n.
Brian Ryner has been fixing PSM bugs at an incredible rate, when not helping
with nsIPrompt work.
The XPToolkit team resolved 37 bugs in the last week, fixing 16 of
these. For details, see our
Mike Pinkerton (pinkertoni)
Helped lots of folks get the Mac build ready for the milestone: applying
patches, reviewing code, doing builds, running timing tests, etc.
Chris Saari (saari)
- GIFs working in libpr0n (animations need to animate still, but
they decode happily). XUL renders.
- moz 0.8 bugs 64313 and 48959 tested, updated and ready to go on all platforms.
Daniel Matejka (danm)
I got the embedding-compatible window mediator component done on Windows
(65229), except for its "window.open" capability (67368). I have
a build in which the window.open capability is compiling. It requires a
small API change which will affect embedding clients. This wants an API
review, which will be coming soon.
Eric Vaughan (evaughan)
- Implemented a dom walker for the accessible system
- Successfully implemented an nsIAccessible in XBL
- Got basic navigation to work
David Hyatt (hyatt)
- Have a new tree widget, <outliner>, displaying columns, rows, and
cells, and scrolling. The new widget is capable of displaying 5,000,000
items in 100ms on a debug SeaMonkey build.
- Discovered the source of a 21% slowdown in SeaMonkey and produced
a patch that rectifies the problem. Much thanks to Pierre S. for
his help in supplying data that proved the throbber was only about 10%
out of the 30% slowdown.
- Finished implementing XBL insertion points with siblings and made them
work in the presence of dynamic DOM changes and with display: nonecontent.
Dan Rosen (dr)
- lots of w3c stuff, took on some work on xpath 2.0 requirements
- work with ray whitmer on some dom xpath stuff
- fixed 30481 and regressed something bigger. did the "getting
backed out" dance.
Brian Ryner (bryner)
- 67412 (set correct callbacks for nsIPrompt on imap channels)
- 67530 (failure sending mail if psm isn't installed)
- 67507 (implement TLSStepUp in psm2)
- 67582 (set channel on securityinfo object for
- 67709 (assertions typing in editor)
- 67257 (clean up psm module registration)
- help carbon changes and build changes land monday
- make mac suck less
- learning carbon event model for reducing cpu usage on OSX
- looking at window update speed on mac (again)
- make "about mozilla" work
- land changes for 64313 and 48959
- hiding away and working on libpr0n. JPEGs still need work to render
correctly, updating the mac rendering code to keep up with the other platforms,
giving the GIF decoder another pass for efficiency to eliminate memory
thrashing and redundant passes over the data since IE is visibly faster
than we are at decoding (either that or we're not doing as much asynch
buffering of data off the net as we could be).
- the outliner widget
- conditional XBL for accessibility work
- Get DOM walker to ignore tags that do not implement nsIAccessible
- build an accessible style sheet for html so we can implement accessibles
- opening windows without appshell, bug 67368.
GetRootContent and GetDocumentElement callers must null-chec
new window posing API and implementation
- Tab and other navigation bugs needed for accessibility.
Daily testing and reporting of reflow and boehm collector leak
information has started.
reflow data now posted
some interesting data in the benchmark established last week.
Lots of activity in the performance news group this week
and we are starting to get some traction on analyzing and
coming up with some performance fixes in several areas
of the code.
Drop by the newsgroup and help out with the work going on there
if you have some extra cycles..
Get involved with the 4P performance program ;-)
- Profile it.
- Post analysis
- Phile bugs
- Phix 'em.
- dougt finished the channel changes but mac is still an issue. He needs all the Mac help he can get. scc and simon have offered help. Thanks to them both.
- cache exec review on Monday!
- Isolated performance slowdown (bug 66516) introduced by AsyncWrite changes.
- Triaged bugs for 0.9 milestone.
- More cache meetings resulting in a happy new cache design/interface.
- Working on bugs 58034, 58037, 13393, 58040.
- Working on patches submitted for HTTP/1.1 compliance bugs.
- Triaged bugs for 0.9
- Checked in fix for bug 66508 for Mozilla 0.8
- Resolved design issues with caching objects (ImgLib)
- Moved off of cache branch/nsCacheService works alongside nsCacheManager (for now)
- Updated cache IDL files to reflect changes from design reviews
- Triaged 88 cache bugs for upcoming Exec Review
- Getting close to landing Necko Channel changes branch.
- Actively participating with Protozilla. Possible merge with the mozilla source base as an extension. This project allows extending and replacing protocols.
- Landed Necko Channel Changes
- Resolved mozilla 0.8 bugs
- new image library:
- worked on new image drawing code to replace the temporary code currently being used for testing
- added temp image cache. Got multiple simultaneous image loads of the same image only loading/decoding the image once.
- worked a bit on the JPEG decoder.. still not quite working.
- fixed various crashes, leaks, etc in the new code.
- converted nsImageDocument to use new APIs (and not cause two image loads from the net)
- fixed origin offset problem when drawing images with a border around them.
- discussed new cache with Gordon and Darin. We have a plan. We will use the new cache design once the memory cache part works.
- Chris Saari has GIFs decoding and drawing. He is working out the kinks in it and should have it in by monday.
- prepared for the exec review for cache
- checked in the last few changes of SchemeURI
- Two days spent trying to get proper access to ftp.mozilla.org so that I could post bits for QA. I requested rights from IS.
- Regressions caused by landing channel changes.
- nsIURI::FILE is a conflict warning with file variable of nsFileURL. I hope to clean this up this coming week.
- we need a better way to upload custom builds (like Dougt's channel changes) to a public/outside the wall FTP site.
Plans for the next week
- Fix performance problems (bug 66516).
- Land UNIX async DNS patch (bug 10377).
- Work on 0.9 bugs.
- Investigate 62787
- More bug triage.
- Watch for Exec Review outcome
- Implement memory object cache for ImgLib
- recover from Necko Channel Changes
- new image library:
- Convert XUL image frame to use new image loading APIs.
- Convert background images to use new image loading APIs.
- Work on animations (once GIF decoding is working nicely)
- Convert to using Doug Turner's necko changes.
- Prepare for project review meeting.
team resolved 30
bugs this week
bug count: 121, on-track count: 117
team resolved numerous correctness issues this past week
team is continuing to triage their mozilla0.9 bug list
editor team played sheriff on Thursday
Individual Status Updates:
Worked with Joe diagnosing the problem in bug 68166, the regression coping
text from preformatted blocks.
Worked with Blake on bug 62431, involving getting the correct scrolling
view for an ender widget.
We have a solution that works for text fields, but have not yet been able
to determine how to get scrollbar visibility information from a multiline
Improvements to Tableize -- I have code in my tree which will tableize
and retain inline html formatting, and should be more robust than the initial
Installed a new SCSI cable and got my Jaz drive working again.
Several code reviews for AaronL.
Talked with Hyatt about key bindings, and worked on bug 18508, making the
XBL key binding structure more flexible.
got 3 Fixes in my tree (waiting on tree to open) :
58409 - GetPosition and GetPositionSlowly call to the prefs service
every time (Thanks shaver and akkana)
59005 - Saving html with selects saves unneeded state.
67985 - Can't instantiate nsEditor anymore.
Fixed and checked in 55921 - Clicking to the right of a link doesn't clear
Checked in Joe's Changes for fixing Drag and Drop (bug # 67109)
Continuing selection/range/caret/output bug work.
More bug investigation and triaging.
spent Monday at UCSD doing the recruiting thing
triage mozilla0.8 and mozilla0.9
debugged a slew of new bugs this week
attended W3C HTML WG phone conference
attended several meetings throughout the week
numerous discussions about publishing and css support, writing a document
to capture the on-going issues involved
reviewing W3C documents
reviewing Help documents
Bugs fixed and checked in: 66745 (Save over existing files fixed in BEOS),
67396 (menulist in List Properties dialog.)
- (Tree closed since 2/26 for mozilla0.8 milestone)
Bugs working on: 57398 (Spell check dialog issues), 66300 (JS interface
work for embedding), and the usual amount of debugging and bug triage on
Helped AnatoliyA in IM group with CSS concerning "emoticon" features.
Rewiewed next version docs by Robin.
integrating comments to a Last Call Working Draft for W3C. The list of
answers has to be ready for march 1st
started writing cook-books
about the style engine
still working on dom 2 css for the editor
preparing trip in boston+mv+sd : agenda, issues, etc.
worked on table pasting woes
landed several moz 0.8 fixes
worked on plaintext paste regression
worked on whitespace issues
discussions about css and publishing
discussions about URI's and escaping in editor
checked in fixes for drag & drop in editors and caret bug in textareas
push for image map editor fixes (mkaply/cmanske checked in one; Brian King
e-mailed me others)
try to get an AOL work account
Fixed Monday morning Commercial Tree nsCOMPtr bustage.
Several code reviews.
Triaged and did some preliminary debugging of various bugs.
Did a tiny bit of work on the TransactionManager. (Started implementation
Had various discussions with members on the team.
Sheriffed Thursday morning/afternoon.
Working on xpidlizing and becomming more familiar with xpidl in general.
I am now going back and working on editing (sometimes noting where editing
will take place) the actual editor interface implementations. since
xpidlizing the nsIEditorXXX stuff will cause me to change some prototypes,
the decision was to actually change the implementation rather than slap
a series of [noscript]s around the place. So as to avoid conflicts i am
going to note where these changes are that are difficult to change and
maybe come back when i can perform actual checkins here. Maybe we should
make a branch for this work?
Still working on editor ownership issues for embedding. My first cut needs
revision, as it does not allow someone to make a frame editable on the
Had discussions with Adam Lock, Judson Valeski et al. about embedding APIs,
and where the command manager should be implemented. Started working on
the command manager API.
Debugged a problem with failed image loading on Mac (66508),
which Gordon fixed by migrating a fix from the branch.
Generated some data on XPCOM CreateInstance calls, filed bugs on two areas
that seem to do way too many CIs (bugs 68074,
found a problem with duplicate IIDs (bug 68073).
Generated some data
on Malloc calls, pointed fingers are some bits of malloc-happy code
Interviewed build team Mac candidate
Several code reviews, some large (Beard's carbon changes)
Spent some of Sunday looking at the dougt bustage, figured that it was
we need to somehow have a better mechanism in resolving mac support issues,
some changes that need to be addressed:
Need more participation from the fringe Mac engineers
Need to hire more Mac people
Need a dedicated team for Mac problems
many regressions across the application this past week
mail server issues are killing productivity
tree closure issues
Akkana out on 2/5
Daniel out on 2/5
Kathy out on 2/6
Kin on vacation 2/9 - 2/16
Status for 12 February 2001
Highlights / People
Peter van der Beken is helping out Heikki on the Mac on content separation
from layout. Thanks Peter!
Harish continues his excellent bug fix rate. He landed seven
m0.8 bug fixes last week!
Tom continues on bug triage of his bug list
Nisheeth will attend the O'Reilly Peer to Peer conference in San Francisco
from Wednesday, Feb 14 through Friday, Feb 16.
Heikki works from Finland this week. He will be back in Mountain
View next week.
Tested jst's patch to fix the xpinstall link problem (part of the work
to separate content from layout). The patch works so we are ready to go
on Linux and Windows, waiting for Mac.
Worked on a fix to fix the XHTML style element - waiting reviews.
Worked on a fix to make XHTML check the case of the XHTML elements - waiting
Fixed ( landed ) seven of my m0.8 bugs ( 63661,33051,58922,61462,63423,40885,43678
Fixed ( landed ) regressions ( 68008,68160 ) that I introduced a couple
of weeks ago.
Worked with Scott Collins on my last m0.8 bug ( 66562 - Smart Update bug
). Fix in hand :-).
Implemented most of the FONT properties for getComputedStyle().
Attended Phil's staff and memory footprint meetings.
Triaged my 0.9 bugs ( Current count: 8 ).
Made some more progress on the conversion to make the DOM use XPConnect.
Resolved (at least partly) a string issue wrt passing null through our
string classes. Many thanks to jband and scc for their help with this issue.
Fixed bug 67563. Added null pointer checks to avoid crasing when accessing
certain properties on orphan OPTION, TD and TH elements.
Fixed regression bug 67713 that I introduced in my content code re-org
in the end of last december. button.focus() was incorrectly throwing an
Fixed bug 37763. Made applet elements that are not associated with an Java
applet still be scriptable as a normal DOM node.
Fixed regression bug 68139. Accessing radiobutton.value always returned
the defalue value.
Worked on random mozilla0.8 and mozilla0.9 bugs.
Was out most of the week due to illness
Started porting Heikki's content/layout split-up to Mac
Triaged untargetted bugs down to 8 bugs. Asked for additional info
on most of these and will triage them according to the new info as it comes
Had two 0.8 bugs to work on. Fixed one. After a discussion
with Johnny that he's changing all the code underneath the other fix I
decided to push that bug off to 0.9 and fix it it conjunction with his
Started work on 0.9 stuff.
This week intend to work on 0.9 bugs
Fixed bug 44094
Attended W3C reps meeting on Friday
Met with Ray Whitmer and Dan Rosen to talk about XML Query issues
Attended the Web Platform department meeting on Thursday
Organized bug triage of 0.9 bugs for team. Triaging continues into this
Attended the Hamerly's monthly managers meeting on Tuesday
Held 1-1s with Harish, Johnny, and Peter
Plans for next week
Check in the fixes in my tree, including the separation of content from
Triage my bugs.
Fix m0.9 bugs
Implement more properties for getComputedStyle.
Triage my untargeted bugs.
Attend Phil's staff.
Continue working on the conversion to make the DOM use XPConnect.
Continue working on my 0.9 bugs.
Assist Heikki on Mac
Work on HTML output from XSLT
Provide new binaries for Transformiix
Triage every last bug.
Write new key event spec for W3C
Attend O'Reilly P2P conference from Wednesday to Thursday
Continue to organize triage for team's bugs
Attend the Standards Exec Review on Tuesday
External Project Reports