SVG properties tear-off objects have been troublesome and confusing part of SVG. These objects are created only when requested from DOM and SMIL animations. They wrap primitive or value members in the SVGElements. Their life cycle requires the SVGElement and all the objects in between to be alive even if they are not accessible from the anything else. Many things can go wrong trying to strongly tie the tear-off object with the SVGElement. Trying to fix these issues by relaxing the relationship leads to different kind of problems.
The current code
-- Does not reflect the specs which makes difficult to correlate between them.
-- Lacks clear object life cycle, see all different kinds of pointes in SVGAnimatedProperty, SVGAnimatedPropertyTearOff and SVGAnimatedListPropertyTearOff
-- Lacks correct encapsulation, see the SVGPathElement, SVGAnimatedPathSegList and SVGPathSegList
-- Lacks strong type variable declaration, see SVGAnimatedType
-- Does not choose the right time and place to extract information, see many functions in SVGElement which includes HashMap or HashSet of attributes' names. See SVGAnimateElementBase::determineAnimatedPropertyType() and SVGAnimationElement::checkInvalidCSSAttributeType()
-- Have hacks to overcome the limitation of tear-off object creation and caching, see SVGTests::requiredFeatures() and SVGViewSpec::transform()
-- Has loose relationship between the animator and the form and the to values. See SVGAnimateElementBase.
-- Have correctness issues when animating the same attribute with multiple animators. See https://bugs.webkit.org/show_bug.cgi?id=150388.
-- Have correctness issues with optional attributes, see https://bugs.webkit.org/show_bug.cgi?id=154141.
Attachment 353808[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:150: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 234 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 353812[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:150: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 234 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 353815[details]
Archive of layout-test-results from ews103 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 353817[details]
Archive of layout-test-results from ews107 for mac-sierra-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
Created attachment 353818[details]
Archive of layout-test-results from ews116 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews116 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 353820[details]
Archive of layout-test-results from ews125 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Created attachment 353824[details]
Archive of layout-test-results from ews115 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 353825[details]
Archive of layout-test-results from ews123 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews123 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 355382[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355386[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355388[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 355393[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
From the comment it was not entirely clear:
* if you remove SVG DOM or the Amin part of it? W/o replacement?
* SMIL continues to work.
SVG DOM animVal is discontinued by SVG WG. So that part would be fine I guess. For everything else I suggest informing WebKit-dev.
(In reply to Dirk Schulze from comment #28)
> From the comment it was not entirely clear:
> * if you remove SVG DOM or the Amin part of it? W/o replacement?
I am replacing the SVG properties and the SVG animated properties by proprieties owned by the SVG elements directly instead of the tear-off objects.
> * SMIL continues to work.
>
Yes.
> SVG DOM animVal is discontinued by SVG WG. So that part would be fine I
> guess. For everything else I suggest informing WebKit-dev.
No. I did not remove the animVal because this would require a big change in the layout tests. The only SVG2 change, I did in this patch, was the insertion of non detached items in SVGLists. I will send an email to webkit-dev once a plan for landing this patch is determined.
Thanks.
Attachment 355574[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355575[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355577[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355580[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355582[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 268 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 355585[details]
Archive of layout-test-results from ews125 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 355666[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 266 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355672[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 266 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 355699[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 266 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 355711[details]
Archive of layout-test-results from ews121 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 355752[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedProperty.h:166: Failed to find complete declaration of class PrimitiveShadow [build/class] [5]
Total errors found: 1 in 266 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 355777[details]
Archive of layout-test-results from ews206 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews206 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 355820[details]
Archive of layout-test-results from ews121 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews121 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 356334[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 291 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 356338[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 356340[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 291 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 356342[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 291 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 356344[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 291 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 356346[details]
Archive of layout-test-results from ews200 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 356360[details]
Archive of layout-test-results from ews122 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Created attachment 356884[details]
Archive of layout-test-results from ews100 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 356885[details]
Archive of layout-test-results from ews105 for mac-sierra-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105 Port: mac-sierra-wk2 Platform: Mac OS X 10.12.6
Created attachment 356887[details]
Archive of layout-test-results from ews122 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Created attachment 356888[details]
Archive of layout-test-results from ews203 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews203 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 356889[details]
Archive of layout-test-results from ews114 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114 Port: mac-sierra Platform: Mac OS X 10.12.6
Attachment 356892[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 292 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 356895[details]
Archive of layout-test-results from ews200 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews200 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Created attachment 356896[details]
Archive of layout-test-results from ews125 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 359735[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 300 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 359747[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 363581[details] did not pass style-queue:
ERROR: Source/WebCore/svg/SVGURIReference.cpp:45: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 2 in 292 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 363595[details]
Archive of layout-test-results from ews201 for win-future
The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews201 Port: win-future Platform: CYGWIN_NT-6.1-2.10.0-0.325-5-3-x86_64-64bit
Created attachment 363613[details]
Archive of layout-test-results from ews126 for ios-simulator-wk2
The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126 Port: ios-simulator-wk2 Platform: Mac OS X 10.13.6
Attachment 363690[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 299 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Attachment 364172[details] did not pass style-queue:
ERROR: Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h:33: Failed to find complete declaration of class DecoratedProperty [build/class] [5]
Total errors found: 1 in 299 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 364180[details]
Archive of layout-test-results from ews106 for mac-highsierra-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
Comment on attachment 364172[details]
Unified Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=364172&action=review
Is there any way to make this change in a set of smaller steps? Perhaps a smaller patch that makes the behavior change, and then a bigger one that removes all the now-unnecessary code? I’m a bit overwhelmed by the total size here.
> LayoutTests/ChangeLog:15
> + newItem from its old list before adding it to the new list. SVG2 states
"that the newItem from its old list" doesn’t make sense. Maybe "that newItem is deleted from its old list"?
> LayoutTests/ChangeLog:16
> + that only a copy of the newItem will be inserted.
It’s not quite correct grammar to say "the newItem". I would suggest either "the new item" or "newItem" without the article.
> Source/WebCore/css/CSSCursorImageValue.cpp:108
> + if (const auto* cursorElement = updateCursorElement(*loader.document())) {
This explicit use of const should not be needed. The auto* should match to the const type.
> Source/WebCore/rendering/svg/SVGPathData.cpp:46
> + const auto* renderer = element.renderer();
Should not need const with auto here either. And in many other places. One of the nice things about "auto*" is that it works with both const and non-const pointers depending on what’s returned from the expression on the right.
Really looking forward to this change, but I am concerned with my ability to review it. Neither the smaller patches nor the unified patch seem just right to me.
But someone else may find they can review.
(In reply to Darin Adler from comment #131)
> Really looking forward to this change, but I am concerned with my ability to
> review it. Neither the smaller patches nor the unified patch seem just right
> to me.
>
> But someone else may find they can review.
I removed the SVG tear off objects for SVGAnimatedInteger in https://bugs.webkit.org/show_bug.cgi?id=195722. This the minimum of change I could get to move one property from the tear off world. Once the patch for SVGAnimatedInteger is landed, the other types will be converted similarly.
(In reply to Nikolas Zimmermann from comment #133)
> Dear Said,
>
> glad that you are tackling this. I feel guilty about the tear-off objects,
> since I am responsible for the mess.
>
>
> Have a nice day,
> Niko
Hi Niko,
Actually it was an honor for me to work in the code that you wrote. I learnt a lot from it. And I understand a big part of it was written at the time the septs was being changed. I was lucky to find a working code and finalized specs.
I wish you will have some time to write some patches for SVG 2 and review my patches also.
Thanks for dropping this message.
Said
(In reply to Said Abou-Hallawa from comment #134)
> (In reply to Nikolas Zimmermann from comment #133)
> Actually it was an honor for me to work in the code that you wrote. I learnt
> a lot from it. And I understand a big part of it was written at the time the
> septs was being changed. I was lucky to find a working code and finalized
> specs.
Oh yes, the SVG DOM turned out to be difficult to implement, and some parts were really obscure (SVG DOM live list synchronization, with attributes comes to my mind, etc.). Glad that you are working on it.
>
> I wish you will have some time to write some patches for SVG 2 and review my
> patches also.
I am no longer a reviewer - even if I am technically, I would not feel comfortable with reviewing after my long absence. I've followed each WebKit commit since I left in early 2013, but I am no longer actively working on it - busy with finishing my PhD at present. I hope to find time again for SVG once I am done with my journey in physics...
Have a nice day,
Niko
Comment on attachment 366557[details]
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=366557&action=review> Source/WebCore/svg/SVGAnimateElementBase.cpp:97
> + m_hasInvalidCSSAttributeType = WTF::nullopt;
= { }
> Source/WebCore/svg/SVGAnimateElementBase.cpp:154
> +void SVGAnimateElementBase::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGSMILElement*)
"percentage" is the wrong term here, because it's 0-1, not 0-100. We usually call this "progress"
> Source/WebCore/svg/SVGAnimateElementBase.cpp:192
> + return -1;
Better to return an Optional<float>
> Source/WebCore/svg/SVGElement.cpp:567
> +void SVGElement::synchronizeAllAnimatedSVGAttribute(SVGElement* svgElement)
Can we pass SVGElement&?
> Source/WebCore/svg/SVGViewElement.h:48
> + // FIXME: svgAttributeChanged missing.
File a bug for this? It's not clear what the implications are.
Comment on attachment 366557[details]
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=366557&action=review>> Source/WebCore/svg/SVGAnimateElementBase.cpp:97
>> + m_hasInvalidCSSAttributeType = WTF::nullopt;
>
> = { }
Fixed.
>> Source/WebCore/svg/SVGAnimateElementBase.cpp:154
>> +void SVGAnimateElementBase::calculateAnimatedValue(float percentage, unsigned repeatCount, SVGSMILElement*)
>
> "percentage" is the wrong term here, because it's 0-1, not 0-100. We usually call this "progress"
Done.
But I had to rename the 'progress()' methods of the SVGAttributeAnimator and the SVGAnimationFunction to 'animate()'. So I can rename their parameter 'percentage' to 'process'
>> Source/WebCore/svg/SVGAnimateElementBase.cpp:192
>> + return -1;
>
> Better to return an Optional<float>
Done.
But I had to change the base class and all the other driven classes as well. And I had also to change the return type of SVGAttributeAnimator::calculateDistance().
>> Source/WebCore/svg/SVGElement.cpp:567
>> +void SVGElement::synchronizeAllAnimatedSVGAttribute(SVGElement* svgElement)
>
> Can we pass SVGElement&?
Done.
This function is only referenced from SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute(). It looks like it gets its addresses but I do not know if it is really called or not.
>> Source/WebCore/svg/SVGViewElement.h:48
>> + // FIXME: svgAttributeChanged missing.
>
> File a bug for this? It's not clear what the implications are.
Filed https://bugs.webkit.org/show_bug.cgi?id=196554. And I changed the comment above to include the bug number.
2018-11-04 15:02 PST, Said Abou-Hallawa
2018-11-04 16:41 PST, Said Abou-Hallawa
2018-11-04 17:54 PST, EWS Watchlist
2018-11-04 18:05 PST, EWS Watchlist
2018-11-04 18:48 PST, EWS Watchlist
2018-11-04 18:59 PST, EWS Watchlist
2018-11-04 20:51 PST, EWS Watchlist
2018-11-04 20:54 PST, EWS Watchlist
2018-11-20 21:13 PST, Said Abou-Hallawa
2018-11-20 22:07 PST, Said Abou-Hallawa
2018-11-20 22:47 PST, Said Abou-Hallawa
2018-11-21 00:58 PST, EWS Watchlist
2018-11-24 18:31 PST, Said Abou-Hallawa
2018-11-24 20:27 PST, Said Abou-Hallawa
2018-11-24 20:47 PST, Said Abou-Hallawa
2018-11-24 21:03 PST, Said Abou-Hallawa
2018-11-24 21:19 PST, Said Abou-Hallawa
2018-11-24 21:50 PST, Said Abou-Hallawa
2018-11-25 00:07 PST, EWS Watchlist
2018-11-26 12:17 PST, Said Abou-Hallawa
2018-11-26 13:55 PST, Said Abou-Hallawa
2018-11-26 16:34 PST, Said Abou-Hallawa
2018-11-26 18:06 PST, Said Abou-Hallawa
2018-11-26 21:31 PST, EWS Watchlist
2018-11-27 11:42 PST, Said Abou-Hallawa
2018-11-27 14:05 PST, EWS Watchlist
2018-11-27 16:46 PST, EWS Watchlist
2018-12-02 02:18 PST, Said Abou-Hallawa
2018-12-02 03:40 PST, Said Abou-Hallawa
2018-12-02 08:07 PST, EWS Watchlist
2018-12-02 09:42 PST, Said Abou-Hallawa
2018-12-02 11:11 PST, Said Abou-Hallawa
2018-12-02 11:36 PST, Said Abou-Hallawa
2018-12-02 13:29 PST, EWS Watchlist
2018-12-02 17:19 PST, Said Abou-Hallawa
2018-12-02 18:24 PST, Said Abou-Hallawa
2018-12-02 23:31 PST, Said Abou-Hallawa
2018-12-02 23:59 PST, EWS Watchlist
2018-12-03 08:00 PST, Said Abou-Hallawa
2018-12-04 07:56 PST, Said Abou-Hallawa
2018-12-04 08:59 PST, Said Abou-Hallawa
2018-12-04 09:45 PST, Said Abou-Hallawa
2018-12-04 21:09 PST, Said Abou-Hallawa
2018-12-05 08:28 PST, Said Abou-Hallawa
2018-12-06 08:01 PST, Said Abou-Hallawa
2018-12-06 08:02 PST, Said Abou-Hallawa
2018-12-06 08:02 PST, Said Abou-Hallawa
2018-12-06 08:03 PST, Said Abou-Hallawa
2018-12-06 08:03 PST, Said Abou-Hallawa
2018-12-06 08:04 PST, Said Abou-Hallawa
2018-12-06 14:04 PST, Said Abou-Hallawa
2018-12-07 07:47 PST, Said Abou-Hallawa
2018-12-07 08:13 PST, Said Abou-Hallawa
2018-12-08 11:33 PST, Said Abou-Hallawa
2018-12-08 11:33 PST, Said Abou-Hallawa
2018-12-08 11:34 PST, Said Abou-Hallawa
2018-12-08 11:34 PST, Said Abou-Hallawa
2018-12-08 11:38 PST, Said Abou-Hallawa
2018-12-08 12:43 PST, EWS Watchlist
2018-12-08 12:49 PST, EWS Watchlist
2018-12-08 13:28 PST, EWS Watchlist
2018-12-08 13:30 PST, EWS Watchlist
2018-12-08 13:32 PST, EWS Watchlist
2018-12-08 16:24 PST, Said Abou-Hallawa
2018-12-08 18:17 PST, EWS Watchlist
2018-12-08 18:26 PST, EWS Watchlist
2019-01-22 00:24 PST, Said Abou-Hallawa
2019-01-22 07:59 PST, Said Abou-Hallawa
2019-01-22 10:16 PST, EWS Watchlist
2019-03-04 18:42 PST, Said Abou-Hallawa
2019-03-04 20:50 PST, EWS Watchlist
2019-03-05 00:36 PST, EWS Watchlist
2019-03-05 14:33 PST, Said Abou-Hallawa
2019-03-09 23:26 PST, Said Abou-Hallawa
2019-03-10 01:26 PST, EWS Watchlist
2019-04-02 11:36 PDT, Said Abou-Hallawa
2019-04-02 17:18 PDT, Said Abou-Hallawa
2019-04-03 13:43 PDT, Said Abou-Hallawa