tjduavis.JourneyMan

weblog dedicated to software development, philosophy, and theology

MXR, A DPS911 student’s best friend

Leave a comment

I’m loving MXR more and more! I think I’m getting more comfortable with this tool and so I think I’ll raise the bar just a little bit for myself and aim to provide both the last two features that Alex Faaborg suggested for my release 0.6. I’m also planning to clean my code and include the comments and feedback that Dietrich provided.

Here are the ways I think we should consider exposing the ability to tag

multiple pages at the same time:Adding tags:

-multiple selection, editing the tag field in the properties pane
-multiple selection, drag operation to the tag in the left pane
-multiple selection, copy and paste to a tag folder

The one that is fascinating and challenging about developing bug fixes is that you are forced not to program for yourself which again is one key lesson learned in Barb’s Systems classes -my own personal opinion. The job is to take something that has been created and updated by numerous people, use all that and creatively attempt to apply your solution making sure that it not only works but its cohesive with the entire application / system… that’s why I agree with my Stock Broker neighbor’s perspective on computer science: “Computer science? I thought that’s more of a an art than a science…”

Lesson Learned

A lesson learned based on my previous patch thats worth sharing to new mozilla code contributors is when submitting prototype patches –that is code thats not ready to be reviewed for checkin into the source, Firefox full time engineers prefer the following:

> So basically you want me to clean up the code? So in the future when I
> submit prototype code I will just attach the file but not assign it for
> review? The assign for review is something more formal? That's what I wanted
> to talk to you about.

here's how i do it:

1. upload "WIP" (work in progress) patches, no review request, to save
my work, and for drive-by reviews of the approach
2. once you think a patch is ready to be added to the product, ask for review

Progress notes on release 0.6

My initial search for a solution to release 0.6 and some results that stood out and I’m going to further investigate. I just want to describe and share what and how I searched for a solution within MXR.

Used “drag and drop” as a value for “Text Search” field.

/browser/base/content/browser-places.js,

* line 740 — * Drag and Drop handling specifically for the Bookmarks Menu item in the

/browser/components/places/content/controller.js,

* line 1508 — * Handles drag and drop operations for views. Note that this is view agnostic!

Used “drag and drop” as a value for “Search for” field and filtered the “in files matching” field to query anything with a value of “places”. The filtering by file name (“in files match”) happens when you initially perform a “Text Search” in http://mxr.mozilla.org/firefox/.

/browser/components/places/content/controller.js,

* line 115 — case “cmd_paste”:
* line 116 — return this._canInsert() && this._isClipboardDataPasteable();
* line 189 — case “cmd_paste”:
* line 215 — case “cmd_paste”:
* line 216 — this.paste();
* line 342 — * Looks at the data on the clipboard to see if it is paste-able.
* line 343 — * Paste-able data is:
* line 349 — _isClipboardDataPasteable: function PC__isClipboardDataPasteable() {
* line 351 — // pasteable, with no need to unwrap all the nodes.
* line 1138 — * Paste Bookmarks and Folders from the clipboard
* line 1140 — paste: function PC_paste() {
* line 1171 — * Gets a list of transactions to perform the paste of specific types.
* line 1173 — * The types of data to form paste transactions for
* line 1174 — * @returns An array of transactions that perform the paste.
* line 1208 — // Get transactions to paste any folders, separators or links that might
* line 1213 — var txn = PlacesUtils.ptm.aggregateTransactions(“Paste”, transactions);
* line 1216 — // select the pasted items, they should be consecutive

/browser/components/places/content/utils.js,

* line 825 — * Constructs a Transaction for the drop or paste of a blob of data into
* line 828 — * The unwrapped data blob of dropped or pasted data.
* line 832 — * The container the data was dropped or pasted into

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s