Campbell et al v. Facebook Inc.
Filing
184
EXHIBITS re 181 Administrative Motion to Seal Documents Accompanying Class Certification Briefs and Evidentiary Objections filed by Facebook Inc.. (Attachments: # 1 Exhibit 53 (Redacted), # 2 Exhibit 54 (Unredacted), # 3 Exhibit 55 (Redacted), # 4 Exhibit 56 (Unredacted), # 5 Exhibit 57 (Redacted), # 6 Exhibit 58 (Unredacted), # 7 Exhibit 59 (Redacted), # 8 Exhibit 60 (Unredacted), # 9 Exhibit 61 (Redacted), # 10 Exhibit 62 (Unredacted), # 11 Exhibit 63 (Redacted), # 12 Exhibit 64 (Unredacted), # 13 Exhibit 65 (Redacted), # 14 Exhibit 66 (Unredacted), # 15 Exhibit 67 (Redacted), # 16 Exhibit 68 (Unredacted), # 17 Exhibit 69 (Redacted), # 18 Exhibit 70 (Unredacted), # 19 Exhibit 71 (Redacted), # 20 Exhibit 72 (Unredacted), # 21 Exhibit 73 (Redacted), # 22 Proof of Service)(Related document(s) 181 ) (Chorba, Christopher) (Filed on 3/28/2016) Modified on 3/29/2016 (kcS, COURT STAFF).
EXHIBIT 00
1
2
3
4
5
6
7
8
9
10
11
12
GIBSON, DUNN & CRUTCHER LLP
JOSHUA A. JESSEN, SBN 222831
llessen@gibsondunn.coln
JEANA BISNAR MAUTE, SBN 290573
JBisnarMaute@gibsondunn.coln
ASHLEY M. ROGERS, SBN 286252
ARogers@gibsondunn.coln
1881 Page Mill Road
Palo Alto, California 94304
Telephone: (650) 849-5300
Facsimile: (650) 849-5333
GIBSON, DUNN & CRUTCHER LLP
GAIL E. LEES, SBN 90363
GLees@gibsondunn.coln
CHRISTOPHER CHORBA, SBN 216692
CChorba@gibsondunn.coln
333 South Grand Avenue
Los Angeles, California 90071
Telephone: (213) 229-7000
Facsimile: (213) 229-7520
Attorneys for Defendant
FACEBOOK, INC.
13
14
UNITED STATES DISTRICT COURT
15
NORTHERN DISTRICT OF CALIFORNIA
16
OAKLAND DIVISON
17
MATTHEW CAMPBELL, MICHAEL
HURLEY, and DAVID SHADPOUR,
Case No. C 13-05996 PJH (MEJ)
PUTATIVE CLASS ACTION
18
Plaintiffs,
DECLARATION OF ALEX HIMEL
ON BEHALF OF DEFENDANT
FACEBOOK, INC.
19
v.
20
FACEBOOK, INC.,
21
Defendant.
22
23
24
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
25
26
27
28
Gibson, Dunn &
Crutcher LLP
DECLARATION OF ALEX HIMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
1
2
I, Alex Himel, declare as follows:
1.
I have been employed as a software engineer at Facebook since April 2009, and my
3
current title is Engineering Director. From 2009-2014, I worked on Facebook's Developer Platform,
4
and my work encompassed Facebook's "Share" button, Facebook's "Like" button, and the code that
5
keeps track of the "count" features associated with "Share" and "Like." I have personal knowledge
6
of the matters stated herein and, if called as a witness, could and would testify competently thereto. I
7
provide this Declaration to explain certain facts regarding Facebook's software code as it relates to
8
detecting uniform resource locators ( "URLs ") in messages sent and received through the Facebook
9
platform and the relationship of any such URLs to certain social plugins served by Facebook and
10
visible on third-party websites. In particular, I refer below to the count associated with a Facebook
11
"Like" social plugin on third-party websites (the "Like" count). I also explain the termination of
12
related practices in October and December 2012.
13
2.
I understand the purported class in this action to consist of Facebook users located
14
within the United States who have sent or received messages that included URLs in the body of the
15
message from December 30, 2011 until in or around late 2012, when the practice of including URL
16
shares in messages in the count on third-party web sites ceased ("the Relevant Period").
17
Facebook's Source Code
18
3.
Attached as Exhibits A through G are true and correct copies of documents from an
19
internal Facebook system that tracks changes to Facebook's source code and includes related notes
20
and comments. These documents, known as "Differentials" or "Diffs," include the date of the
21
change, a description of the change, and the portions of the code that are changed. The relevant code
22
before the change is on the left, and the relevant code after the change is on the right. Diffs also
23
include an identification of the Facebook employee making the change, as well as the persons
24
commenting on the change.
25
26
4.
To the extent that the above-mentioned documents contain source code, this code has
been redacted for several reasons.
27
28
Gibson, Dunn &
Crutcher LLP
1
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
1
5.
First, Facebook's source code is a closely guarded trade secret of enormous economic
2
value. Providing it to outside parties increases the risk of further disclosure and therefore poses a risk
3
of substantial competitive harm. Disclosure of source code outside of Facebook erodes Facebook's
4
efforts to protect the code in which Facebook has invested significant resources and which comprises
5
a significant part of Facebook's product offering and competitive advantage. Indeed, the code
6
reflected in these Diffs alone is the product of thousands of engineering hours. Revealing the code
7
that generates Facebook's proprietary design and functionalities could cause catastrophic competitive
8
harm by allowing others to replicate that design and functionality without making the same
9
investment of time, money, and personnel.
10
6.
Second, disclosing portions of Facebook's source code would reveal the methods used
11
to protect Facebook's users and the integrity of the Facebook platform, and could undermine both of
12
these efforts. Facebook's source code includes complex safety and security features that detect spam,
13
detect and prevent abuse of the system, and protect users from malware, among other things. These
14
features not only provide for a better and more enjoyable product (another competitive advantage for
15
Facebook), but also protect Facebook and its users from harm and loss associated with unsolicited
16
and dangerous content and activities by third parties. The effectiveness of these systems depends in
17
part on their secrecy. Disclosure of Facebook's security methods would potentially allow hackers
18
and abusers to threaten users and the system.
19
7.
In the context of certain types of litigation (such as patent litigation) where there may
20
be a legitimate need for source code inspection, I am aware that Facebook negotiates specific
21
protections for source code and implements detailed and time-consuming protocols for handling
22
source code, as well as extensive limitations on the use of source code materials, disclosure, and
23
future restrictions on the conduct of individuals exposed to source code materials.
24
8.
In the present case, evidence other than source code is available to demonstrate the
25
processes and functionality at issue. In particular, the non-code information embodied in "Diffs"
26
the documentation of key changes to the source code-effectively demonstrates the processes and
27
functionality at issue. Additionally, the source code for the processes and functionality at issue is not
28
2
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
1
limited or contained in any discrete way; that is, it is interconnected with other source code at
2
Facebook. Therefore, if Facebook were required to make source code available in this matter, it
3
would have little choice but to grant access to a significant amount of source code that has nothing to
4
do with the allegations in this case.
5
Share and Like Functionality
6
9.
During the Relevant Period, Facebook offered websites "social plugins," or units of
7
embeddable code that allow users to share information using Facebook directly from third-party
8
websites. A third-party website may have embedded code for the Facebook "Like" button plugin on
9
its website, enabling Facebook users to directly "Like" the website and to share that action with their
10
Facebook connections (without having to return to https://www.facebook.com or the Facebook
11
mobile app to share the content). The "Like" button plugin also may have displayed an anonymous
12
and aggregate count of all "Likes" for that particular website (the above-referenced "Like" count).
13
Facebook also offered a "Share" button, which also may have displayed an anonymous and aggregate
14
count of all "Shares" for that particular website (the "Share" count).
15
10.
In September 2009, Facebook enabled functionality that would ultimately allow third-
16
party website developers to provide a count associated with a "Share" button on their websites.
17
Attached as Exhibit A is a Diff dated September 30, 2009, reflecting the code that enabled a count of
18
"Shares" including URLs (1) posted to a user's profile, (2) commented on, (3) "liked," by clicking on
19
a "Like" or "Share" button, or (4) sent as an attachment to a message by clicking on the "Share"
20
button on a third-party website and choosing "in a private message." URLs sent in messages through
21
the Messages product directly from the Facebook website were not included; the count included
22
messages created by clicking the "Share" button on a third-party website. In particular
23
demonstrate the generation of a new statistic for the number of times a given URL link
24
was "shared." Ex. A at 5.
25
this new statistic incorporated the number of times a URL was "shared" (which in turn included the
26
number of times the URL was sent as an attachment to a message after clicking on the "Share"
27
button, the number of times a user posted the URL to his/her profile, the number of times the URL
and
28
3
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
likewise demonstrate that
1
was "liked," and the number of times the URL was commented on). Ex. A at 5, 7-8. In addition to
2
the overall "Share count," third-party web site developers also could view the public API statistics
3
indicating how many times a particular URL was shared. The public API statistics did not include
4
statistics indicating (specifically or by inference) how many times a given URL was shared using the
5
"Share" button and choosing "in a private message."
6
11.
In October 2009, Facebook enabled code for the "Share" button and count. Attached
7
as Exhibit B is a Diff titled
8
button, including the social plug-in functionality that allowed third-party websites to display the
9
"Share" button and the statistic indicating how many times a particular URL had been shared. As
," which enabled the "Share"
10
reflected in
11
Diff enabled a user interface for a given webpage to fetch the "Share" count for that URL and render
12
a "Share" button on the webpage to show that "Share" count. As indicated in the Diff, this
13
functionality was enabled in the source code on October 8, 2009. Ex. B at 3-5.
14
12.
,
the
At our F8 Developer Conference on April 21, 2010, Facebook announced the public
15
launch of the "Like" button, which also included a count feature reflecting the number of times a user
16
had clicked or commented on the "Like" button on that third-party website. The "Like" count
17
reflected data from the same existing functionality utilized by the "Share" button and count reflected
18
in Exhibit A. Instead of pulling the total count of shares created by the Diff at Exhibit A, the "Like"
19
count reflected only the counts for comments and "Likes" generated by clicking a "Like" button.
20
13.
In May 2010, Facebook changed the "Like" count to include URL shares. Attached as
21
Exhibit C is a Diff titled
22
reflecting an adjustment made to the code on May 4, 2010 in order to make the "Like" count and the
23
"Share" count on third-party websites consistent. Following this change, the "Like" count displayed
24
on third-party websites also included URLs (1) posted to a user's profile, (2) commented on, (3)
25
"liked," or (4) sent as an attachment to a message by clicking on the "Like" button on a third-party
26
website and choosing "in a private message." As with the "Share" count, URLs sent in messages
27
through the Messages product directly from the Facebook website were not included; the count
28
4
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
1
2
included messages created by clicking the "Like" button on a third-party website.
demonstrate that the existing "Like" count statistic for third-party websites was adjusted to be the
3
sum of the number of times a URL was posted to a user's profile, commented on, "liked," or sent as
4
an attachment to a message. Ex. C at 5.
5
URL Preview
6
14.
During the Relevant Period, Facebook's service included a Messages product, which
7
allowed users to exchange messages that could be viewed in the recipient user's Messages folder.
8
Beginning in August 2010, Facebook's source code included functionality supporting a feature
9
related to URLs typed into the draft message body in the Messages product on the Facebook website.
10
Specifically, if a user typed a URL into the text field in the Facebook Messages product, and the user
11
had JavaScript enabled in her browser, the JavaScript code running in the user's browser may have
12
detected the existence of a URL.
13
15.
The JavaScript code may then have requested information from a Facebook server in
14
order to provide a preview of the typed URL CURL preview")-including a brief description of the
15
URL and, if available, a relevant image from the website, as illustrated by the example below:
16
wivw.nyti mes. corn
17
The New York Tito4.- Breaking-News, World News &
18
E3
Multimedia
mr-tin
19
111
.-torn
Find breaking news, multimedia, reviews & opinion ao
Washington, buss: sporb:
20
trairml, bas, jabs;
adocatina, real estate, ears & mere at nytiro.com.
.4
I
I
1 013
C,-..x.se a T.-ulna-0,
21
fr.11 Ma Thumbnail
22
rg Add Files
Press Enter to send
121 Add Photos
5-end
23
16.
If the information was not already available on a Facebook server, Facebook may have
24
sent a request to scrape the third-party website to obtain the information and send it back to the
25
Facebook server and to the user's browser. The bundle of information related to that URL was stored
26
on the Facebook server as an "object." Facebook's software code running in the user's browser then
27
28
5
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
used the information to create the URL preview as an attachment to a draft message, distinct from the
2
3
text in the draft message body.
17.
If a user proceeded to send a message, the message (including the text of the message,
4
certain information about the message, e.g., date and time sent, sender, recipient, text formatting) as
5
well as any attachments (including URL previews), would have been sent to a Facebook server.
6
After receiving the message on a Facebook server, Facebook software processed the message and any
7
attachments while they were in electronic storage, including for abuse-detection and security-related
8
purposes as well as purposes related to user functionality. When a URL preview attachment was
9
successfully sent to a Facebook server, Facebook recorded that action (a "share object").1 When a
10
user accessed the message from his or her inbox, Facebook code would recreate a preview for the
11
user from the share object.
12
13
14
18.
Attached as Exhibit D is the Diff titled
dated August 16, 2010, which enabled the URL preview functionality for messages.2 As
described in the Diff summary:
15
16
demonstrate the addition of code to detect URLs in the
17
18
draft message body, and, if detected, request scraped information related to the URL, and append that
19
information to the draft message.
20
the information to the draft message as an attachment.
demonstrate the addition of code to append
21
22
23
24
25
26
27
If a user shared a URL through a message but no share object was created (for any of a number of
reasons), the sharing of that URL did not increment any count associated with any social plugin
on the destination website. Similarly, if the destination website associated with the URL did not
have a Facebook button plugin, the sharing of that URL did not increment the count associated
with the social plugin on the website (even if a share object was created). Additionally, in some
cases, even if a share object was created and the destination website associated with the URL had
a Facebook social plugin, the count on the destination website may not have been incremented
(for example, if the URL a user included in a message was not exactly the same as the URL the
developer passed to the plugin).
"Titan" was the internal name for the Facebook Messages product.
28
6
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX FilMEL ON BEHALF OF DEFENDANT FACEBOOK, INC.
Case No. C 13-05996 PJH (MEJ)
1
demonstrate the addition of code to get URL share information in order to generate a preview when a
2
user views the message from his or her inbox.
3
Modification of the Like and Share Counts
4
19.
After URL preview functionality was enabled for URLs typed into the Messages
5
product on Facebook's website in August 2010, URL preview share objects were counted in the
6
"Like" and "Share" counts visible on third-party websites that embedded those social plugins.
7
20.
On or around October 4, 2012, I was made aware of a bug that resulted in an increase
8
of the "Like" count by 2 for each URL attachment sent with a message. I then made changes to the
9
code to isolate and ultimately remove shares of URLs in messages from the "Like" and "Share"
10
counts on third-party websites. Exhibit E is a Diff titled
11
adjustment I made to the code on October 11, 2012 in order to distinguish between URL shares
12
generated from preview attachments to messages and other URL shares on the Facebook website. As
13
I wrote,
reflecting an
I
14
15
Ex. Eat 1-2.
16
show that when a message is sent
17
with a URL attachment, a log of this event is created to indicate the fact that the URL was attached
18
and sent. Ex. E at 4.
19
URLs shared in posts to a user's profile from (ii) the metrics for URLs shared in messages.
20
21.
likewise demonstrate the separation of (i) the metrics for
A few days later, I removed URL shares in messages from the "Share count."
21
Attached as Exhibit F is a Diff titled
22
an adjustment I made to the code on October 16, 2012. As is reflected in the notes within the code
23
itself, prior to October 16, 2012, the code executed the following practice:
" reflecting
As is also reflected in the notes within the
24
25
code itself, as of October 16, 2012 and onward, the code executed the following practice:
Ex. F at 3-4. For instance, revised
26
27
28
Gibson, Dunn &
Crutcher LLP
demonstrate that the calculation of the public statistic for the "Share" count and the
7
HIGHLY CONFIDENTIAL -ATTORNEYS' EYES ONLY
DECLARATION OF ALEX HIMEL ON BEHALF OF DEFENDANT FACEBOOK. INC.
1
corresponding public APIs (discussed above in paragraph 10) for a particular URL was adjusted to
2
remove a counter that included the number of times the URL was sent as an attachment to a message.
3
Ex. E at 4. By removing shares associated with attachments to messages from the share_count, those
4
URL shares were no longer included in any "Share" counts associated with social plugins on third-
5
party websites.
6
22.
My adjustment to the code in October 2012 was intended to remove all URL shares
7
from attachments to messages from public social plugin counts. However, I later learned that my
8
adjustment did not remove all URL attachments in messages, and, in December 2012, Facebook fully
9
removed URL shares in messages from the "Like" count. Attached as Exhibit G is a Diff titled
" reflecting an adjustment made to the code on
10
11
December 19, 2012. The summary explains the purpose of the Diff:
This change ensured that all
12
13
calculations of the "Like" button count, including those used on third-party websites using a "Like"
14
button social plugin, did not reflect URL shares generated from attachments to messages. Revised
15
lines 131-132 demonstrate the deletion of the code that previously enabled a display of the "Like"
16
count that included the number of times a URL was sent as an attachment to a message. Ex. G at 7.
17
Revised lines 293-299 likewise demonstrate that the new version of the public statistic for the "Like"
18
count for a particular URL would not include the number of times the URL was shared as an
19
attachment to a message. Ex. G at 10.
20
I declare under penalty of perjury under the laws of the United States of America that the
21
foregoing is true and correct and that this declaration was executed on June 1, 2015 in Menlo Park,
22
California.
23
24
(10
25
26
ex Himel
27
28
8
Gibson, Dunn &
Crutcher LLP
HIGHLY CONFIDENTIAL-ATTORNEYS' EYES ONLY
DECLARATION OF ALEX HEMEL ON BEHALF OF DEFENDANT FACEBOOK_ INC.
EXHIBIT A
671l)
Create OW
tsharepro] rename fql fields and add api wrapper for launch
Committed
Atl
Author lie
Reviewers
Press ? to sbow moment shortaits.
Eitit Revision
yanv
Edit linked Facebook
I shopiti
Tas;s3
rnkinsey
Lint
Unit
*
*
No
Edit .Dependenr.ie.s
ntersAvaeable
Ormnloa0 Raw ffiff
No Unit Test coveraw
Commits :-E 'i.90656 ctiuckr via rolease.php: merging 190565
;t`90566: fsbareprej rename tql fields and add api wiappe,,: t*r
iaurith
Lines 2.315
Ask for Merge for
rE190666: chtickr via
refeasephry. merging
190566
Ask for Merge tor
Subscribers dmig, richai
rE.1.90565: !share-pi-A
rename tqi fields anti add
api wrapper for Launch
Flag For Later
Award Token
Subscr be
SUMMARY
As per discussion with public naming
Unit tests have also been renamed_ and pass
TEST PLAN
php unit test scriptslunitteslitestsfplattornitiglitink_stat.php
php unit test scriptisiunittestiteststplatfomilfgfishare_statphp
the updated this revision
Via Legacy Sep 29 2009, /3'3 PM
updated thrift files_ added API wrapper function links_getStats (and unit test) around link_stat fql table_
yariv requested dieriges to this revision.
via Legacy Sep 30 2009. a:38AM
Looks sweet! Very well written code. A question
Please add the new method to the php api client.
Irene C,osturients
16
(On Diff 4193764)
The tql fields include like_count and comment count, but these cases aren't handled here.
Are we not returning like count and comment count or am I missing something?
BO n
(On Cliff (1193164)
small nitpick. you could store the result of gelid() in a variable to avoid calling it muRiple
limes.
the updated this revision
via Legacy Sep 30 2009, 1 :28 PM
1. added comment to make tike_countimessage_count dearer. Basi atiy. these are the same as our internal names, so they're
https:llphabricalor.komiD66110
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001570
L/L4L1f 4U ibE
epl UJ i ei WE 1 itl NI I tUW`a. d1 KI
HO' W dppel 3134
iifiLIE*LI 3
already populated in the data type.
2)1 started making the change to getlel as a local way variable, but we already store/iemoize it explicitly as a static array in the
LinktirlDataType. Note that this isn't "really" app jd dependent, I just need to inherit the function signature of the parent class.
Essentially, adding a variable will double the memory requirement for storing the urf to ids, but only save a single function call_
rhe added a comment.
Via tegecy Sep 30 2009, 130 PM
As for the client I brary. rd like to make that change when we actually announce, so we don't push it out prematurely
yariv accepted this revision.
of Legacy Sep 30 2009, 1'.41 PM
rhe dosed this revision.
Via legacy
Sect 30 2009,2:06 PM
Revision Update History
Diff
i
D
Base
Base
Description
Lint
Created
Unit
*
*
*
Base
DM I
193745
Sep 29 2009, 6:5.4 PM
*
Ditf 2
193764
Sep 29 2009, 7:32 PM
*
OW 3
'194064
Sep 30 2009, 1:24 PM
*
WhitespaCe Changes:
;.:.
0
0
*
t
Ignore Most
h-OW 041'
Table of Contents
P Rth
Ri
Coverage (AM
Coverage (Touched)
I
I
I
M
I
St
I
St
I
St
I
St
I
St
I
I
M
I
I
I
I
I
Ak
M
I
I
I
hltpsitphabricator.lb.cmiD66710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
2/83
FB000001571
Al I It9 US dI RS dUU
rm.
1525
152h
P4
lifiLIE *1_13
Shy_tw Aft 202 Lines
Show 20 mss
: LICKS
1/29
service Facebook4010
1587
LINK'S
1728
*/
1730
/**
1525
Show 20 bites
1711
HO LYE dppel ICA
1524
41
1729
link id links_post(lniid uid, 2:string url, azstring
link id links_post(1:uid uid, ?:string uri, a:string
4730
comment)
comment)
1732
/731
1113
1732
1734
1733
/735
1734
1714
2735
..111111111111.11.111.1.11111111
/736
1737
1737
173a
i
1741
nta commentsget(1:xid xid)
list comments_get(1:xid xid)
1742
1.1.1.1.11.11=MMEIME
/743
/743
1744
1744
/745
Shaw 20
Show AS 909 Lines Shove Last 20 Lines
=IN
962.
952
962
963
963
IME
954
964
955
965
96
966
1111111
957
968
.1111
I
967
968
969
959
970
971
111011
97?
970
971
/**
972
*
°
975
API method to refresh images already linked in feed
and other content.
and other content.
976
977
@pram string
975
977
*
stories
974
976
/*
974
API method to refresh images already linked in feed
stories
973
I
974
*
Puri
The inage to refresh.
@return bool Whether the refresh was successful.
a/
378
@pram
979
@return tool whether the refresh was successful.
string
Surl
The image to refresh.
980
A Show 20 Lines Show AE 7508 Lines g Show Last 20 Lines
libiapilauth.php
Sew
20 Lams Show/4 234 LInes Show 20 tines
Options "r
43
);
Irphabr icator 11).cm-0)66710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001572
235
. be returned.
*/
be returned.
235
236
236
217
237
238
/
//
tado: Aiiiiiimi
D8 -
V THE5
3
R 3
218
233
243
240
241
241
242
// (gado: AHNHHH DR-TFY IRIS 10NX A2W61144k
239
242
243
243
244
244
245
246
245
245
247
2.4B
243
2se
11.111MINIMININIIII
111111111111111111
111111111111MMINN
IIIIIII
247
248
IIIIIIMIIIIIIIIIIIIIIIIIIIII
249
11111
IIIIIIIIIIIIIIIIMMIIIIIIII
250
251
now 20 Lines - Show All 213e Lines Show 1..ast 20 Ijnes
11.1.111.1.1
105
106
.1111111111111111111111111111111111111111111111111111111111111111111111.
.1111111=I
107
68
105
11.1111
165
107
168
194
2e9
11111111111.0110111111.1
109
110
1111111
M1.11
116
Ill
112
113
214
111111111111
IIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
1=111111.11111111.11
1=11111111111111111111111111
111
111111111111
112
11111.1111111.
113
MEM=
IIIIIMMIIM
114
115
MIIIIIIIIIIIIIIII
135
11111111.1111.111111
116
1.1111111111111111111111
116
1111111.11.1111
117
IIIIIIIIIIIIIIM
117
111111111.1111.1.1
118
11.111.1.1IIIIIIIIIII
119
1111111
118
115
MIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIII
229
120
111111111111111.1.11
121
A Stow 2l Lines Show AP 61.4 Lines Show Last 20 Lines
MIME
11111111.1111111111111.11111111111
I MI
2
3
4
5
5
7
/I*
wrapper arobnd the share_stat Fpt table
8
9
3 Papi Ilnks_getStats
10
* ifthroNs
11
*/
12
13
14
/5
16
17
hitpsIllphabricatorib.can/1366710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
7/83
FB000001573
28
14
20
111.1111
21
22
I
23
24
25
26
27
28
29
30
11111.11111111111111.11111.1
31
=11MM
12
33
34
15
111=MI
47
48
47
48
44
49
MEM
50
58
51
5/
52
52
53
53
54
54
.1.1111111111111111111111111
1.1111111.111011.111
1111.11.1.11.111111.
55
.55
56
sa
57
57
58
58
59
59
so
aa
51
52
62
MEM
63
11111111111
--- -
-
-
11111
2
3
11111111111
4
5
1111111
11.1
6
11111
7
a
fi the metrics data type populates our internal panes
'sharecOunt*;
f/
'post_count',
count', and 'comeent_coiint' These
are neat the
19
fY exterpa1/9fficia7. naves for the metrijcS, so* rename
them here
hitpsI1fphathricator.lixcaniD66710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001574
11
12
13
ft
.actually want to caLtnt messages and post to
profile in the
// sha0e_coqnt
14
25
16
1/ th
internal 5hape_count 15 exterally nameA
'message cont'
10
1111111111.1M
19
20
1111111111111
21
22
23
24
1
as
26
I
27
28
11111111.111111111111111111111111111111111111.
29
30
1111111
31
IIIIIIIIIII
32
I
37
34
35
36
11111111111111111111101
1
37
38
39
46
41
42
43
44
I
I
MEM
44
45
41 IEEE.
4g
1
49
89 IM=M
J
11.1.1.1
51
`'2
11111111111111
WeliphabricatouharnA)65710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
9/83
FB000001575
53
53
54
54
55
55
56
56
57
58
58
59
59
MME
EM=MMEMME
85
85
56
56
52
87
88
88
89
89
9°
.1111111.1111111111111111111111111111111111111111111.1111111.110.
91 IMINIMIIIMMEIMINEMEME
92 .11111111.1111111111.1111111111
92
94 ....
9e
91
92
92
94
11111.0.111111....11.0111
MEIMM
.............11.1111.11__
1.1..11111.111.11110.111.1111.1.1
,
MIIMEMENIE11.1111111111.111.1.1111111111
23
i
MEM
MEM
52
11111
51
1111111111111111.1
52
111.1111
51
1111.111111111111
53
11111111111.1111111
11.1.11111111111
sa
MEM
93
54
55
55
56
MEN
MM.
11.11.1111111
111111111
1111111111111111111.1
1111.1111111.11111111
56
57
MNI
57
58
50
58
MEMO
59
59
St
62
1111111111111.1
60
II
61
/I*
62
/
53
Create a new FQL5tatenent.
63
64
@Oaram array
Sselect an array of
64
Waram array
$select an array of FQ1ExpresSions
Worn
65
10param string
$from
4 Create a new FQL5tatement.
FQLExpressions
55
6param string
the table to select from
the table to select from
MI
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001576
/4*
This table has all-public data
57
/
58
59
60
I
61
62
63
64
I
65
66
67
68
I
69
70
71
72
73
74
IMMM.
111.1.11.1.1.1.1.1.1.111
75
76
77
78
79
80
81
82
83
84
1.1111
85
86
87
88
89
90
91
92
93
g4
95
46
MEI
97
98
99
100
101
102
103
104
105
106
107
I
108
10e
110
https://phabricator fb.com /0 6671 0
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
i 2;83
FB000001577
S1
53
52
52
53
53
54
54
SS
S5
55
56
51
S7
58
5a
54
68
MMMIIIM
=MI
=11111
59
69
Si
Si
62
52
1111.111.11.1111111.1.111111111111.111111.11
63
63
IMIMMIMINIMIEMMIME
64
111111111111111111111111111111111111.111111111.1111.
111111
64
65
55
66
Show A :130 Lines
111111111111
1
2
3
11111
/.
4
Tests for links.get5tats api call.
5
*
6
* To run:
7
"
8
*
9
* @owner the
../../../birdunittest Llnks6et5tets.php
' ceails rbegarebook.com platform-
10
tests@lists.faceboak.con
"/
11
12
/3
14
15
is
111111111.11.1111.111111
17
18
// most of this is tested in link_stat fql test, so just
sanity check
19
Ii that this furKtion wacky
20
21.
22
23
24
htipsfiphatbricztor
comiD65710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001578
1111111
26
29,
I
view aptions
i
a
11111
/**
* Tests for the link stet FQL table.
3
4
5
*To run:
6
*
../../../bin/unittest linkstat.php
*
* @Owner rhe
8
9
* filemails rhegfa(ehook-com platform-
te5tS@lists.faCehook.coe
10
*I
11
12
33
14
15
16
17
18
11111111111111111111
19
20
21
Z2
23
24
ZS
26
27
28
29
30
31
32
33
ii most srf this logging functionality is tested in
14
11 ShareRealTimeStatSTeSt, this just makes sure we'r,e
35
consistent
36
37
1111
30
40
41
IMINININ1111111111111111111111111
42
43
NMI
44
45
46
47
44
49
se
51
52
53
Illphabr icator .11).caniD667 10
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
eo83
FB000001579
(et
Ira MU WE %NE appUt ILI REA111.i I
cc
MM.
I
S6
57
1111.1111.11111111.11111.111111111.1
SS
S9
61
63
MIME
64
6S
11111111111M
66
67
68
69
70
I
71
Leap Into Acton
Action eommem
Comment
own
htlpisliptiabricator 11).comiD66710
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
rta
833
FB000001580
EXHIBIT B
.
areprol Release canclhclate for P
Committed
e 'I
.A1 Users
.... ... ... ,: .. , . ,..., .. :: . ,....:.,...,....,..,:ceee,,,,,,,,...9,:aree,,,,,,,,,,,,...........,-- r
Atithor
Reviewers
rnkinsey
,
,
Press ? lo slaw keyboard shortcut.
julie
Edit Revision
Edit Linked Facenook
v.iztit.1
Tasks
Lint
No Linters Avaslable
Unit
kio t. Fl
Test ecworage
Commits rE192403: [shareprol Release candidate for Phase 1
1E192609: chuckr via release.php: merging 192403
Lines 115
Async Build
Subscribers
..... : . :..
Edit Dependencies
Download Raw Diff
Ask for Merge for
rE 192403. [she repro]
Release candidate For
Phase 1
wzhu, zhen
Ask for t erge for
rE192609: chucks via
release.php: merging
192403
Flag For Later
Award Token
Subsob
..._
.
.
SUMMARY
Want to get this checked in so JZ can check the CSS. There are a few inconsistencies still in 1E6. And so Wei can tweak
J5 if necessary.
Wei - 13 extra lines.
TEST PLAN
httplirrp4.24.ne.,.111bitesterhtml
API covered separately
mkinsey updated this revision.
Ocl 7 2DN, 149 PM
using assetHost in irng src
wzhu added a comii-:-°.
Via Legacy Oct 7 2009,
PM
Lg. A couple of minor suggestions.
hrtps:?:.'phabricater tb.comiD67898[5:26;20-13 4;54:20 PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001581
1r111rx-,
hthllIsioonnectiFBIShareProjs
26
(On Diff #197031)
32
(On Diff #197031)
1. Since this function is only used once, let's 'Nine it
2. The cede can be simplified as
You can simply this function as
}
mkinsey updatcA this revision.
:2
2009, 12AK3 PM
0:`,t
Smaller per wel
Don't send t parameter if we have a share_url specified (so the share login dialogue says the right thing).
This adds extra code and may not be strictly necessary?
midnsey up;lated this revision.
21(Y-)
C.:x't
wztiu accepted this revision,
12 03 PM
6 2009. 4:5.5
Looks good.
ey c.iosed tN?; =e-,'is
i
.
11 n Update History
ID
Base
Ease
De..scriptott
Created
Unit
0
Base
Nif 1
196986
Dm 2
197031
Oct 7 2009, 1:45 PM
Q
Oct 7 2009, 12:52 PM
Diff 3
197556
Oct 8 2009. 12:02 PM
i
0
Q
0
ON.
Q
bitespace Changes: h Ignore Most
haps :'phabricattv tb.convilt67898[5:26720-15 4:54:2.9 PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001582
View
L-- Options v
tg.;`:
This is an image.
View Options 'v.
Context not avanatie,
6
6
j
// Fields from share_stat table to requests
// Fields from share_stat table
to requests
8
,
.
.
l'. .`."
10
-
a
':,''. ,, .. ,
.xy
Z mc7zZ- -
4.4%,
-
q
11
12
13
11
I
011111.1.11.1.1.11.101
IIMIMIIIIIIIIMINI
Context not
15
14
1.7
ble.
13
16
'a
15
1
,
I
littPs:(1Phabricatert.com:1361898[5:25-;20-13 4:54:20 PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001583
17
l
19
f/ Find out what url is being shared.
2e
21
27
23
2.
25
// Find out what url is
// Makes the count no more than 4 chars
being shared.
26
26
27
27
28
28
2.9
29
30
30
31
31
32
32
34
33
34
34
35
36
};
// Update a button post API call
E
.
1.1111111111.1.
4e
11.1111.111111I
42
43
35
44.
111
46
47
36
// Render a given button
49 "
51
5
// Attach click handler
56
37
57
m pAraw:VM
g:10
53
54
.40
GO
61
41
62
// Fetch the url if not already requested
hups:?'phabricatortl,.com1361898[5:26;2015 4:54:20PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001584
111111.1111111
IIIIIIIIIIIII
63
// Do we need to render
real-time interaction total
count?
11.1.1111111111
11 Need to fetch this
I.
field
U
// Create markup
7?
https:t'fphabricator tb.convil,67898[526;2013 4;54:20 PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001585
62
73
63.
4
64
6S
66
75
71
};
73
79
// Scan the document and find all share buttons to render
aa
81
3?
83
8
85
86
87
g3
// Method to fetch real-time data from
go
91
91
92
93
,
:
:
:T';7".!!!1"'!!!7!!!'":!'.7F.!
https:llphabricator ti.con1:1361898[5:26;2013 4;54:2 PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001586
94
94
95
95
96
96
97
97
);
// Add 350NP request
9a
9E
if Note I am passing a dummy
99
1/ Construct the API request
99
api_key because that our
restserver.php
We
// requires one. We should
tee
remove that in real code
101
102
101.
10.i
101
le4
103
105
194
106
105
10/
10;e
108
107
1);
}
}
109
100
Context not available.
112
// Render default
111
113
114
115
//
Render default
112
113
1/ Note we call APT after
:
114
// Note we call API after first render because that render also
115
/1 parse the DOM to decide if any API call is needed.
-first render becaUse that render
illso.
lib
1/ parse the DOM to decide if
any API call is needed.
117
116
1.1.8
117
Context not available.
Leap Into Action
Action
comment
Comment
latps:(1phabricator/11.conal67898[5:2672015 4:54:20PM]
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001587
https:,'phabricator th.convp678945 26 2015 4:54:20 PK
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001588
EXHIBIT C
'
.
c-cnt
pm
t shareprf:, courft
ILO
00
0
0
co
'n
0
U)
m
ci)
Award TfAceii
Frx
C,V4a1oari Raw 1:1Aft
COMETt.
_
Mac:IF.::r
Revert Plan: ok
vend this is equal to total count
fac-es
Test Plan:
htto:lAyww.rtle.dem006.t.oebrx;icoomtp:ugitiilike. php-?hret ::http nmtab1 e.com,2010/05,104/zynga--larrnviNe-valuell&layout,,button_cnashow-
Reviewed by: mkinsey
Summary: SOc we can stop being inconsistent
aA::tg4tt4d.:iAati.Alcft::Wtttitc::.Opt0t::0*SWW:.ta:*400M*NM:
rn
ORP11 e-M
None
Pt s rE242a,e2-. Fix fog spew tor 1:;,t-Consistentileeh on GemidiandieV2
n
CilwslmAted
rAntani rnaka
0
ci
Ill
0
Lbke-
__.....
O
CO
(./1
O
0
O
-n
0
z
rn
z
0
z
rn
71
0
0
z
r-
0
* page treodeled as a traditional share object).
',lc page (modeled as a traditional share obiect),
* Oparam fbid $from_id the id of the logged in user.
* the presence of a like edge between a user and an external
w the presence of a like edge between a user and an external
* Oparam fbid $ta_id the id of the global share object being
* Oparam fbid $fronid the id of the logged in user.
* Construct an ExternallinkiNe instance, which helps manage
w Construct an ExternallinkLike instance, which helps manage
/**
* between a user and an external link.
* between a user and an external link.
/**
* Models a Like edge residing for potentially residing)
/**
* Models a Like edge residing {or potentially residing)
;nx
* tparaa fbid $to_id the id of the global share object being
*
40
* @param bool 8auto_prep true if the constructor should build
3g
liked.
0
z
U)
rn
z
0
z
rn
71
47
46
45
4;
I
44
42
44
43
* @maintainer icuin
* @maintainer jcain
the object in the Preparer:;go sense.
if we expect external code to intentionally prepare
0
0
z
41
if we expect external code to intentionally prepare
r-
the object in the Preparemgo sense.
up the entire object at construction time, and false
41
up the entire of ect at construction time, and false
aram boot $auto_prep true if the constructor should build
0
1.0
cn
U)
O
a
O
a
CO
m
z
0
z
m
0
r-
z
0
z
.* Overrides getSampleConnections that would otherwise be
/**
I
I
$this->sampleConnections can only be
* not everything is self-prepped or prepped externally, we
whether Of
* post preparation, and since we technically don't know
determined
* of the class itself.
preparation
* and the preparation of the LinkiikerDracle overlays the
Preparable,
';.3-
:=2
A:i:
-::0
-,,:...:
-r5:
?e
7,3
-y5
?"34
-
connect the user's friends of the share node in
1;,-;-,
* is only needed if we need to confirm that an edge is really
ix edge.
present.
= 2
Most of it is self-explanatory, but note that Spass
* rehydrate all of the DB material needed to full construct
this
* Implements the one Preparable method needed to efficiently
-12q
1.;:r.
-;.1-::
..;n
T5
55
In
55
/**
V
I
5g
,,
St c.
..--`
:.---i-
:.-.:.
.,.
W
41..1.
I
* maintainer jcain
question.
1,
:--,,
:..14
:-"z.
...
-..-7
that
* @return assoc a dictionary of information about the edges
.%
r-,
4,
w manaually manage the construction of sampleConnection.
need to
?::4
.:=
n
-.:-.-:
:'::.
-n
This particular class is a full-bIown
* inherited.
73
77
Ii3
75
connect the user's friends of the share node in
Most of it is self-explanatory, but note that $pass =
present.
* is only needed if we need to tonfirm that an edge is really
* edge.
this
* rehydrate -all of the DB material needed to full construct
* implements the one Ft-reparable method- needed to efficiently
/**
I
* @maintainer jcain
guestion.
*
that
* @return assoc a dictionary of information about the edges
* manually manage the construction of sampleConnection.
need to
* not everything is self-prepped or prepped externally, we
whether or
2
Sthis->sampIeConnections can only be
* past preparation, and since we technically don't know
determined
* of the class itself.
preparation
I
This particular class is a full-blown
* and the preparation of the LinkliketOracle overlays the
Preparable,
* inherited.
* Overrides getSampleConnections that would otherwise be
/**
I
cn
CO
CO
-a.
CD
0
CD
c)
CD
-In
0
z
rn
rn
z
0
z
rn
z
71
0
0
r-
C)
,
.:
-
:44i,
m
.:.,:
* I'm allowing Tor the possibility that someone creates a
*1
*
maintainer jcain
otherwise.
s @return true if more rounds are needed, and false
been called on this object.
* @param ipt $pass the number of times the prepare method has
* widget should reflect the on-facebock_cem story deletion
The external
* share story, and then goes hack to the external widget.
removes the
* edge using an external widget, comes to facebook.com and
like-this-share
1
1
'..
.'
115:
114
lia
112
Kc
=.-6
The
*/
* @maintainer jcain
* @return true if more rounds are needed, and false otherwise.
been called on this object-
* Qparam let Spass the number of times the prepare method has
* widget should reflect the on -facebook-eom story deletion.
external
* share story, and then goes back to the external widget.
removes the
* edge using an external widget, comes to facebook.com and
like-this-share
* I'm allowing for the possibility that someone creates a
cn
O
a
CO
m
z
0
z
m
0
1
0
z
C)
3.4e:
12:
142
/**
mt
1.43
1.5I.
1,49-
We try to unroll any partial
made if we fail_ halfway through, but it can't be
and false otherwise.
16.3
user, although we need to be able to recover it should
5r,5
1.C,7
share id, sn that we can quickly determine if the user is
currently liking/sharing this item..
*
specific
Each association will need to carry, as data, the user-
*
*
Like count, and we need to maintain associations between
all users who've shared the object and the object itself.
*
*
T-72
171_
7u
Ii.;:?-
16.-8
167
MS
MA
1.%
This is the object that needs to maintain the full
*
"Mi4
-1-.q.-5
on the very first like through the external widget.
*
* + tthis-->toID is the ID of the master share abject, created
164
l'.-.ee
specifically, it's of no use whatsoever to any other
*
the user unlike the share.
'S.:
*
2.4
the fbid of the share story on that user's well,
*
More
* + The share_id returned by share_create is essentially
;4::?,
V.;i6'.
:-.;"7
M
n=
15.
* Implementation notes:
* @maintainer jcain
guaranteed.
changes
*
perfectly
if @return boot true if and only if everything worked out
A asset between the user and it.
53
la?
* user shared a copy of the global share item by adding and
* share item iterD) by creating a new share item and noting
::...3
--51-
:3
-.56
ee
147
the
146
142
* Establishes a link between the user ifrom/D) and the global
145
1.41
14
544
140
14'.?
.5.43
1'39
;:
E
tte esee ie
More
the user unlike the share.
user, although we need to be able to recover it should
specifically, its of no use whatsoever to any other
the fbid of the share story on that user's wall.
Each association will need to carry, as data, the user-
all users who've shared the object and the object itself,
like count, and we need to maintain associations between
This is the object that needs to maintain the full
on the very first like through the external widget.
*
*
currently likingieharing this item.
ehare_id, so that we can quickly determine if the user is
specific
*
*
*
*
*
* + Sthis->toID is the ID of the master share object, created
*
*
*
*
* e The share_id returned by share_create is essentially.
* Implementation notes:
*
We try to unroll any partial
made if we fail halfway through, but it can't be
* iemaietainer jcain
guaranteed.
*
changes
*
and false otherwise.
* @return burl true if and only if everything worked out
*
* assoc between the user and it.
* user shared a copy of the global share itec by adding and
* share item (toID) by creating a new share item and noting
* Establishes a link between the user (fromln and the global
perfectly
the
I
Le tee ere e
,f,
5.0
".S
,',S.
;NS
':
. '7 -.
.,s's
s.0.
?",f
,..:.::.
--
e4
f-,
'..."..:
S
? \: N
',-....'s
,
..
s''--
-'!:.'
-.,
:7:
.
-5
'''-;,
5'..
,."...
.."..
e-..;
:,..s
:,:s
:...:
:
!
:
:0
:
',..,
....,..
...r.:
,..".:
4...":
%.'.
......
....::
ii:
:::.
.
.
......,
'. "
:7.,
:
It:.
11,
.
...,
`.'
4
.
.
,,
.......
':.:.
.....:
.7,.%.
....;',.
:"....
%.4
,.....,
.,..
,",
.,..
....,
.7(
.
C;
...'":
t...
.
.
L.,
...
:..".
....,,
::
x
........
.
.......:
--
..s.
,.
ri
,-sr
(74
*IT
t.Nt
=
.
".S'
(NI
I
.
::.
ft
.
.
..
=
.
-......
.-.-4
5N
tzZ:
tes
F rs
Lx's
:.-7-..1
S'.S
£.7,3
IN
.
s':.
i
-.:
.-
'-:
,.'5
;,-....:
(.4
,....,..
s'.!''.3
4N1
,r,i
r4
fl
1...-1
iN
r:.'...
.:',....
s',.:
.\
.
..."'..
:..."7.2
(....1
N N
',3
-:-4
C4
04
.
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
FB000001597
EXHIBIT D
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
D144832
Create Diff
Integrate Share-Scraper functionality into Titan
All Users
Committed
Author wbailey
Reviewers
Lint
Unit
Edit Revision
Press ? to show keyboard shortcuts.
rdbayer
*
*
Edit Linked Facebook
Lint Warnings
Tasks
No Unit Test Coverage
Edit Dependencies
Download Raw Diff
Commits rE278245: Integrate Share-Scraper functionality into Titan
rE278610: dmurphy via release.php: merging 278245
Lines 224
Ask for Merge for
rE278245: Integrate
Async Build None
Share-Scraper
functionality into Titan
Tasks #269602: Integrate share-scraper
Subscribers rdbayer, drew, wbailey and 2 others
Ask for Merge for
rE278610: dmurphy
via release.php:
merging 278245
Flag For Later
Award Token
Subscribe
SUMMARY
This diff adds a simple share scraper to Titan. Per discussions with
the team I did not integrate the existing composer and instead created
a standalone scraper control. Modifications were made to the
SendMesssageTitanController to allow creation of a share object during
preparation. This is passed through to the XHP rendering via the
fbAttachmentData attribute. The logic for embedding replies was modified
so that replies that include an fbAttachment are rendered as whole posts
rather than embeds.
TODO:
need a strategy for dealing with sending these fbAttachments out to external email addresses
integrate the changes in D144-710
TEST PLAN
Tested creating shares to validate they render properly
REVERT PLAN
OK
wbailey updated this revision.
Via Legacy Aug 12 2010, 12:08 AM
accidentally left this in
wbailey updated this revision.
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
1 of 20
Via Legacy Aug 12 2010, 10:30 AM
FB00001623
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
the _setVisibility method is unnecessary
wbailey updated this revision.
Via Legacy Aug 12 2010, 11:05 AM
reverting a couple of changes I accidentally included
making the scraper handle retyping the same link properly
rdbayer added a comment.
Via Legacy Aug 12 2010, 1:05 PM
hey will, let me know once you've integrated with what i committed and updated, then i'll take a proper look at this
wbailey updated this revision.
Via Legacy Aug 12 2010, 2:32 PM
merged with diff from ross
wbailey updated this revision.
Via Legacy Aug 12 2010, 2:47 PM
these lines shouldn't have been modified
wbailey updated this revision.
Via Legacy Aug 12 2010, 2:50 PM
wbailey updated this revision.
Via Legacy Aug 12 2010, 2:52 PM
typo
sorry...left this in
rdbayer requested changes to this revision.
Via Legacy Aug 12 2010, 3:48 PM
dude, awesome work on this, welcome to the code base :)
a bunch of comments to help you get up to speed on our coding standards, but nice work overall
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
2 of 20
FB00001624
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
-I
-I
-I
wbailey updated this revision.
Via Legacy Aug 13 2010, 9:52 AM
Ross, thanks for the great review. See updates:
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
3 of 20
FB00001625
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
wbailey updated this revision.
https://phabricator fb.com/D144832
Via Legacy Aug 13 2010, 9:57 AM
forgot to yank this unused method
wbailey updated this revision.
Via Legacy Aug 13 2010, 10:07 AM
I can simplify this since the composerld is known. No need to do dom
manipulation.
rdbayer added a comment.
Via Legacy Aug 13 2010, 1:53 PM
great work cleaning this up. a few more questions, but getting close :)
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
4 of 20
FB00001626
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
wbailey added a comment.
https://phabricator fb.com/D144832
Via Legacy Aug 13 2010, 10:24 PM
I'll follow up with uie to verify this, but let me know if I'm missing something you are aware of.
rdbayer added a comment.
Via Legacy Aug 13 2010, 11:44 PM
good points, i hadn't considered those. maybe run it by uie to see if they can think of a good way, if not what you
had will do :)
wbailey added a comment.
Tom Occhino pointed me to
work here as well.
Via Legacy Aug 14 2010, 12:14 AM
I
think this will probably
FYI he also said...
"technically its a bug that you can't pass the class name.. we have to tell Marcel to fix.. also, no underscores,
hyphens, or capital letters in attribute names"
wbailey updated this revision.
Via Legacy Aug 15 2010, 10:55 AM
Thanks for the review. I learned a few things about Preparables in the
process.
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
5 of 20
FB00001627
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
rdbayer accepted this revision.
https://phabricator fb.com/D144832
Via Legacy Aug 15 2010, 3:05 PM
awesome dude, a few little nitpicks, but otherwise good to get this in :)
wbailey updated this revision.
Via Legacy Aug 16 2010, 9:04 AM
updates...thanks!
wbailey updated this revision.
Via Legacy Aug 16 2010, 9:27 AM
updating to use merged in onload register for referencing the composer
controller
wbailey updated this revision.
Via Legacy Aug 16 2010, 9:35 AM
switching this handler back to use the js constructor style referencing
and accidentally included a merge artifact
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
6 of 20
FB00001628
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
Via Legacy Aug 16 2010, 9:40 AM
wbailey closed this revision.
7
Revision Update History
Diff
ID
Base
Base
Description
Lint
Unit
Aug 12 2010, 12:05 AM
*
*
Created
Base
Diff 1
374980
fd87c2f
Diff 2
374981
6e2a416
accidentally left this in
Aug 12 2010, 12:08 AM
*
*
Diff 3
375135
b4da471
the _setVisibility method is
unnecessary
Aug 12 2010, 10:29 AM
*
*
Aug 12 2010, 11:03 AM
r
r
r
r
r
*
Diff 4
375176
b849eaa
- reverting a couple of changes I
accidentally included - making the
scraper handle retyping the same
link properly
Diff 5
375497
83d3b5f
merged with diff from ross
Aug 12 2010, 2:32 PM
*
*
Diff 6
375526
Oce95af
these lines shouldn't have been
modified
Aug 12 2010, 2:47 PM
*
*
Diff 7
375532
aca5d94
typo
Aug 12 2010, 2:49 PM
*
*
Diff 8
375537
05dac59
sorry...left this in
Aug 12 2010, 2:51 PM
*
Aug 13 2010, 9:44 AM
Diff 9
376265
2fca9ee
Ross, thanks for the great review.
See updates:
r
*
r
r
r
r
r
r
r
r
*
*
r
r
replaced hard-coded pa...
Diff 10
376274
65079fd
forgot to yank this unused method
Aug 13 2010, 9:56 AM
*
*
r
r
Diff 11
376284
d9c225e
I can simplify this since the
composerld is known. No need to do
dom manipulation.
Aug 13 2010, 10:07 AM
*
*
r
r
Aug 15 2010, 10:33 AM
*
o
r
Diff 12
377426
165bc82
Thanks for the review. I learned a
few things about Preparables in the
process.
*
remo...
Diff 13
377851
c2ac5be
updates...thanks!
Aug 16 2010, 9:03 AM
*
C
Diff 14
377860
d8f982d
updating to use merged in onload
register for referencing the composer
controller
Aug 16 2010, 9:27 AM
*
C
Oac42ca
switching this handler back to use
the is constructor style referencing
and accidentally included a merge
artifact
Aug 16 2010, 9:34 AM
*
Diff 15
377863
Whitespace Changes:
*
Ignore Most
Table of Contents
Path
Coverage (All)
Coverage (Touched)
I
I
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
7 of 20
FB00001629
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
: Show All Context i
Diff 377863
View Options
This file contains generated code, which does not normally need to be reviewed. Show File Contents
View Options
Show First 20 Lines Show All 78 Lines Show 20 Lines
M
72
79
79
80
80
81
82
I
81
82
83
83
84
84
85
85
86
I
86
87
88
87
89
88
90
89
91
90
92
91
93
92
94
93
95
94
96
Show All 12 Lines
106
107
109
108
110
109
111
110
112
111
113
112
114
113
115
114
116
115
117
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
8 of 20
FB00001630
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
46
47
48
I
49
50
51
52
View Options
1
/**
1
/**
2
* @provides messaging-composer-js
2
* @provides messaging-composer-js
3
* @requires arbiter async css dom
3
* @requires arbiter async css dom url-scraper
4
*/
4
*/
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27
28
28
29
30
31
32
33
34
29
35
30
36
31
37
32
38
33
39
34
40
35
41
36
42
37
43
38
44
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
12 of 20
FB00001631
5/30/2015 6:30 PM
https://phabricator fb.com/D144832
0 D144832 Integrate Share-Scraper functionality into Titan
45
39
.
46
40
47
41
48
42
49
43
50
44
51
45
52
46
53
I
I
54
47
55
56
48
49
II
57
58
50
51
52
59
/**
* Gets called when Compose dialog is closed (but
60
54
* Gets called when Compose dialog is closed (but
not cancelled)
not cancelled)
53
/**
* or a reply is sent.
61
* or a reply is sent.
*/
62
*/
63
55
96
Show All 33 Lines
89
97
90
98
91
99
92
100
93
101
M
94
95
N
102
1
103
104
96
105
106
97
107
98
108
99
109
100
110
111
101
// don't close the dialog or
102
103
II
104
// don't close the dialog or
112
follow the href
follow the href
113
II
114
115
/**
116
* serialize the fb attachments from the stage
117
*/
118
119
120
.
121
122
/**
123
* begin detecting urls
124
*/
125
126
127
128
129
130
131
132
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
13 of 20
FB00001632
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
133
134
135
* fired when a url is detected
136
*/
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/**
152
* fired when the share scraper ajax call completes
153
*/
154
155
156
157
158
159
/**
160
* cleanup share scraper stage
161
*/
162
163
164
165
166
167
168
105
106
// Hack for now, the tokenizer/typeahead doesn't
169
really support locking
107
// no good way to lock the token pool right now
170
108
// TODO(wiley) 6/15/2010 When we get actual
171
locking functionality for
109
// typeahead/tokenizer, use that instead
// no good way to lock the token pool right now
// TODO(wiley) 6/15/2010 When we get actual
locking functionality for
172
110
174
112
175
113
// typeahead/tokenizer, use that instead
173
111
176
114
177
I
115
178
116
179
117
180
118
181
119
182
120
183
121
122
I
I
184
185
123
I
187
125
I
186
124
188
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
14 of 20
// Hack for now, the tokenizer/typeahead doesn't
really support locking
FB00001633
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
189
126
190
127
191
128
192
129
193
130
194
I
131
195
132
196
133
197
N
Show 20 Lines Show All 57 Lines Show Last 20 Lines
.
_
.
Show First 20 Lines Show All 829 Lines Show 20 Lines
.
830
831
View Options
..
824
830
831
832
832
833
833
834
834
835
835
I
// else The server knew this shouldn't be
836
836
embedded
I
// else The server knew this shouldn't be
embedded
837
837
838
838
839
839
840
840
// Emote
841
841
// Emote
842
842
843
843
// Add the whole html portion of the message
844
844
to the messages list
// Add the whole html portion of the message to
the messages list
845
845
846
846
Show 20 Lines Show All 376 Lines Show Last 20 Lines
View Options
Show First 20 Lines Show All 328 Lines Show 20 Lines
325
329
329
330
330
331
331
332
332
333
333
334
334
335
335
336
336
337
337
338
338
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
15 of 20
339
FB00001634
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
339
340
340
341
341
342
342
343
343
344
344
345
345
346
Show 20 Lines
Show All 46 Lines
Show 20 Lines
390
392
393
393
394
394
395
395
396
396
397
397
398
398
399
399
400
401
402
403
404
400
401
402
405
// Separate the new message case from the send
406
message reply case based
403
// on 0 or 1 thread ids.
// Separate the new message case from the send
message reply case based
407
404
405
// on 0 or 1 thread ids.
408
409
410
411
// create fb attachment
// TODO: well need to handle multiple types of
app_ids here
412
//
this is just the generic link sharing
case. Photos and
413
//
videos should be passed in a similar way
but the sharings
414
//
are created differently see the Gigaboxx
Composer endpoint for
415
//
details. wbailey
416
417
418
419
420
421
422
423
424
425
426
406
427
407
408
428
// New thread as there is nothing to reply to
409
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
16 of 20
429
// New thread as there is nothing to reply to
430
FB00001635
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
410
431
411
432
412
433
434
413
435
414
436
415
437
416
438
417
439
418
440
419
441
420
442
443
421
444
422
445
423
446
424
447
425
448
426
449
427
450
428
451
Show All 10 Lines
// TODO:
439
Is there a way Sentry supports e-mail
459
// TODO: Is there a way Sentry supports e-mail
462
addresses too?
addresses too?
440
463
441
464
442
465
443
466
444
467
445
468
446
I
469
I
470
// if there is an fb attachment fetch it in
471
parallel as there
7/ are no dependencies on this data until the
472
render phase
473
474
475
476
477
478
479
447
I
480
448
482
450
483
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
of 20
17
I
481
449
I
FB00001636
5/30/2015 6:30 PM
https://phabricator fb.com/D144832
0 D144832 Integrate Share-Scraper functionality into Titan
451
484
452
485
486
487
488
I
453
I
489
490
454
// Get the titan TID of the sent thread.
455
This
// Get the titan TID of the sent thread.
491
This
should be the root-tid
should be the root-tid
492
456
493
457
I
458
I
494
495
459
// get the fb attachment data from the ShareData
496
preparable
497
498
499
500
501
502
503
504
505
506
460
// no worthwhile markup to return, but don't
461
getXHPObject()
// to fail like default ActionTitanController
462
behavior does
509
463
I
464
510
511
465
I
512
I
513
467
Show 20 Lines
Show All 170 Lines
Show 20 Lines
589
638
684
639
685
640
686
641
687
642
688
643
689
644
690
645
691
646
692
647
693
648
694
695
649
650
// need to wrap it in a correctly formatted
696
// need to wrap it in a correctly formatted
before returning
before returning
651
697
652
698
653
699
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
18 of 20
// to fail like default ActionTitanController
508
behavior does
466
// no worthwhile markup to return, but don't want
507
want getXHPObject()
FB00001637
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
654
https://phabricator fb.com/D144832
700
Show 20 Lines Show All 99 Lines Show Last 20 Lines
,
.
.
View Options
,
Show All 12 Lines
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27
28
28
29
29
30
30
31
31
32
32
33
33
34
Leap Into Action
These changes have lint problems.
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
19 of 20
FB00001638
5/30/2015 6:30 PM
0 D144832 Integrate Share-Scraper functionality into Titan
https://phabricator fb.com/D144832
Action Comment
Comment
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
20 of 20
Clowncoptarize
PREVIEW
FB00001639
5/30/2015 6:30 PM
EXHIBIT E
Ai! Users
Results (I Detail)
Press
to snow keyboard shortcuts
5493: LId Tracking
Ask for Merge for
Adjustments
rE
Run Perflab E_xpertrnent
The purpose of this change is to be able to accurately
tkarnenick, platform-diffs&ists
Complete Test Run 7685110/38/3/4 (pessiskipitailifatablimeout) with 0 Failure not in trunk
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
Subscribe
Award Token
Flag For Later
EST Strihgs
Perflab
FB000001599
Sort
SharetinTrackingTests
Skip
Show Fuli Unit Results g7 Passed, 4 Details)
Tracking Adjustments
RecornmendalionsBarClueryTestCsse
rE64581: Mali merging
645493 sh o t Url
Skip
Unit Tesi:s
(check-Module)
Ask for Merge for
Download Raw Diff
not new to 'his di ft
Lines 29
Arcanist Project facebook-www
Repository rE (Engineering)
SUMMARY
Tasks
Edit Linked Facebook
ShareFeedbactiTardetTestCase
Branch tikecounts
Subscribers
Edit FRevision
Create Diff
Edit Dependencies
Show Full U
REP
aisi
Warring
daWN IV-ij
Lint Warnings
tbithareicreetekreatm_jmpl,php
Excuse
the
rothbart
LL-ViWt/ Ur!
Commits rE645493: Uri Tracking Adjustments
rE
16: bha3 merging 6454931 ahirnet Urt Tracking Adjustments
Perfiab
Unit
Lint
Reviewers
Author al-14nel
Committed
Uri Tracking Adjustments
D597938
titips-.Itoriebrinstr lbosin/0591938
3e4E-FiLl
(On Diff #1505646)
1505646
1505798
Diff 1
01li' 2
Base
ID
This is epic,
Commit rEe45493
Ease
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
645492
645379
Base
Description
Closed by commit rE645493 (authored by &ahintel }.
anirriel closed this revision.
33
Revision Update History
Diff
Oct 11 2012. 7:38 AM
Oct 11 2012, 12:4S AM
Crested
TtICK4N -AUJUSEHIEJfk
flibirnessagingicontrollerstactionlsendiSerdMessageContro!lerFactory.php
Sent a bunch of messages and did a lot of wall posts
ttips.itphabricakar Paocciil0597938
=
TEST PLAN
data
determine what % of the like counts are attributable to private
messages, lithe % is low enough, we will cut this tracking due to
privacy concerns. This diff does two things:
1i Separate wall posts and private messages in the accounting
(post_count, share_count),
2/ Add hive logging for message sends to use for double-checking the
LL-Vi Wt/ Ur!
*
Lint
"k
Unit
'_.
217
FB000001600
:..ii.:
,
.
.
.
,
.
L.7
Lr.:V.WO Ur I,
dChthr
.
MIMI
1.11111111111
30
29
27
IIIIIIIIIIIIIIIIIIIIIIIII
28 M
26
25
16
lonore most
:
.
1
FB000001601
4F
Oct 11 20'12, 12 42 AM
Date
Show OW
MIIIIIIIIIIIIIIIIII
111.111.11
Wh[tespace Changes:
I;Lijse EPV.S
Ud Tracking Adjustments (Show More, ..)
Summary
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
.
.
ahimel
c954acifc382
IIIIIIIIIIIIIIIIIIIIIII.
MMM
titlimitpheiTicatcr lb.axn10597938
29
28
27
26
25
9c58353615f7
affilcaaa815c
Author
Parents
IIIIIIIIIII
WM
IIMIIIII
Tree
Commit
Local Commits
.
3Y4Es.ex3 i-D
31
32
33
34
35
36
37
38
39
40
LE LIMMAXiiirl
11111111111111111111111111111111111111111111111111111111
// Separate the new message case from the send message
ccni/ENWM3
f/ New thread as there is nothing to reply to
11111111
111111111.111.1111111111
111111111111111111111
// on 0 or I thread ids.
reply case based
htlin:Yptobrit-Atex
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
al
1111
1111
MINI
111111111111111111111111111111111111111111111111111111111
I r tICKff Ng AtlitE50ii-EAVLS
31
12
33
34
35
36
37
1111111111
11111111111111111111111111
39
-
.
If New thread as there is nothing to reply to
MIME
111111
1111111111111111111111
-
1111111111111111111111
// on 0 or 1 thread ids.
reply case based
// Separate the new message case from the send message
1
11111111111
11111111111111111111111111111111111111111
1111111111111111
MM.
38
4e
41
42
43
44
45
46
47
48
49
50
51
53
52
39
..
FB000001602
22e
222
223
222
223
-
calor la otxril0501938
120
I
123
122
121
125
119
118
11R
119
117
117
111101111111111111111111.11111111111111.1
115
116
114
113
lea
233
232
231
230
116
// add it if we have it
information
II -otrfee URL objects were created without sharescraper
Show First 20 Lines Show Ali 112 Lines V Show 20 Lines
A Show 20 Unes Show AO 693 Lines Show Last 20 Lines
EMI=
// get rid of them
115
114
113
231
230
229
22R
229
/1 TOODOgroSs): ogaction_createfirst and
227
ogactidn_deletelast seem unused,
228
227
225
226
226
224
225
224
221
221
=MEMO
// add it if we have it
-
per
MI11111111
-
FB000001603
1111111111111111111111111111111111
P some URL objects were created without
111111.1.111.
ogaction_deletelast seem unused,
if get rid of them
// TODD(jgrasS); ogaction createfirst and
// Action mutation logging
219 11M1.11.
218
220
219
218
if Action mutation logging
tICKKN -AUJUSIMENILS
217
WU Ur!
216
L.'
217
.:
216
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
30.41:3-110
Deffs.13
121
122
123
124
125
:126
127
128
129
130
131
132
1
111111111
111111111
11111111111111
1111111111111111
J! Add the user as a coptributor if it was posted
11111111111111111111111111111111111111111
UW0 Ur!
TdCK
124
12
126
127
128
129
13a
131
132
133
134
135
355
354
353
352
1111111111.1111111111111111/
3.56
358
357
356
355
354
353
352
319
357
354
363
362
361
360
359
-
358
111111111=11111111111
111111N11111111111.111111111MM,_ I
359
36
361
j-IV5Irptiahricalorflcm-0)507938
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
11111111111111111
111111111111
11111111
MI=
111.11.
111111111--
/;LgLESURIAK5
1
j; Add the user as a covtributar if it was posted
11111111111111111111111111111.11
INN
11111111111111=1111111
V
FB000001604
.
.
3.67
366
365
366
366
371
36a
A Show 20 Lines Show AI 108 Lines Show Last 20 Lines
1111111.111111111111111
370
367
111111111111.11111
365
..,
prajagopaian added a comment.
Comment
Action !Comment
These changes have lint problems.
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
.
.
Ciowne.optefize
Mil
11111=1.
11111111
11
L'Mlf ti4X1 UVI I f dattiN IV.JjtM-Lr El EPV.S
36S
364
363
362
Leap into Action
3-D
ttips:Itptebriczkar lb.00miD597938
3e4-1,23
,
FB000001605
PREVIEW
1
EXHIBIT F
Ali Users
Run Per lab Experiment
*
Perfiab
Press 7 to show keyboard sboricuts
bgolub, platforrn-diffsQRsts
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
titimitphabricator /b.00crilD602346
These were contributing 0,8-4% of the count depending on
domain, Given the low contribution and high degree of scrutiny from
privacy advocates, let's just remove it,
SUMMARY
Subscribers harshdeep,
Subscribe
Awed Token
Flag For Later
FBT Strings
Perflab
Snoadort
ii5
FB000001606
Like Button Count
649796 j ahimei !Remove
Private Messages from
Aicanist Project facebooke
Repository rE (Engineering)
Complete Test Run 7646/3g/87/14TO (passiskiptfailifatalitimeout) with 0 failure not in trunk
rE65043S: bile merging
Ask for Merge for
Button Count
rE649796: Remove Private
Messages from Like
Ask for Merge for
Downkad Raw Diff
Edit Dependencies
Tasks
Edit Linked Facebook
Edit FRevision
Create Diff
Lines 12
Branch lice counts
Commits rE649796: Remove Private Messages from Like Button Count
rE650435: bhati merging 649796 animel Remove Private Messages from Like Button
Count
to Unit Test Coverage
*
tint OK
Unit
Lint
rothbart
Author ahimel
Reviewers
the
Committed
Remove Private Messages from Like Button Count
D602346
649378
1521770
MIT 3
Local Commits
1519845
MIT 2
Lint
*
Created
Oct16 2012, 8:15PM
Commit rE649796
*
*
*
Unit
Y
1
*
J
0
I
215
FB000001607
5---11"` °i4T-
0
(5)
Legacy Oct 16 2012. 8:21 PM
ignore Most
*
Oct 16 2012, 2:28 PM
updating common's
Whitespace Changes-.
*
Oct 162612, 2:26 PM
Base
Description
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
549795
649378
1519837
Base
OW 1
Base
ID
Revision Update History
ttlin.ltphobricator it:loom/0602346
-
Closed by commit rE649796 (authored by @abirmai ).
ahirnel closed this revision.
s
,.4a Legacy Oct 16 2012. 2:28 PM
ahimei updated this revision,
updating comments
Via Legacy - Oct 16 2012,2:27 PM
the accepted this revision,
lIttps:ilapi.animei.deva317.facebook oomirestsenrer.php7method-4inks.getS tats&uris=httpffiNvvw huffington post.com.12012i1 Oil 3ttirnothy-kurekstraight-chtistian-pretends-gay n_1963657,ntrnt
Locked at results for given uri - total count and share count
both go down by the number of private messages sent.
TEST PLAN
8ce4foe 2cd la
973d7480a626
Path
ahi ei
(18383fl941df
6
11 the metrics data type populates our internal params
9
likes on page
IIIIIIIIIIIIIIIIIII
if this includes the tradiational likes-on-feedback and
111111111111111111111111
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
htimitphabricator PacomfD602346
15
14
13
12
// external/official names for the metrics, so we rename
them here
IIIIIIMIIIIIIIM
_.1
likes on page
F B000001608
/I this includes the tradiational likes-on-feedback and
11.1111111111.11
15
V
y/ 'post_count', '/ike_count', and 'corarment_count* These
are nut the
'share_count',
/1 the metrics data type populates our internal params
11111111111.1111111.11111M11111.111111
1.1111111M1
13
14.
I
Coverage crouched)
Oct 16 2012, 224 PM
Date
11111
1/ Copyright 2064-present Facebook. All Rights Reserved.
12
11
If external/official names for the metrics, so we rename.
11
them here
// 'post_count', "Iike_count', and 'comment_count' These
are not the
10
'share count',
le-
9
MIMI
6
-6
7
5
5
1111111111111111111
4
7
3
3
2
1
I
Coverage (A11)
Remove Private Messages from Like Button Count (Show More_ .)
Summary
// Copyright 2064-present Facebook. All Rights Reserved,
=
Author
Parents
4
2
1
Diff 1521770
M
....
Table of Contents
Tree
Commit
1
exists
28
27
1
AGE
comment
y
___
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
htimitphabricator PacociilD602346
Comment
Leap into Action
Show AEI 34 Lines
34
33
1
33
34
32
32
31
aa
10
31
29
// TO00(jtung): make this work for non-integer fields
If this returns null if it is 0, to indicate no fhid
- -26
29
2.5
27
26
25
25
111111.11.1111111.1111=11
24
23
22
21
2a
19
18
17
24
11111111111111111111111111111111
amessage_count'
1/ the internal share count is externally named
If share_count
profile in the
1/ we actually want to count messages and past to
16
23
22
21
20
19
la
17
16
I
Mil
1
e,
to indicate no fbid
46
FB000001609
/1 7C00(jtung): make this work for non-integer fields
1/ this returns null if it is
IIIIIMEMIIIIIII
exists
1
111111.111111111111111111111111111
I=MIMMI
'message_cnunt'
1/ the internal share count is externally named
111.1.1MMI1
1111111111111111.11111.111.
// nossages,
private
/, share_coont. adding 'share count' wound include
I/ we actually want to count only posts to profile in the
IIIIIIIIIIIIOIIIIMIIIII
jeanabisnar added a comment,
http6:11phabricatorlb.coniA3602346
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
C 1 0 Vj n coptr ize.
PREviEw
515
FB000001610
EXHIBIT G
rE698931
z
--
Press ? to 'ow keyboard shortcuts
ELT 24:KPAYt
Award Token
Flag For Later
Download Raw Diff
Edit Commit
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
wit.-1,pearitaty_fb_canfrEaTteal
Changes (8)
Task ID: 1969650
Differential Revision: Ntps:liphabricator.fb.wm/D6-62208
CC: platform-diffs@lists, search -dills @lists, hubs--diffs@lists, vibes-diffs@lists. arudoiph
Reviewed By: ahirriel
Reviewers: ahimel, rhe, jeffreyspehar: stayaristefanov
FB000001611
Test Plan: Rendered like button for a URL. verified count didn't go up when URL is shared via a private message but it does go up when URL is
shared publicly.
Summary: Don't include share_count in like button counts, following a similar logic to https://ohabricator.fOrorn/D602346.
Remove share count from like button counts
DESCRIPPON
Tags Nc-,ne.
Branches None
Parents rE596930: Add adhoe job to durnp MARC data arid create pages for them
Reviewer ahimel
'
Differential Revision
Committed rothbart Dec 1 2012, 11:49AM
elitity-exterra-nocle
Typeahead
Pages
share
Remove share_count from like button counts
Engineering
Pr oje ct/P a c k age Au
4eZIY.eL"
Shove AM 58 Lines
Show Al 28 Lines
11. Show 20 Lines
6a
5g
7
67
67
1111.111111111MIIIIIII111
I/ for facebook uris, external share object counts are rot
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
http5.1tphohricator Facornica9Nel
147
147
146
145
146
144
145
8
71
144
1
70
71
7a
69
1
69
=MIMINIIMMIMMIIMMIM
66
66
68
65
65
6R
54
64
IIIIIIIIIIIIIIII
63
63
62
62
IIIIIIIIIIIII
61
worth indexing
J/ If no share information exists for this page, it is not
Show First 20 Lines
1
61
60
5g
1123
1226
1125
-4-e.AKel2TO
1
Ir
116
FB000001612
// for facebook uris, external share object counts are not
.11111111.1111111
1
MMIIMMINII.11.1.1.11110.
IIIIIIIIIIIII
MEM.
no share information exists for this page, it is not
worth indexing
1/ If
154
155
156
157
154
155
156
157
163
164
165
166
167
168
160
161
162
163
164
165
63
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
ro comfrE4399931
separately
1/ save our fan connections so we can get this number
61
63
62
61
69
62
59
88
59
1111111
162
35
161
158
160
159
159
A Show 20 Lines Show Ali 282 Lines Show Last 20 Lines
153
158
152
152
153
158
151
1/ tracking
151
15e
149
149
share
148
// accurate (shared with different codepath), thus we
always go
// with the sampleconnections likes without the normal
iUMKOUt
148
tittpsitptimbricainc
410
// accurate (shared with different codepath), thus we
separately
FB000001613
if save our fan connections so we can get this number
111111111
111111
111111111111
1/ tracking
share
1/ with the sampleconnections likes without the Forma_
always go
// add to numConnections our share counts to make the
should
// if URL like counts are whacked, then correct them..
71
72
73
/1 ignore any expense as something that isn't worth
/0, this shouldn't happen very often at all, so we
72
71
70
69
69
78
68
68
66
65
64
LO:10:3 I
6.?
// equivalent
numbers
r
61
66
65
64
I
I
78
79
84
85
128
129
135
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
130
127
134
136
126
133
125
124
132
131
I
77
83
I
76
82
130
75
93
74
81
79
80
73
78
77
111111111.11111111111.1111111.11
// worrying about
75
76
74
https://phabricatoribcomirE6989211
`WCW4-1.11,1
I
I
I
I
111111111111.111.1111=1
// equivalent
5/10
FB000001614
// add to numConnections our share counts to make the
numbers
281
282
281
282
/**
28G
280
295
295
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
296
294
11.1111111.111111111111111111111
293
292
291
29G
299
298
287
286
285
.4
289
288
294
./
Stracking_info associative array indexed
eturn integer representing the number of likes we
display externally
4
*
by tracking param
* gparan array
*
* The tracking array can be generated by the getUr1Counts
function
array.
* Gets the number of 'likes' given a external tracking
111.11.11111111111111111.1111111111M
I
293
292
291
290
289
228
28Y
oat
285
/39
289
287
286
28b
=MI
285
285
287
284
284
283
279
279
283
278
1=IMIM
FLUM.kYt
a/a
tAW'Phabrif.at.nr lb curnirEMEM1
ge.AY4712#0
_*,,i
3;f1
F B000001615
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
display externally
}
1trackingLinfo associative array indexed by
* @return integer representing the number of likes we
tracking param
* @param array
function
* The tracking array can be generated by the getUr1Counts
array.
* Gets the number of 'likes' given a external tracking
/**
11111111.1111.
i
I
i
1
i
1
i
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
cern IrE091.43 1
jeanabisnar commented on this commit.
Comments
Action r comment
Creative Accounting
_.
A Show 20 Lines Show AO 205 Lines Show Last 20 Lines
307
303
...
30.6
305
302
*
associative array.
* Gets the tracking_info string given the tracking info
/**
304
301
300
302
303
301
298
2999
300
299
298
297
297
1
itemu.31
296
haps lipfiabr i catcc
-
_
4..0.w2u t-D.
...
*
C,aok. ti:',E.,, Gooks I
.-.-
1
9110
FB000001616
PREVIEW
:
,
-- --- ------ .-------------------
associative array.
* sets the tracking_info string given the tracking info
/**
1
D662208
Ail Users
.
.
Run Perflab Experiment
Show F
.
Unit Remits
.
Passed, I Detail
Press 7 to show keyboard shortcuts.
LiCiOGZI.X3 KL-11K.POL` MO WEIR IT(}1,3F 411L FARM C4.3WICi
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
hltwl,ptiahricator IticurriAMMEI
TEST PLAN
Don't include share count in like button counts, following a similar logic to httosliphabricator fb.comiD602346.
SUMMARY
Complete Test Run 844415134l313 (passiskipifailifataitmeout) with 0 failure not in trunk
Subscribers arudolph, vibes-diffs@lists, hubs-diffs2lists and 2 others
Repository rE (Engineering)
Tasks #1969650: sharing URL links in "private message", can increaset more likes?
Lines 56
Arcenist Project facebook-www
Branch privateMessages
Commits rE699208: eugeneb meroing 698931 rothbart Remove share count from like button counts
rE698931: Remove share count from like button counts
Perflab
.
ShareUrtTraddngTests
Unit Tests OK
Unit
Skip
Lint Postponed
Lint
stoyanstefanov
jeffreyspehar
rhe
Author rothbart
Reviewers
ahimel
Committed
Remove share count from like button counts
410,37.41110
.
.
.
.
Subscribe
Award Token
Flag For Later
FBT Strings
Pettab
Snoaort
button counts
FB000001617
Ask for Merge for
rE698931: Remove
share count from like
like button counts
rE699208: eugeneb
merging 69801 F rothbart
Remove share count from
Ask for Merge for
Download Raw Did
Edit Dependencies
Tasks
Edit Linked Facebook
Edit Revision
.
Create Diff
697814
Base
1724298
Diff 3
occiilD 6072143
Tree
Parents
Commit rE698931
A bit more refeetoring.
Base
Author
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
titipOphabricatx
Commit
Local Commits
1724267
Dili' 2
698910
697814
1720038
10
Diff 1
Base
Diff
Description
animet accepted this revision.
Revision Update History
publicly.
Summary
*
Unit
Whttespace Changes.
...
Date
*
Ignore Most
*
*
Dec 19 2012, 11A5 AM
Dec 19 2012, 11:49 AM
*
*
Lint
Dec /8 2012, 12:07 PM
Created
..
C.)
i
.
FB000001618
Ito* at:.
0
0
'vile Legacy Dec 19 2012. 7:34AM
Rendered like button for a URL, verified count didn't go up when URL is shared via a private message but it does go up. when URI. is shared
71a
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
11
70
71
69
1
69
68
68
11.1.1111111111111.111111.1111.11111.11.11
67
67
06
65
65
1111111111.1111110
64
66
63
64
61
63
111.1.11.11111
59
60
62
1111111.1.111
worth indexing
1/ If no share information exists for this page, it is not
t2
61
60
59
htli-irs:ItphabficabiftleanilD6072}43
-
1127
1127
57
1126
1126
1124
1123
1125
11.1.1111111111111.11.
ME
1125
1124
1123
1122
1122
.
11/1
.
1120
.
1121
.
1120
,
1119
.
1119
LICKIG,IX
11.1.1111.1
I
111111111111
1
.
.
.
4f1-1
FB000001619
1/ if no share information exists for this page, it is not
worth hexing
I
1
MOFIMUFAJWY4VMAKS
157
EMINIMMINIIIMMEMB
155
157
168
165
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
oagn/D6W)913
167
164
ttli-irOphabficatr
165
163
111
164
165
161
162
1t2
161
160
161
159
158
160
15g
158
1.55
155
156
154
153
111111111111
153
154
152
152
258
151
1/ tracking
149
151
150
// with the sampleconnections likes without the norm]
share
always go
148
149
147
// accurate (shared with different codepath), thus we
148
146
146
1/ for facebook uris, external share object counts are not
145
145
14.7
144
144
8
IMIMMIIMEMIIMMEM
IIIIIIIIIIII
i1 tracking
share
FB000001620
11 with the sampleconnections likes without the normal
always go
fi accurate (shared with different codepath), thus we
1l for facebook urls, external share object counts are not
1111.111111111.1111111.1111111.11111111.111
should
71
72
73
7/ ignore any expense as something that isn't worth
// this shouldn't happen very often at all, so we
72
71
70
7/ if URL like counts are whacked, then correct them..
69
69
76
68
68
66
65
67
/1 equivalent
// worrying about
25
71
74
75
76
77
78
79
78
79
80
81
82
83
84
85
77
76
74
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
httpsiipbabricator.ib_GornID662208
_
1/ add to numfonnections our share counts to make the
numbers
64
67
66
65
64
separately
62
62
63
61
61
/1 save our fan connections so we can get this number
60
66
63
59
59
35
/1 equivalent
numbers
6
FB000001621
/7 add to numConnections our share counts to make the
separately
// save our fan connections so we can get this number
I
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
295
Comment F.--
303
Action _comment
307
302
associative array.
305
306
301
304
* Gets the tracking_info string given the tracking info
303
/**
300
302
299
301
298
305
239
298
297
297
296
294
295
29
293
292
291
290
HIGHLY CONFIDENTIAL - ATTORNEYS' EYES ONLY
$tracking_info associative array indexed by
111.11111=1.11.11
associative array.
1W-1i
FB000001622
* Gets the tracking_info string given the tracking info
/**
*1
display externally
* @return integer representing the number of likes we
tracking param
4 @param array
t1xuit3rcnrrnxatuu M 024.115
2E9
294
./
$tracking_info associative array indexed
:.,u--acce.x3Kent
return integer representing the number of likes we
display externally
*
htli-irOphabficatr ittoogn/D6W)913
-
aram array
by tracking param
*
293
292
291
290
239
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?