<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>27434</bug_id>
          
          <creation_ts>2009-07-19 15:48:14 -0700</creation_ts>
          <short_desc>adding necessary functions and properties to Document IDL gobject bindings</short_desc>
          <delta_ts>2011-07-11 13:06:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>16401</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Luke Kenneth Casson Leighton">lkcl</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133034</commentid>
    <comment_count>0</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 15:48:14 -0700</bug_when>
    <thetext>this is part of the split of #16401 patch into separate patches
under an agreement suggested by david.

inexplicably, three key features that are available under javascript bindings have been shut out: ability to change a document&apos;s domain; ability to set its location (and thus do weird but essential stuff); call document.getSelection().

it should be fairly obvious as to why these would be needed: the fact that they exist in javascript is reason enough alone, to put webkit language bindings &quot;on a par&quot; with javascript and also with its peers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133035</commentid>
    <comment_count>1</comment_count>
      <attachid>33063</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 15:50:29 -0700</bug_when>
    <thetext>Created attachment 33063
adds 3 essential features to gobject document idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133239</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-20 14:54:58 -0700</bug_when>
    <thetext>These again seem like they shoudl be !objc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134057</commentid>
    <comment_count>3</comment_count>
      <attachid>33063</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-23 00:56:27 -0700</bug_when>
    <thetext>Comment on attachment 33063
adds 3 essential features to gobject document idl

&gt; Index: WebCore/dom/Document.idl
&gt; ===================================================================
&gt; --- WebCore/dom/Document.idl	(revision 44473)
&gt; +++ WebCore/dom/Document.idl	(working copy)
&gt; @@ -154,7 +154,8 @@
&gt;  
&gt;                   attribute [ConvertNullToNullString] DOMString title;
&gt;          readonly attribute DOMString referrer;
&gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt;                   attribute [ConvertNullToNullString] DOMString domain;
&gt;  #else
&gt;          readonly attribute DOMString domain;

I wonder why the non-JavaScript case is marked as readonly. The HTML 5 spec suggests it should not be.  It may be that we should consider removing the #if&apos;s here.

&gt; @@ -180,7 +181,8 @@
&gt;  
&gt;          NodeList getElementsByName(in DOMString elementName);
&gt;  
&gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt;                   attribute [Custom] Location location;
&gt;  #endif

This is flagged as being [Custom] but I don&apos;t see a gobject method implementing this property anywhere in the patch.  Did you forget to include it?

&gt; @@ -193,7 +195,8 @@
&gt;          Element            elementFromPoint(in long x, in long y);
&gt;  
&gt;          // Mozilla extensions
&gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt;          DOMSelection       getSelection();
&gt;  #endif

The #if&apos;s should probably be removed from this one.  The method was added in &lt;http://trac.webkit.org/changeset/30515&gt;, where the ChangeLog notes that it was restricted to JS as it was only added for web compatibility.  Since then, the getSelection attribute on Document has made its way in to the HTML 5 specification: &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#documents&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134060</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-23 01:13:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; @@ -180,7 +181,8 @@
&gt; &gt;  
&gt; &gt;          NodeList getElementsByName(in DOMString elementName);
&gt; &gt;  
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; &gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt; &gt;                   attribute [Custom] Location location;
&gt; &gt;  #endif
&gt; 
&gt; This is flagged as being [Custom] but I don&apos;t see a gobject method implementing
&gt; this property anywhere in the patch.  Did you forget to include it?

Thinking on this further, I suspect Custom may actually mean JSCustom so my question may not have been quite right.  The WebCore::Location object itself does not have any mutable members, while the IDL specifies that the properties are mutable.  The JavaScript bindings have custom logic for Location so that manipulating its properties results in the expected navigations.  Without this custom logic it&apos;s not clear to me how the bindings for Location will compile, and thus why it is useful to expose this particular attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134069</commentid>
    <comment_count>5</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 02:54:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 33063 [details])
&gt; &gt; Index: WebCore/dom/Document.idl
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/dom/Document.idl	(revision 44473)
&gt; &gt; +++ WebCore/dom/Document.idl	(working copy)
&gt; &gt; @@ -154,7 +154,8 @@
&gt; &gt;  
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString title;
&gt; &gt;          readonly attribute DOMString referrer;
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; &gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString domain;
&gt; &gt;  #else
&gt; &gt;          readonly attribute DOMString domain;
&gt; 
&gt; I wonder why the non-JavaScript case is marked as readonly. The HTML 5 spec
&gt; suggests it should not be.  It may be that we should consider removing the
&gt; #if&apos;s here.

 ok - i&apos;m happy to submit a [separate] patch and you can make a decision
 then.

&gt; &gt; @@ -180,7 +181,8 @@
&gt; &gt;  
&gt; &gt;          NodeList getElementsByName(in DOMString elementName);
&gt; &gt;  
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; &gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt; &gt;                   attribute [Custom] Location location;
&gt; &gt;  #endif
&gt; 
&gt; This is flagged as being [Custom] but I don&apos;t see a gobject method implementing
&gt; this property anywhere in the patch.  Did you forget to include it?

 no - i added it on the basis that its inclusion will have no impact on
 the day-to-day compilation of webkit.

 the implementation comes automatically as part of the addition of
 gobject property auto-generation, in CodeGeneratorGObject.pm.

 and as you know, that&apos;s being reviewed separately.
 
&gt; &gt; @@ -193,7 +195,8 @@
&gt; &gt;          Element            elementFromPoint(in long x, in long y);
&gt; &gt;  
&gt; &gt;          // Mozilla extensions
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; &gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt; &gt;          DOMSelection       getSelection();
&gt; &gt;  #endif
&gt; 
&gt; The #if&apos;s should probably be removed from this one.  The method was added in
&gt; &lt;http://trac.webkit.org/changeset/30515&gt;, where the ChangeLog notes that it was
&gt; restricted to JS as it was only added for web compatibility.  Since then, the
&gt; getSelection attribute on Document has made its way in to the HTML 5
&gt; specification:

&gt; &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#documents&gt;.

 ack, ok, likewise, i&apos;ll include it in a separate patch, as both 
 DOMString domain and DOMSelection getSelection() changes aren&apos;t
 specifically gobject-related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134074</commentid>
    <comment_count>6</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 03:23:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; @@ -180,7 +181,8 @@
&gt; &gt; &gt;  
&gt; &gt; &gt;          NodeList getElementsByName(in DOMString elementName);
&gt; &gt; &gt;  
&gt; &gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT
&gt; &gt; &gt; +#if (defined(LANGUAGE_JAVASCRIPT) &amp;&amp; LANGUAGE_JAVASCRIPT) || \
&gt; &gt; &gt; +     (defined(LANGUAGE_GOBJECT) &amp;&amp; LANGUAGE_GOBJECT)
&gt; &gt; &gt;                   attribute [Custom] Location location;
&gt; &gt; &gt;  #endif
&gt; &gt; 
&gt; &gt; This is flagged as being [Custom] but I don&apos;t see a gobject method implementing
&gt; &gt; this property anywhere in the patch.  Did you forget to include it?
&gt; 
&gt; Thinking on this further, I suspect Custom may actually mean JSCustom so my
&gt; question may not have been quite right.  The WebCore::Location object itself
&gt; does not have any mutable members, while the IDL specifies that the properties
&gt; are mutable.  The JavaScript bindings have custom logic for Location so that
&gt; manipulating its properties results in the expected navigations.  Without this
&gt; custom logic it&apos;s not clear to me how the bindings for Location will compile,
&gt; and thus why it is useful to expose this particular attribute.

 ohhh, i see.  hah.  right.  that helps to know that there will be extra
 work required to make that happen at some point.

 context: the pyjamas API provides access to location because that&apos;s
 what GWT does.  the functions provided _mostly_ comprise &quot;decoding&quot;
 of location (reading from it).

 however, for personal projects that utilise the pyjamas API, i never
 used _setting_ of location, i always utilised Window.open().  that&apos;s
 not to say that someone else might try to use them and get unexpected
 results, so i will submit a patch which makes them read-only for now.

 thanks for noting this, mark.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134076</commentid>
    <comment_count>7</comment_count>
      <attachid>33324</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 03:31:52 -0700</bug_when>
    <thetext>Created attachment 33324
adds read-only access to Document.location pending writing of custom code to set location properties (at some indeterminate future point)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134077</commentid>
    <comment_count>8</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 03:36:43 -0700</bug_when>
    <thetext>&gt; Without this
&gt; custom logic it&apos;s not clear to me how the bindings for Location will compile,

 they&apos;ll compile all right (and do) - it will just be that you set the
 location and nothing happens (because the custom code is missing).

 hmmm.... are we confusing setting of location itself with setting
 of location&apos;s properties?  looking at Location.idl, i&apos;d be reluctant
 to submit even an interim patch that switches on read-only on an
 already-overcrowded IDL file just for gobject bindings, and would
 instead place warnings in the pyjamas API [or just say &quot;nuts&quot; to it,
 because XULrunner, as the more mature bindings, i&apos;d expect to work
 fine]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134136</commentid>
    <comment_count>9</comment_count>
      <attachid>33324</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-23 09:56:14 -0700</bug_when>
    <thetext>Comment on attachment 33324
adds read-only access to Document.location pending writing of custom code to set location properties (at some indeterminate future point)

As far as I can see this doesn&apos;t really address the issue, which relates to a member of type Location being exposed.  Document::location being read-only does not prevent you from mutating Location::href, which will fail unless your bindings explicitly handle setters for Location&apos;s members in a custom fashion (WebCore::Location has no setHref method).  Given that the URL of a document is trivially retrievable from the ports WebView object, I don&apos;t see any reason to #if this particular member until the problem here can be addressed in a more robust manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134141</commentid>
    <comment_count>10</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 10:19:51 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 33324 [details])
&gt; As far as I can see this doesn&apos;t really address the issue, which relates to a
&gt; member of type Location being exposed.  Document::location being read-only does
&gt; not prevent you from mutating Location::href, which will fail unless your
&gt; bindings explicitly handle setters for Location&apos;s members in a custom fashion
&gt; (WebCore::Location has no setHref method).

 as a first revision, i&apos;d consider that to be acceptable.  anything else
 requires additional work.

&gt;  Given that the URL of a document is
&gt; trivially retrievable from the ports WebView object, I don&apos;t see any reason to
&gt; #if this particular member until the problem here can be addressed in a more
&gt; robust manner.

 ok - but that requires development.  i&apos;ve made it clear that further
 _development_ is not going to happen, not until the existing work is
 accepted.

 there&apos;s just far _far_ too much that&apos;s outstanding, and to increase that
 burden of work further is simply not acceptable. 

 so, unfortunately, you&apos;ll need to accept the reality of that.

 i&apos;ll happily document the required work, mark it as &quot;TODO&quot; etc. etc. but there will be _no_ further development until this series of patches which comprise #16401 are landed.

 you _do_ need to accept that, and adjust accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134143</commentid>
    <comment_count>11</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 10:22:33 -0700</bug_when>
    <thetext>ok - how about a patch which takes all of the properties in Location.idl
and makes them read-only?

that&apos;s simple (and i don&apos;t care if it complicates the IDL file). i&apos;m _not_
adding yet more code to this series, there&apos;s far too much outstanding as it
is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134150</commentid>
    <comment_count>12</comment_count>
      <attachid>33344</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 10:35:08 -0700</bug_when>
    <thetext>Created attachment 33344
makes Document.location and all Location properties read-only, pending writing of custom code (at some indeterminate future point)

like this?  what do you think?  it&apos;s an intermediate &quot;safety&quot; step.

i can&apos;t cut access to Location out entirely, because of the &quot;get&quot; code in the pyjamas API:

http://pyjamas.svn.sourceforge.net/viewvc/pyjamas/trunk/library/pyjamas/Location.py?content-type=text%2Fplain</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134154</commentid>
    <comment_count>13</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 10:45:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt;  ack, ok, likewise, i&apos;ll include it in a separate patch, as both 
&gt;  DOMString domain and DOMSelection getSelection() changes aren&apos;t
&gt;  specifically gobject-related.

done as https://bugs.webkit.org/show_bug.cgi?id=27603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134203</commentid>
    <comment_count>14</comment_count>
      <attachid>33344</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-23 12:37:29 -0700</bug_when>
    <thetext>Comment on attachment 33344
makes Document.location and all Location properties read-only, pending writing of custom code (at some indeterminate future point)

I would prefer that we skip generation of Location and Document::location until they can be supported properly.  As I noted in a previous comment, the WebKit APIs already provide mechanisms for retrieving the URL of a frame so I don&apos;t buy the argument that this property *needs* to be exposed *now*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134258</commentid>
    <comment_count>15</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-23 14:25:12 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 33344 [details])
&gt; I would prefer that we skip generation of Location and Document::location until
&gt; they can be supported properly.  As I noted in a previous comment, the WebKit
&gt; APIs already provide mechanisms for retrieving the URL of a frame so I don&apos;t
&gt; buy the argument that this property *needs* to be exposed *now*.

 this is similar to what sam asked, here:
  https://bugs.webkit.org/show_bug.cgi?id=27435#c10

 and, likewise, there are a number of reasons, repeated here.

 out of simplicity, to not massively disrupt the existing test platform - the _only_ comprehensive test platform, pyjamas-desktop, you don&apos;t go ripping sections of the available test suite out.

 you also don&apos;t go making developers&apos; lives more difficult.  if code has
 to be written that doesn&apos;t conform to the API, that&apos;s more code to maintain.

 yes, it _needs_ to be exposed _now_ because it&apos;s being _used_.  _now_.  and has been for several months.

 this isn&apos;t some futuristic API: it&apos;s in actual use.

 fortunately, as i mentioned, actual changing of location isn&apos;t being used (and hasn&apos;t been asked for) as there is Window.open(.....)

 so - sorry, but utilising some quotes &quot;existing&quot; quotes API that isn&apos;t actually the DOM isn&apos;t acceptable.  forcing people to write code that makes exceptions for webkit, by having a non-standard, non-DOM-based version of the API is _not_ a good enough reason to turn down a review.

 thus, review- is denied, which leaves me free to re-enable it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135714</commentid>
    <comment_count>16</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-29 16:31:32 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt;  yes, it _needs_ to be exposed _now_ because it&apos;s being _used_.  _now_.  and
&gt; has been for several months.
&gt; 
&gt;  this isn&apos;t some futuristic API: it&apos;s in actual use.

This argument is nonsense.  WebKit does not expose this method so by definition nothing is currently using it.

&gt;  so - sorry, but utilising some quotes &quot;existing&quot; quotes API that isn&apos;t
&gt; actually the DOM isn&apos;t acceptable.  forcing people to write code that makes
&gt; exceptions for webkit, by having a non-standard, non-DOM-based version of the
&gt; API is _not_ a good enough reason to turn down a review.

An application using WebKit by definition has to make use of WebKit-specific API.

&gt;  thus, review- is denied, which leaves me free to re-enable it.

And yet doing so without addressing the points that reviewers raise serves no purpose other than wasting our time.  We don&apos;t like having our time wasted.  Please stop it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135809</commentid>
    <comment_count>17</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-30 04:54:33 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt;  thus, review- is denied, which leaves me free to re-enable it.
&gt; 
&gt; And yet doing so without addressing the points that reviewers raise serves no
&gt; purpose other than wasting our time. 

 mark - with respect, in many cases, the complete opposite is the case.  i raise issues, and it is _you_ that do not answer them satisfactorily.  if at all.  in some cases, i have asked _nineteen_ times that you look at issues, and you have failed in your responsibility to do so.

 that having been said, i&apos;m aware that in #16401 there have been issues overlooked, and i apologise for that, but if you look closely, you will see that the sheer _number_ of issues involved means that mistakes are going to be made.

 i _did_ say, _very_ early on, that a single bugreport would be inadviseable to discuss this complex topic, but you and the other reviewers over-ruled me, even to the extent of closing down bugreports that i created to keep track of the issues related to #16401.

 so, i had to wait until it was _david_ who suggested that the bug be split down into separate patches, and it&apos;s why i&apos;ve quoted david&apos;s name at the top of each one, so that you and your associates don&apos;t go closing them down on a whim.


 so, it would do you quite a lot of credit, as a responsible reviewer, to be patient and accept that on complex issues, the &quot;process&quot; is creaking at the seams, and you have to work round that.



&gt; We don&apos;t like having our time wasted. 
&gt; Please stop it.

 neither do i like having my time wasted.
 please stop it.

 is that what you wanted me to say?  do you _want_ these discussions to go on, in this childish - and non-technical way?

 do you _remember_ your agreement in #16401 (around comment number 70), to stick to technical discussions?

 ehn?

 come on, mark.  if the process sucks, don&apos;t blame the people that are using it: learn from it, adapt and work with the _people_, not the process.  i&apos;ll do the same, ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135813</commentid>
    <comment_count>18</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-30 05:03:53 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt;  yes, it _needs_ to be exposed _now_ because it&apos;s being _used_.  _now_.  and
&gt; &gt; has been for several months.
&gt; &gt; 
&gt; &gt;  this isn&apos;t some futuristic API: it&apos;s in actual use.
&gt; 
&gt; This argument is nonsense.  WebKit does not expose this method so by definition
&gt; nothing is currently using it.

 you&apos;ve lost me.

&gt; &gt;  so - sorry, but utilising some quotes &quot;existing&quot; quotes API that isn&apos;t
&gt; &gt; actually the DOM isn&apos;t acceptable.  forcing people to write code that makes
&gt; &gt; exceptions for webkit, by having a non-standard, non-DOM-based version of the
&gt; &gt; API is _not_ a good enough reason to turn down a review.
&gt; 
&gt; An application using WebKit by definition has to make use of WebKit-specific
&gt; API.
&gt; 
 
 sorry, but you&apos;ve completely lost me.

 i thought we were discussing the definition of the webkit-specific API.

 please correct me if i&apos;m wrong, but it sounds like you&apos;re saying that the webkit API is set in stone, and that anyone wishing to make use of webkit must live with that, even if it doesn&apos;t do what&apos;s actually needed.

 ... but i doubt very much that that&apos;s what you&apos;re saying.

 please could you clarify?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135898</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-30 11:35:02 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; &gt;  thus, review- is denied, which leaves me free to re-enable it.
&gt; &gt; 
&gt; &gt; And yet doing so without addressing the points that reviewers raise serves no
&gt; &gt; purpose other than wasting our time. 
&gt; 
&gt;  mark - with respect, in many cases, the complete opposite is the case.  i
&gt; raise issues, and it is _you_ that do not answer them satisfactorily.  if at
&gt; all.  in some cases, i have asked _nineteen_ times that you look at issues, and
&gt; you have failed in your responsibility to do so.

You appear to think that because I disagree with you I must be uninformed.  I&apos;ve looked at the issues involved and reached a different conclusion, as have the other WebKit reviewers.

&gt;  i _did_ say, _very_ early on, that a single bugreport would be inadviseable to
&gt; discuss this complex topic, but you and the other reviewers over-ruled me, even
&gt; to the extent of closing down bugreports that i created to keep track of the
&gt; issues related to #16401.
&gt; 
&gt;  so, i had to wait until it was _david_ who suggested that the bug be split
&gt; down into separate patches, and it&apos;s why i&apos;ve quoted david&apos;s name at the top of
&gt; each one, so that you and your associates don&apos;t go closing them down on a whim.

You&apos;re conflating the recent filing of bugs (designed to get small patches landed) with your previous attempt to file bugs about things that would remain to be implemented if your original mega-patch were landed.  The former is quite reasonable. The latter simply doesn&apos;t make sense when the patch is so far from being landed.

&gt; &gt; We don&apos;t like having our time wasted. 
&gt; &gt; Please stop it.
&gt; 
&gt;  neither do i like having my time wasted.
&gt;  please stop it.
&gt; 
&gt;  is that what you wanted me to say?  do you _want_ these discussions to go on,
&gt; in this childish - and non-technical way?

What I would like you to do is quite simple:  stop wasting our time.  You can do this by being more reasonable and respectful in your approach to dealing with the WebKit community.  You can do this by simply going away.

To be quite blunt: I am sick of your incoherent ranting and your self-centered world view.  Even in the rare occasions that you stick to the technical issues it is barely possible to follow what you&apos;re saying.  Not because what you&apos;re saying is so brilliant that I cannot follow, but because it reads like it was written by a child with an ego the size of a small country.  You ramble and repeat yourself.  You demand special treatment.  You throw veiled insults at the people you&apos;re supposedly trying to work with.  You try and pass opinion off as fact.

The reason that no one responds in detail to comments that you make is because it&apos;s simply not possible to respond in a sensible way to something that doesn&apos;t make sense.  People have suggested many times that you be more concise and stick to the technical issues.  Unless you do that I&apos;m afraid you&apos;re not going to make much in the way of progress.

&gt;  do you _remember_ your agreement in #16401 (around comment number 70), to
&gt; stick to technical discussions?

&quot;Stop abusing the patch review process&quot; is a technical issue.  

&gt;  come on, mark.  if the process sucks, don&apos;t blame the people that are using
&gt; it: learn from it, adapt and work with the _people_, not the process.  i&apos;ll do
&gt; the same, ok?

The process isn&apos;t perfect, but you&apos;re the only one that has had such huge problems with it.  I&apos;m certain that this says more of you than it does the process.


[ This is a lot more personal than I had originally intended but, frankly, I don&apos;t see how else to address the fact that the person is the problem. ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135904</commentid>
    <comment_count>20</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-07-30 11:44:56 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; &gt;  so - sorry, but utilising some quotes &quot;existing&quot; quotes API that isn&apos;t
&gt; &gt; &gt; actually the DOM isn&apos;t acceptable.  forcing people to write code that makes
&gt; &gt; &gt; exceptions for webkit, by having a non-standard, non-DOM-based version of the
&gt; &gt; &gt; API is _not_ a good enough reason to turn down a review.
&gt; &gt; 
&gt; &gt; An application using WebKit by definition has to make use of WebKit-specific
&gt; &gt; API.
&gt; &gt; 
&gt; 
&gt;  sorry, but you&apos;ve completely lost me.
&gt; 
&gt;  i thought we were discussing the definition of the webkit-specific API.
&gt; 
&gt;  please correct me if i&apos;m wrong, but it sounds like you&apos;re saying that the
&gt; webkit API is set in stone, and that anyone wishing to make use of webkit must
&gt; live with that, even if it doesn&apos;t do what&apos;s actually needed.
&gt; 
&gt;  ... but i doubt very much that that&apos;s what you&apos;re saying.

That would be a stupid thing for me to say.  Thanks for suggesting that it was what I said.

You were arguing that it is vitally important to expose this incomplete DOM binding immediately, even though the same information (the URL of a document) is exposed via the WebKit API in a different manner.

My point is simple: I don&apos;t see the value in exposing an incomplete DOM binding for this property since there is an existing means of retrieving this information.  It doesn&apos;t seem worth the mess of #if&apos;ing up the IDL files and the confusion that would result from users who expected the exposed properties to behave in the standard manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136597</commentid>
    <comment_count>21</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-03 01:19:22 -0700</bug_when>
    <thetext>&gt; &gt;  please correct me if i&apos;m wrong, but it sounds like you&apos;re saying that the
&gt; &gt; webkit API is set in stone, and that anyone wishing to make use of webkit must
&gt; &gt; live with that, even if it doesn&apos;t do what&apos;s actually needed.
&gt; &gt; 
&gt; &gt;  ... but i doubt very much that that&apos;s what you&apos;re saying.
&gt; 
&gt; That would be a stupid thing for me to say.  Thanks for suggesting that it was
&gt; what I said.

 this comes across as a sarcastic comment, which i am sure you did not intend it to be.

 i did no such thing: i respectfully requested clarificaiton, which you&apos;ve kindly provided, below.  i apologise for giving the wrong impression.
 
&gt; You were arguing that it is vitally important to expose this incomplete DOM
&gt; binding immediately, 

 yes.  the read-only information is vital, and is in real-world usage, today.

 the writing can wait.


&gt; even though the same information (the URL of a document)
&gt; is exposed via the WebKit API in a different manner.

 in a manner which has knock-on complications for upstream development, yes.

 
&gt; My point is simple: I don&apos;t see the value in exposing an incomplete DOM binding
&gt; for this property since there is an existing means of retrieving this
&gt; information.  It doesn&apos;t seem worth the mess of #if&apos;ing up the IDL files and
&gt; the confusion that would result from users who expected the exposed properties
&gt; to behave in the standard manner.


 ahh, but mark, it was you who turned down the review on the simple
 approach, which was to just have the Document.location property made
 available and be done with it, on the basis that the custom functions
 can be added later.

 so, now i think we&apos;ve covered the possibilities, we have three approaches to take.  which is it going to be?

 1) make life damn awkward for upstream development

 2) &quot;complicate&quot; the IDL file (but protect users from the consequences)

 3) &quot;clean&quot; IDL, make things easy for upstream developers, with known
   consequences and an upgrade / development path which can be fixed
   at a later date?

1) isn&apos;t acceptable.  2) i can live with.  3) i believe is the best, pragmatic workable path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136694</commentid>
    <comment_count>22</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-08-03 10:26:35 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; even though the same information (the URL of a document)
&gt; &gt; is exposed via the WebKit API in a different manner.
&gt; 
&gt;  in a manner which has knock-on complications for upstream development, yes.

I don&apos;t understand what you mean by &quot;upstream development&quot;.  I suspect what you mean here is &quot;it would affect my project&quot;.  That is indeed unfortunate.

However, I don&apos;t think it&apos;s a reasonable approach for you to write a patch, start using it in your own project before it has been accepted upstream, and then insist it be accepted in the form you provided because you&apos;re using it in that form and you don&apos;t want to adapt to changes that are requested.

&gt; &gt; My point is simple: I don&apos;t see the value in exposing an incomplete DOM binding
&gt; &gt; for this property since there is an existing means of retrieving this
&gt; &gt; information.  It doesn&apos;t seem worth the mess of #if&apos;ing up the IDL files and
&gt; &gt; the confusion that would result from users who expected the exposed properties
&gt; &gt; to behave in the standard manner.
&gt; 
&gt; 
&gt;  ahh, but mark, it was you who turned down the review on the simple
&gt;  approach, which was to just have the Document.location property made
&gt;  available and be done with it, on the basis that the custom functions
&gt;  can be added later.

A simple approach that had similar issues to the current patch:  it exposes what is at best a confusing subset of the bindings.

&gt;  so, now i think we&apos;ve covered the possibilities, we have three approaches to
&gt; take.  which is it going to be?
&gt; 
&gt;  1) make life damn awkward for upstream development
&gt; 
&gt;  2) &quot;complicate&quot; the IDL file (but protect users from the consequences)
&gt; 
&gt;  3) &quot;clean&quot; IDL, make things easy for upstream developers, with known
&gt;    consequences and an upgrade / development path which can be fixed
&gt;    at a later date?

Since you&apos;ve injected hyperbole and omitted clarity from this list it&apos;s not clear to me what each of the options corresponds to.  I&apos;ll restate what I feel the situation is:

The patches so far expose a subset of the Location bindings that allows one to access the location of a Document.  The WebKit APIs expose existing means of accessing the location of a document.  I have not seen a good argument for why adding #if&apos;s to the IDL files in order to expose functionality that is already available via other means is a good thing.  Exposing full bindings for Location does seem like a good idea, but you&apos;ve expressed reluctance to do that at this time.  That seems fine to me, since as I&apos;ve mentioned the information is already exposed using other API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138044</commentid>
    <comment_count>23</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-08-07 12:34:08 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; &gt; even though the same information (the URL of a document)
&gt; &gt; &gt; is exposed via the WebKit API in a different manner.
&gt; &gt; 
&gt; &gt;  in a manner which has knock-on complications for upstream development, yes.
&gt; 
&gt; I don&apos;t understand what you mean by &quot;upstream development&quot;.

 ah, sorry.

&gt;  I suspect what you
&gt; mean here is &quot;it would affect my project&quot;.  That is indeed unfortunate.

 it would affect &quot;the&quot; project which i happen to be working on, yes.

 as i explained when martin also used a personal pronoun to refer to some code that i had written, i don&apos;t use personal pronouns to indicate claims of ownership over code.  it&apos;s a standard rule of software engineering: the usual phrase to refer to it is &quot;egoless programming&quot;.

 much appreciated if you could say &quot;the project that you&apos;re working on&quot; rather than &quot;your project&quot; etc. etc.

 so, anyway...



  i should explain [in the context of the project that i&apos;m working on, which happens to be the only active major project / test case / use case for these bindings]

 * pyjamas-desktop now has three ports: XULrunner, webkit and MSHTML.

 * all three have python bindings.

 * python-xpcom has read-only access to Document location properties
   [through a weird read-only interface], and the nsIHTMLDOMDocument
   interface appears to be TR-DOM2 only, with the location properties
   themselves [if you follow the weird interface] are read-write:

   http://www.oxymoronical.com/experiments/apidocs/interface/nsIDOMNSDocument
   http://www.oxymoronical.com/experiments/apidocs/platform/1.9.2a1pre/interface/nsIDOMLocation

  through which, it&apos;s possible to get and set location, in exactly the way that&apos;s intuitively expected.

 * MSHTML&apos;s COM interface has read-write access to Document.location:

     http://msdn.microsoft.com/en-us/library/aa752596(VS.85).aspx

     http://msdn.microsoft.com/en-us/library/aa703641(VS.85).aspx

 through which, it&apos;s possible to get and set location, in exactly the way that&apos;s intuitively expected.

 * webkit&apos;s javascript interface has read-write access to Document.location

 * webkit&apos;s gobject interface has a bun-fight going on over its format,
   with several options being presented and discussed.  [one is read-only
   identical access to what the other competitor language bindings
   provide]

 * webkit&apos;s gtk interface has a non-W3C-DOM-spec-compliant read-write interface

so - with the option that has the least &quot;knock-on complications for upstream development&quot;, the pseudo-code would look like this:

def getLocation(document):
    return document.location

and then, to get or set them, you just... do so.

that&apos;s pretty simple, huh?

with the method which you&apos;re recommending, _all_ upstream implementors [language bindings developers, users of the language bindings, or just people who use gobject c bindings direct] would have to do something like this:

def getLocation(document):
    if systemtype == &apos;mshtml&apos; or systemtype == &apos;xulrunner&apos;:
        return document.location
    else # heeere we go....
        class LocationWrapperToDealWithStupidAPIDecision:
            def __init__(self, document):
                self.wrapped_document = document
            def get_hash(self):
                return webkit_web_frame_get_location_hash(self.wrapped_document)
            def set_hash(self, value):
                ......
            .....
            .....
            .....

        return LocationWrapperToDealWithStupidAPIDecision(document)


do you see how pointless and ridiculous that is?

do you also appreciate how much work it is?

now multiply it up by the number of developers of language bindings.



&gt; However, I don&apos;t think it&apos;s a reasonable approach for you to write a patch,
&gt; start using it in your own project

 [correction: using it in a project which is entirely free software,
 on which i happen to have chosen to contribute to]

&gt; before it has been accepted upstream, and
&gt; then insist it be accepted in the form you provided because you&apos;re using it in
&gt; that form and you don&apos;t want to adapt to changes that are requested.

 ah.  the clue here is &quot;that are requested&quot;.  there&apos;s an assumption that i agree with the changes requested.  as you&apos;ve discovered: sometimes i do, sometimes i don&apos;t.  if i agree, i&apos;ll get on with it immediately, as you&apos;ve noticed.  if i don&apos;t, i&apos;ll say so.

what i _won&apos;t_ do is simply make changes &quot;that are requested&quot; just _because_ they have been requested.

it&apos;s up to you to convince me that the changes requested don&apos;t have adverse consequences and/or don&apos;t force on people [times however many gobject language bindings autogenerators etc.] an extra workload.  and, as i&apos;m working on the only project which is _actively_ dependent on these bindings, it gives me some active experience and a direct feel for what&apos;s needed, which i believe is very relevant.

so.

in this case, the changes &quot;that are requested&quot; have a nasty set of knock-on implications that will burden absolutely everyone using them.


not only that, but i really don&apos;t see what the problem is.  if people _need_ the write-capabilities to Location right now, right this second, then, yes, they&apos;ll use the [stupidly-named, non-W3C-compliant] webkitgtk+ functions.

if they don&apos;t, they can use the temporarily-made-read-only W3C-compliant versions.  or the temporarily-not-working-as-writeable W3C-compliant ones.



&gt; &gt; &gt; My point is simple: I don&apos;t see the value in exposing an incomplete DOM binding
&gt; &gt; &gt; for this property since there is an existing means of retrieving this
&gt; &gt; &gt; information.  It doesn&apos;t seem worth the mess of #if&apos;ing up the IDL files and
&gt; &gt; &gt; the confusion that would result from users who expected the exposed properties
&gt; &gt; &gt; to behave in the standard manner.
&gt; &gt; 
&gt; &gt; 
&gt; &gt;  ahh, but mark, it was you who turned down the review on the simple
&gt; &gt;  approach, which was to just have the Document.location property made
&gt; &gt;  available and be done with it, on the basis that the custom functions
&gt; &gt;  can be added later.
&gt; 
&gt; A simple approach that had similar issues to the current patch:  it exposes
&gt; what is at best a confusing subset of the bindings.

 well, you can&apos;t have it both (all) ways, right now.  which would you prefer - make up your mind! :)



&gt; &gt;  so, now i think we&apos;ve covered the possibilities, we have three approaches to
&gt; &gt; take.  which is it going to be?
&gt; &gt; 
&gt; &gt;  1) make life damn awkward for upstream development
&gt; &gt; 
&gt; &gt;  2) &quot;complicate&quot; the IDL file (but protect users from the consequences)
&gt; &gt; 
&gt; &gt;  3) &quot;clean&quot; IDL, make things easy for upstream developers, with known
&gt; &gt;    consequences and an upgrade / development path which can be fixed
&gt; &gt;    at a later date?
&gt; 
&gt; Since you&apos;ve injected hyperbole and omitted clarity from this list

 make up your mind which you would like!  if i provide sufficient detail so as to be clear, you accuse me of wasting time! :)  ok, that&apos;s being silly, but it has a grain of truth in it.  

 the above pseudo-code helps clarify what 1) is.  2 lines of code (or not even that) or a ridiculous wrapper class which &quot;normalises&quot; the DOM API, redirecting from what would otherwise be a decent (albeit limited) and above all *standard* API, into some code that was added in a decision by the webkitgtk+ developers to avoid writing the gobject bindings.



&gt; it&apos;s not
&gt; clear to me what each of the options corresponds to.  I&apos;ll restate what I feel
&gt; the situation is:

 ok.  good idea.

&gt; The patches so far expose a subset of the Location bindings that allows one to
&gt; access the location of a Document. 

 ack.

&gt; The WebKit APIs expose existing means of
&gt; accessing the location of a document. 

 yep.  and changing it, too.

&gt; I have not seen a good argument for why
&gt; adding #if&apos;s to the IDL files in order to expose functionality that is already
&gt; available via other means is a good thing.  Exposing full bindings for Location
&gt; does seem like a good idea, but you&apos;ve expressed reluctance to do that at this
&gt; time.  

 yes.  although, the amount of time spent just discussing this somewhat laboriously does lead me to wonder if i should reconsider that.

but - what&apos;s stopping me from doing that is that it will have knock-on implications for the CodeGeneratorGObject code, because anything that&apos;s &quot;Custom&quot; has to be special-cased right now [because many of the &quot;Custom&quot; functions and properties are either skipped, or the &quot;Custom&quot; property ignored entirely].

yet more changes and additions to an already complex generator, through non-webkit-standard controlled process, just seems like a truly bad idea, to me.


&gt; That seems fine to me, since as I&apos;ve mentioned the information is
&gt; already exposed using other API.

 ok - it seems fine to you, because you&apos;re not the one who has to write the &quot;wrapper&quot; classes, upstream (in every single programming language which utilises the gobject bindings) to re-normalise the webkit-gobject API to one which matches the W3C specification _just_ for what will turn out to be a relatively small period of time.

 this is an _interim_ measure we&apos;re discussing, not a permanent one, after all.

 so.

 implications 1) : webkit is quotes nice and simple quotes, but everybody _else_ has to do a lot of work.

 implications 2) : read-only on Location properties and read-only on Document.location is quotes complicated in the IDL file quotes yet is also simple for upstream developers.  but it has the advantage that in between the time when the gobject patches are being landed and when somebody writes the necessary gobject custom location code, upstream developers are protected from nasty consequences.

 implications 3) : read-write on Location properties is quotes simple for the IDL file quotes and also simple for upstream developers, but has the nasty consequence that if the upstream developers try to set location properties... nothing happens.  fortunately, this will only be for a short period of time (until someone writes the necessary gobject custom location code), but even so...

 1) is definitely not an option i would deem acceptable [and, if there _were_ any other developers other than myself and yorba doing language bindings to gobject...]  2)... *shrug*.  3)... *shrug*.

also, for completeness, there&apos;s this:

 4) - i write the gobject custom bindings _before_ landing the gobject patches: nnnnno.  there&apos;s been enough svn-history / information been lost as it is, already, through the use of an external non-webkit-based repository (github.org) in the maintenance of the gobject bindings.

 5) other [anyone else got any ideas?]

 so - 2 3 or 5 - you choose, i don&apos;t mind which.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435158</commentid>
    <comment_count>24</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-07-11 13:06:20 -0700</bug_when>
    <thetext>Pretty sure this is completed now. Feel free to re-open if I&apos;m mistaken.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33063</attachid>
            <date>2009-07-19 15:50:29 -0700</date>
            <delta_ts>2009-07-23 03:31:52 -0700</delta_ts>
            <desc>adds 3 essential features to gobject document idl</desc>
            <filename>doc.idl.patch</filename>
            <type>text/plain</type>
            <size>1982</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDggQEAKIAogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAg
ICAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ZG9tYWluOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21h
aW47CkBAIC0xODAsNyArMTgxLDggQEAKIAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5
TmFtZShpbiBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAgICAoZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTkzLDcg
KzE5NSw4IEBACiAgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGlu
IGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNp
ZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgIERPTVNlbGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3Ry
aW5nIGNoYXJhY3RlclNldDsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC02MjM3OCw2ICs2MjM4NiwxNCBAQAogICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudCk6CiAgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZUltYWdlKToKIAorMjAwOC0xMS0zMCAgbGtjbCA8bGtjbEBsa2NsLm5ldD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQzNAorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKwogMjAwOC0x
Mi0wNCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAg
ICB3eCBidWlsZCBmaXggZm9yICFVU0UoV1hHQykgYnVpbGQgY29uZmlnLgo=
</data>
<flag name="review"
          id="17396"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33324</attachid>
            <date>2009-07-23 03:31:52 -0700</date>
            <delta_ts>2009-07-23 10:35:08 -0700</delta_ts>
            <desc>adds read-only access to Document.location pending writing of custom code to set location properties (at some indeterminate future point)</desc>
            <filename>doc.idl.patch</filename>
            <type>text/plain</type>
            <size>1472</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNiArMTgzLDExIEBACiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgorICAgICAgICAv
LyBGSVhNRTogZ29iamVjdCBiaW5kaW5ncyBuZWVkIHN1cHBvcnQgZm9yIGNoYW5naW5nIGxvY2F0
aW9uJ3MKKyAgICAgICAgLy8gcHJvcGVydGllcy4gIG1ha2luZyByZWFkb25seSBhcyBhbiBpbnRl
cmltIGZpeC4KKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JK
RUNUKQorICAgICAgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRp
b24gbG9jYXRpb247CisjZW5kaWYKIAogICAgICAgICAvLyBJRSBleHRlbnNpb25zCiAKSW5kZXg6
IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC02MjM3
OCw2ICs2MjQzMywxOSBAQAogICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6ZG9jdW1lbnRG
cmFnbWVudCk6CiAgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKIAor
MjAwOC0xMS0zMCAgbGtjbCA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNzQzNAorCisJCWh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNzQzNCNjNCBub3RlcyB0aGF0CisJCWNoYW5naW5nIGxvY2F0aW9uIHJlcXVpcmVzIGN1c3Rv
bSBjb2RlLiAgcmVhZCBhY2Nlc3MgdG8KKwkJbG9jYXRpb24gaXMgaG93ZXZlciBlc3NlbnRpYWws
IHNvIGFjY2VzcyB0byB0aGlzIHByb3BlcnR5CisJCWluIGdvYmplY3QgYmluZGluZ3MgaXMgYmVp
bmcgbWFkZSB0ZW1wb3JhcmlseSByZWFkLW9ubHkuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aWRsOiBMQU5HVUFHRV9HT0JKRUNUIHJlYWQtb25seSBhY2Nlc3MgdG8gbG9jYXRpb24KKwogMjAw
OC0xMi0wNCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAg
ICAgICB3eCBidWlsZCBmaXggZm9yICFVU0UoV1hHQykgYnVpbGQgY29uZmlnLgo=
</data>
<flag name="review"
          id="17622"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33344</attachid>
            <date>2009-07-23 10:35:08 -0700</date>
            <delta_ts>2010-06-10 18:00:14 -0700</delta_ts>
            <desc>makes Document.location and all Location properties read-only, pending writing of custom code (at some indeterminate future point)</desc>
            <filename>doc.idl.patch</filename>
            <type>text/plain</type>
            <size>3587</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNiArMTgzLDExIEBACiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgorICAgICAgICAv
LyBGSVhNRTogZ29iamVjdCBiaW5kaW5ncyBuZWVkIHN1cHBvcnQgZm9yIGNoYW5naW5nIGxvY2F0
aW9uJ3MKKyAgICAgICAgLy8gcHJvcGVydGllcy4gIHNlZSAjMjc0MzQgZm9yIGRldGFpbHMgb2Yg
dGhlIGRpc2N1c3Npb24uCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VB
R0VfR09CSkVDVCkKKyAgICAgICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21d
IExvY2F0aW9uIGxvY2F0aW9uOworI2VuZGlmCiAKICAgICAgICAgLy8gSUUgZXh0ZW5zaW9ucwog
CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gNDQ0NzMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtNjIzNzgsNiArNjI0MjksMTYgQEAKICAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmRv
Y3VtZW50RnJhZ21lbnQpOgogICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVJbWFn
ZSk6CiAKKzIwMDktMDctMjMgIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzQKKworCQlodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzQjYzQgbm90ZXMgdGhhdCBjaGFu
Z2luZyBsb2NhdGlvbiByZXF1aXJlcyBjdXN0b20gY29kZS4gIHJlYWQgYWNjZXNzIHRvIGxvY2F0
aW9uIGlzIGhvd2V2ZXIgZXNzZW50aWFsLCBzbyBhY2Nlc3MgdG8gdGhpcyBwcm9wZXJ0eSBpbiBn
b2JqZWN0IGJpbmRpbmdzIGlzIGJlaW5nIG1hZGUgdGVtcG9yYXJpbHkgcmVhZC1vbmx5LCBhbmQg
dGhlIHByb3BlcnRpZXMgb2YgTG9jYXRpb24gYXJlIG1hZGUgcmVhZC1vbmx5IGFzIHdlbGwsIGZv
ciBnb2JqZWN0IGJpbmRpbmdzLiAgCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogTEFOR1VB
R0VfR09CSkVDVCByZWFkLW9ubHkgYWNjZXNzIHRvIGxvY2F0aW9uCisgICAgICAgICogcGFnZS9M
b2NhdGlvbi5pZGw6IExBTkdVQUdFX0dPQkpFQ1QgcmVhZC1vbmx5IGFjY2VzcyB0byBhbGwgcHJv
cGVydGllcworCiAyMDA4LTEyLTA0ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmll
cnMuY29tPgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeCBmb3IgIVVTRShXWEdDKSBidWlsZCBjb25m
aWcuCkluZGV4OiBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9Mb2NhdGlvbi5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTMgKzQwLDI3IEBACiAgICAgICAgIEN1
c3RvbVByb3RvdHlwZVB1dEZ1bmN0aW9uLAogICAgICAgICBDdXN0b21Qcm90b3R5cGVEZWZpbmVH
ZXR0ZXIKICAgICBdIExvY2F0aW9uIHsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYm
IExBTkdVQUdFX0dPQkpFQ1QKKyAgICAgICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtE
b05vdENoZWNrRG9tYWluU2VjdXJpdHlPblNldCwgQ3VzdG9tU2V0dGVyLCBWOERpc2FsbG93U2hh
ZG93aW5nXSBET01TdHJpbmcgaHJlZjsKKyNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5T25TZXQsIEN1c3RvbVNldHRlciwgVjhEaXNhbGxv
d1NoYWRvd2luZ10gRE9NU3RyaW5nIGhyZWY7CisjZW5kaWYKIAogICAgICAgICBbQ3VzdG9tLCBW
OE9uSW5zdGFuY2VdIHZvaWQgYXNzaWduKGluIERPTVN0cmluZyB1cmwpOwogICAgICAgICBbQ3Vz
dG9tLCBWOE9uSW5zdGFuY2VdIHZvaWQgcmVwbGFjZShpbiBET01TdHJpbmcgdXJsKTsKICAgICAg
ICAgW0N1c3RvbSwgVjhPbkluc3RhbmNlXSB2b2lkIHJlbG9hZCgpOwogCiAgICAgICAgIC8vIFVS
SSBkZWNvbXBvc2l0aW9uIGF0dHJpYnV0ZXMKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
ICYmIExBTkdVQUdFX0dPQkpFQ1QKKyAgICAgICAgICAgICAgICAgLy8gc2VlICMyNzQzNAorICAg
ICAgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5n
IHByb3RvY29sOworICAgICAgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbVNl
dHRlcl0gRE9NU3RyaW5nIGhvc3Q7CisgICAgICAgICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaG9zdG5hbWU7CisgICAgICAgICAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgcG9ydDsKKyAgICAgICAg
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBwYXRo
bmFtZTsKKyAgICAgICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJd
IERPTVN0cmluZyBzZWFyY2g7CisgICAgICAgICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaGFzaDsKKyNlbHNlCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgcHJvdG9jb2w7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaG9zdDsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBob3N0bmFtZTsKQEAgLTU0
LDYgKzY4LDcgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERP
TVN0cmluZyBwYXRobmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0
ZXJdIERPTVN0cmluZyBzZWFyY2g7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9t
U2V0dGVyXSBET01TdHJpbmcgaGFzaDsKKyNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIFtEb250RW51bSwgQ3Vz
dG9tLCBWOE9uSW5zdGFuY2UsIFY4UmVhZE9ubHldIERPTVN0cmluZyB0b1N0cmluZygpOwo=
</data>
<flag name="review"
          id="17640"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>