CINXE.COM
505115 - CSS3 3D-Transforms
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta property="og:type" content="website"> <meta property="og:title" content="505115 - CSS3 3D-Transforms"> <meta property="og:url" content="https://bugzilla.mozilla.org/show_bug.cgi?id=505115"> <meta property="og:description" content="VERIFIED (matt.woodrow) in Core - CSS Parsing and Computation. Last updated 2015-11-12."> <meta name="twitter:label1" value="Type"> <meta name="twitter:data1" value="enhancement"> <meta name="twitter:label2" value="Priority"> <meta name="twitter:data2" value="--"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="color-scheme" content="dark light"> <meta name="generator" content="Bugzilla 20241126.1"> <meta name="bugzilla-global" content="dummy" id="bugzilla-global" data-bugzilla="{"api_token":"","config":{"basepath":"\/"},"constant":{"COMMENT_COLS":80},"param":{"maxattachmentsize":"10240","maxusermatches":"50","splinter_base":"\/page.cgi?id=splinter.html&ignore=\/","use_markdown":"1"},"string":{"TextEditor":{"command_bold":"Bold","command_bulleted_list":"Bulleted list","command_code":"Code","command_heading":"Heading","command_italic":"Italic","command_link":"Link","command_numbered_list":"Numbered list","command_quote":"Quote","comment_editor":"Comment Editor","edit":"Edit","etiquette_link":{"href":"page.cgi?id=etiquette.html","text":"Etiquette"},"guidelines_link":{"href":"page.cgi?id=bug-writing.html","text":"Bug Writing Guidelines"},"loading":"Loading…","markdown_link":{"href":"https:\/\/guides.github.com\/features\/mastering-markdown\/","text":"Markdown supported"},"preview":"Preview","preview_error":"Preview could not be loaded. Please try again later.","text_editor":"Text Editor","toolbar_label":"Markdown text-formatting toolbar"},"bug":"bug","bug_type_required":"You must select a Type for this bug","component_required":"You must select a Component for this bug","description_required":"You must enter a Description for this bug","short_desc_required":"You must enter a Summary for this bug","version_required":"You must select a Version for this bug"},"user":{"is_new":true,"login":""}}"> <meta name="google-site-verification" content="JYXIuR9cAlV7fLmglSrc_4UaJS6Wzh5Mdxiorqu5AQc" /> <title>505115 - CSS3 3D-Transforms</title> <link href="/static/v20241126.1/skins/standard/global.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/BugModal/web/bug_modal.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/js/jquery/plugins/contextMenu/contextMenu.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/BMO/web/styles/bug_modal.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/EditComments/web/styles/inline-comment-editor.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/js/jquery/ui/jquery-ui-min.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/js/jquery/ui/jquery-ui-structure-min.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/js/jquery/ui/jquery-ui-theme-min.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/skins/lib/prism.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/Needinfo/web/styles/needinfo.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/Review/web/styles/badge.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/extensions/Review/web/styles/review.css" rel="stylesheet" type="text/css"><link href="/static/v20241126.1/skins/standard/text-editor.css" rel="stylesheet" type="text/css"> <script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/jquery/jquery-min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/jquery/ui/jquery-ui-min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/jquery/plugins/contextMenu/contextMenu-min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/jquery/plugins/devbridgeAutocomplete/devbridgeAutocomplete-min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/global.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/util.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/widgets.js"></script> <script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG">BUGZILLA.value_descs = JSON.parse('{\"bug_status\":{},\"resolution\":{\"\":\"---\"}}'); var tracking_flags_str = "{\"types\":[\"tracking\"],\"comments\":{\"cf_tracking_firefox133\":{\"?\":\"[Tracking Requested - why for this release]:\"},\"cf_tracking_firefox134\":{\"?\":\"[Tracking Requested - why for this release]:\"},\"cf_a11y_review_project_flag\":{\"requested\":\"Description:\\nPlease provide an explanation of the feature or change. Include a description of the user scenario in which it would be used and how the user would complete the task(s).\\nScreenshots and visual UI specs are welcome, but please include sufficient accompanying explanation so that blind members of the accessibility team are able to understand the feature\/change.\\n\\nHow do we test this?\\nIf there is an implementation to test, please provide instructions for testing it; e.g. setting preferences, other preparation, how to trigger the UI, etc.\\n\\nWhen will this ship?\\nTracking bug\/issue:\\nDesign documents (e.g. Product Requirements Document, UI spec):\\nEngineering lead:\\nProduct manager:\\n\\nThe accessibility team has developed the Mozilla Accessibility Release Guidelines which outline what is needed to make user interfaces accessible:\\nhttps:\/\/wiki.mozilla.org\/Accessibility\/Guidelines\\nPlease describe the accessibility guidelines you considered and what steps you\'ve taken to address them:\\n\\nDescribe any areas of concern to which you want the accessibility team to give special attention:\"},\"cf_tracking_firefox_relnote\":{\"?\":\"Release Note Request (optional, but appreciated)\\n[Why is this notable]:\\n[Affects Firefox for Android]:\\n[Suggested wording]:\\n[Links (documentation, blog post, etc)]:\"},\"cf_tracking_firefox_esr128\":{\"?\":\"[Tracking Requested - why for this release]:\"},\"cf_tracking_firefox_esr115\":{\"?\":\"[Tracking Requested - why for this release]:\"},\"cf_tracking_firefox135\":{\"?\":\"[Tracking Requested - why for this release]:\"}},\"flags\":{\"project\":{\"cf_webcompat_priority\":\"---\",\"cf_a11y_review_project_flag\":\"---\",\"cf_performance_impact\":\"---\",\"cf_webcompat_score\":\"---\",\"cf_accessibility_severity\":\"---\"},\"tracking\":{\"cf_status_firefox_esr128\":\"---\",\"cf_tracking_firefox133\":\"---\",\"cf_status_thunderbird_esr115\":\"---\",\"cf_status_thunderbird_esr128\":\"---\",\"cf_tracking_firefox8\":\"-\",\"cf_status_firefox133\":\"---\",\"cf_tracking_thunderbird_esr115\":\"---\",\"cf_tracking_thunderbird_esr128\":\"---\",\"cf_status_firefox_esr115\":\"---\",\"cf_tracking_firefox135\":\"---\",\"cf_tracking_firefox134\":\"---\",\"cf_status_firefox135\":\"---\",\"cf_status_firefox134\":\"---\",\"cf_tracking_firefox_esr128\":\"---\",\"cf_tracking_firefox_esr115\":\"---\",\"cf_tracking_firefox_relnote\":\"---\"}}}"; var TrackingFlags = $.parseJSON(tracking_flags_str); BUGZILLA.bug_id = 505115; BUGZILLA.bug_title = '505115 - CSS3 3D-Transforms'; BUGZILLA.bug_summary = 'CSS3 3D-Transforms'; BUGZILLA.bug_url = 'https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=505115'; BUGZILLA.bug_keywords = 'dev-doc-complete, verified-aurora, verified-beta', BUGZILLA.bug_secure = false; BUGZILLA.user = { id: 0, login: '', is_insider: false, is_timetracker: false, can_tag: false, can_triage: false, timezone: 'America\/Los_Angeles', settings: { quote_replies: 'quoted_reply', zoom_textareas: true, remember_collapsed: true, inline_attachments: true, autosize_comments: false } }; review_suggestions = { _mentors: [ ], 'CSS Parsing and Computation': [ ], _end: 1 }; static_component = 'CSS Parsing and Computation'; </script> <script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/text-editor.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/BugModal/web/autosize.min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/ProdCompSearch/web/js/prod_comp_search.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/BugModal/web/attachments_overlay.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/BugModal/web/bug_modal.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/BugModal/web/comments.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/ComponentWatching/web/js/overlay.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/bugzilla-readable-status-min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/field.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/comments.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/TrackingFlags/web/js/flags.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/BMO/web/js/firefox-crash-table.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/MozChangeField/web/js/severity-s1-priority-p1.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/MozChangeField/web/js/clear-tracking-priority-s1.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/MozChangeField/web/js/set-tracking-severity-s1.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/lib/prism.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/GoogleAnalytics/web/js/analytics.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/js/lib/md5.min.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/Review/web/js/badge.js"></script><script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/Review/web/js/review.js"></script> <link href="/static/v20241126.1/skins/lib/fontawesome.min.css" rel="stylesheet" type="text/css"> <link href="/static/v20241126.1/skins/lib/fontawesome-brands.min.css" rel="stylesheet" type="text/css"> <link href="/static/v20241126.1/skins/lib/fontawesome-solid.min.css" rel="stylesheet" type="text/css"> <link rel="search" type="application/opensearchdescription+xml" title="Bugzilla@Mozilla" href="/search_plugin.cgi"><link rel="shortcut icon" href="/extensions/BMO/web/images/favicon.ico"> <link rel="canonical" href="https://bugzilla.mozilla.org/show_bug.cgi?id=505115"> <link rel="shorturl" href="https://bugzilla.mozilla.org/505115"><meta name="google-analytics" content="UA-36116321-3" data-location="https://bugzilla.mozilla.org/bug/show-modal" data-title="505115 - CSS3 3D-Transforms"> <script async src="https://www.google-analytics.com/analytics.js"></script><meta name="robots" content="noarchive"> </head> <body class="bugzilla-mozilla-org skin-standard bug_modal"> <div id="wrapper"> <header id="header" role="banner" aria-label="Global Header"> <div class="inner" role="none"> <button type="button" class="iconic ghost" id="open-menu-drawer" aria-label="Open Site Menu"> <span class="icon" aria-hidden="true" data-icon="menu"></span> </button><div id="header-external-links" class="dropdown" role="none"> <button type="button" id="header-external-menu-button" class="dropdown-button minor" aria-label="Show Mozilla Menu" aria-expanded="false" aria-haspopup="true" aria-controls="header-external-menu"> <img src="/static/v20241126.1/extensions/BMO/web/images/moz-fav-one-color-white-rgb.svg" width="32" height="32" alt=""> </button> <ul class="dropdown-content right" id="header-external-menu" role="menu" aria-label="Mozilla Menu" style="display:none;"> <li role="none"> <a href="https://www.mozilla.org/" role="menuitem"> <span class="label" role="none">Mozilla Home</span> </a> </li> <li role="separator"></li> <li role="none"> <a href="https://www.mozilla.org/privacy/websites/" role="menuitem"> <span class="label" role="none">Privacy</span> </a> </li> <li role="none"> <a href="https://www.mozilla.org/privacy/websites/#cookies" role="menuitem"> <span class="label" role="none">Cookies</span> </a> </li> <li role="none"> <a href="https://www.mozilla.org/about/legal/" role="menuitem"> <span class="label" role="none">Legal</span> </a> </li> </ul> </div> <h1 id="header-title" class="title" role="none"> <a class="header-button" href="https://bugzilla.mozilla.org/home" title="Go to home page"> <span aria-label="Go to Bugzilla Home Page">Bugzilla</span> </a> </h1> <form id="header-search" class="quicksearch" action="/buglist.cgi" data-no-csrf role="search" aria-label="Search Bugs"> <button type="button" class="iconic ghost" id="show-searchbox" aria-label="Search Bugs"> <span class="icon" aria-hidden="true" data-icon="search"></span> </button> <div class="searchbox-outer dropdown" role="combobox" aria-label="Quick Search" aria-haspopup="listbox" aria-owns="header-search-dropdown" aria-expanded="false"> <span class="icon" aria-hidden="true" data-icon="search"></span> <input id="quicksearch_top" class="dropdown-button" name="quicksearch" autocomplete="off" value="" accesskey="s" placeholder="Search Bugs" title="Enter a bug number or some search terms" role="searchbox" aria-controls="header-search-dropdown" aria-label="Search Terms"><div id="header-search-dropdown" class="dropdown-content dropdown-panel right" role="listbox" style="display: none;"> <div id="header-search-dropdown-wrapper" role="none"> <section id="header-search-dropdown-help" role="group" aria-label="Help"> <footer role="none"> <a href="/page.cgi?id=quicksearch.html">Quick Search Tips</a> <a href="/query.cgi?format=advanced">Advanced Search</a> </footer> </section> </div> </div> </div> </form> <nav id="header-nav" role="menubar" aria-label="Site Links"> <ul class="links" role="none"><li role="none"> <a class="header-button" href="/describecomponents.cgi" title="Browse bugs by component" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="category"></span> <span class="label" role="none">Browse</span> </a> </li> <li role="none"> <a class="header-button" href="/query.cgi?format=advanced" title="Search bugs using various criteria" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="pageview"></span> <span class="label" role="none">Advanced Search</span> </a> </li> <li role="none"> <a class="header-button" href="/enter_bug.cgi" title="File a new bug" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="add_box"></span> <span class="label" role="none">New Bug</span> </a> </li> </ul> <div class="dropdown" role="none"> <button type="button" id="header-tools-menu-button" class="header-button dropdown-button minor" title="More tools…" role="menuitem" aria-label="Show More Tools Menu" aria-expanded="false" aria-haspopup="true" aria-controls="header-tools-menu"> <span class="icon" aria-hidden="true" data-icon="more_horiz"></span> </button> <ul class="dropdown-content left" id="header-tools-menu" role="menu" aria-label="More Tools Menu" style="display:none;"><li role="none"> <a href="/report.cgi" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="analytics"></span> <span class="label" role="none">Reports</span> </a> </li> <li role="separator"></li> <li role="none"> <a href="https://bmo.readthedocs.io/en/latest/" target="_blank" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="help"></span> <span class="label" role="none">Documentation</span> </a> </li> </ul> </div> </nav> <ul id="header-login" class="links" role="none"><li id="mini_login_container_top" role="none"> <a id="login_link_top" href="/index.cgi?GoAheadAndLogIn=1" class='show_mini_login_form header-button' data-qs-suffix="_top" role="button"> <span class="icon" aria-hidden="true" data-icon="login"></span> <span class="label" role="none">Log In</span> </a> <div id="mini_login_top" class="mini-popup mini_login bz_default_hidden"> <form method="post" action="/github.cgi"> <input type="hidden" name="github_token" value="FsqWsVikMbgqYhNUZ01hIxbkjuPpAc5GISDMYuLDitioyatavOqX7KMCTNfS7j5apW0oJMZu34Tx9Pw5bWrnneRbxNUPP8w7d550SyhhnqKtOu79xmKoUi2AuAdGTShNgwDx3t5y1vy9gCzrxKkuzpKP0IfkMRIYsyy3CgGTGKPWZuM4z5nZJMi8islsQnfmVZeLTjDGsUZnTHjhyXdWx8sNfOOHGnexjW8u1xQvuOJdwCKNmLxnIahSKnki0R98"> <input type="hidden" name="target_uri" value="https://bugzilla.mozilla.org/show_bug.cgi"> <button type="submit"> <i class="fab fa-github"></i> Log In with GitHub </button> </form> <div class="method-separator">or</div> <form action="/show_bug.cgi?id=505115" method="POST" data-qs-suffix="_top"> <input id="Bugzilla_login_top" class="bz_login" name="Bugzilla_login" title="Login" placeholder="Email" aria-label="Email" type="email" required > <input class="bz_password" id="Bugzilla_password_top" name="Bugzilla_password" type="password" title="Password" placeholder="Password" aria-label="Password" required > <input class="bz_password bz_default_hidden bz_mini_login_help" type="text" id="Bugzilla_password_dummy_top" value="password" title="Password" > <span class="remember-outer"> <input type="checkbox" id="Bugzilla_remember_top" name="Bugzilla_remember" value="on" class="bz_remember" checked> <label for="Bugzilla_remember_top">Remember me</label> </span> <input type="hidden" name="Bugzilla_login_token" value="1732714550-D7t8-MdjRp98dG8wphW47HzPIwkLtL7_EFpRS2-qSRY"> <input type="submit" name="GoAheadAndLogIn" value="Log In" id="log_in_top" class="check_mini_login_fields" data-qs-suffix="_top"> <a href="#" id="hide_mini_login_top" aria-label="Close" class="close-button hide_mini_login_form" data-qs-suffix="_top"> <span class="icon" aria-hidden="true"></span> </a> </form> <div class="footer"> <a href="/createaccount.cgi">Create an Account</a> · <a id="forgot_link_top" href="/index.cgi?GoAheadAndLogIn=1#forgot" class='show_forgot_form' data-qs-suffix="_top">Forgot Password</a> </div> </div> <div id="forgot_form_top" class="mini-popup mini_forgot bz_default_hidden"> <form action="/token.cgi" method="post"> <input type="email" name="loginname" size="20" placeholder="Email" aria-label="Email" required> <input id="forgot_button_top" value="Reset Password" type="submit"> <input type="hidden" name="a" value="reqpw"> <input type="hidden" id="token_top" name="token" value="1732714550-GvwCoiK4wDTeiha0hHZiwxzkuA_taG01GsuwKcK9B-Q"> <a href="#" class="close-button hide_forgot_form" aria-label="Close" data-qs-suffix="_top"> <span class="icon" aria-hidden="true"></span> </a> </form> </div> </li> </ul> </div> <dialog id="menu-drawer" inert aria-label="Site Menu"> <div class="drawer-inner" role="none"> <div class="header" role="none"> <button type="button" class="iconic ghost" id="close-menu-drawer" aria-label="Close Site Menu"> <span class="icon" aria-hidden="true" data-icon="close"></span> </button> </div> <ul role="menu" aria-label="Site Links"><li role="none"> <a class="header-button" href="/describecomponents.cgi" title="Browse bugs by component" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="category"></span> <span class="label" role="none">Browse</span> </a> </li> <li role="none"> <a class="header-button" href="/query.cgi?format=advanced" title="Search bugs using various criteria" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="pageview"></span> <span class="label" role="none">Advanced Search</span> </a> </li> <li role="none"> <a class="header-button" href="/enter_bug.cgi" title="File a new bug" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="add_box"></span> <span class="label" role="none">New Bug</span> </a> </li><li role="none"> <a href="/report.cgi" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="analytics"></span> <span class="label" role="none">Reports</span> </a> </li> <li role="separator"></li> <li role="none"> <a href="https://bmo.readthedocs.io/en/latest/" target="_blank" role="menuitem"> <span class="icon" aria-hidden="true" data-icon="help"></span> <span class="label" role="none">Documentation</span> </a> </li> </ul> </div> </dialog> </header> <main id="bugzilla-body" tabindex="-1"> <aside id="message-container" role="complementary"> <noscript> <div class="noscript"> <div class="inner"> <p>Please enable JavaScript in your browser to use all the features on this site.</p> </div> </div> </noscript> </aside> <div id="main-inner"> <div role="toolbar" id="page-toolbar"> <div role="group" class="buttons"> <button type="button" id="copy-summary" class="secondary separate-dropdown-button-main" title="Copy bug number and summary to your clipboard">Copy Summary</button ><div id="copy-menu-dropdown" class="dropdown"><button type="button" id="copy-menu-btn" aria-haspopup="true" aria-label="View" aria-expanded="false" aria-controls="copy-menu" class="dropdown-button secondary separate-dropdown-button-arrow" title="More options for copy">▾</button> <ul class="dropdown-content left" id="copy-menu" role="menu" style="display:none;"> <li role="presentation"> <a id="copy-markdown-summary" role="menuitem" tabindex="-1">Markdown</a> </li> <li role="presentation"> <a id="copy-markdown-bug-number" role="menuitem" tabindex="-1">Markdown (bug number)</a> </li> <li role="presentation"> <a id="copy-text-summary" role="menuitem" tabindex="-1">Plain Text</a> </li> <li role="presentation"> <a id="copy-html-summary" role="menuitem" tabindex="-1">HTML</a> </li> </ul> </div> <div id="clip-container" style="display:none"><input type="text" id="clip"></div> <div class="dropdown"> <button type="button" id="action-menu-btn" aria-haspopup="true" aria-label="View" aria-expanded="false" aria-controls="action-menu" class="dropdown-button secondary">View ▾</button> <ul class="dropdown-content left" id="action-menu" role="menu" style="display:none;"> <li role="presentation"> <a id="action-reset" role="menuitem" tabindex="-1">Reset Sections</a> </li> <li role="presentation"> <a id="action-expand-all" role="menuitem" tabindex="-1">Expand All Sections</a> </li> <li role="presentation"> <a id="action-collapse-all" role="menuitem" tabindex="-1">Collapse All Sections</a> </li> <li role="separator"></li> <li role="presentation"> <a id="action-history" role="menuitem" tabindex="-1">History</a> </li> <li role="separator"></li> <li role="presentation"> <a href="/rest/bug/505115" role="menuitem" tabindex="-1">JSON</a> </li> <li role="presentation"> <a href="/show_bug.cgi?ctype=xml&id=505115" role="menuitem" tabindex="-1">XML</a> </li> </ul> </div> </div> </div> <div role="status" id="io-error" style="display:none"></div> <div role="status" id="floating-message" style="display:none"> <div id="floating-message-text"></div> </div> <section class="module" > <div class="module-content" > <div id="summary-container"> <div class="field bug_modal indent" id="field-status_summary" > <div class=" container"> <span id="field-value-status_summary"> <span class="bug-status-label text" data-status="closed">Closed</span> <span id="field-value-bug_id"> <a href="/show_bug.cgi?id=505115">Bug 505115</a> </span> <span class="bug-time-labels"> <span class="bug-time-label">Opened <span class="rel-time" title="2009-07-19 09:22 PDT" data-time="1248020576">15 years ago</span></span> <span class="bug-time-label">Closed <span class="rel-time" title="2011-09-30 07:34 PDT" data-time="1317393255">13 years ago</span></span> </span> </span> </div> </div> <div class="field bug_modal indent edit-hide" > <div class=" container"> <h1 id="field-value-short_desc">CSS3 3D-Transforms</h1> </div> </div> <div class="field bug_modal edit-show" id="field-short_desc" style="display:none" > <div class="name"> <span class="required_star edit-show" style="display:none" aria-label="Required Field">*</span> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#short_desc" id="short_desc-help-link" class="help">Summary: </a> </div> <div class="value"> <span id="field-value-short_desc"> CSS3 3D-Transforms </span> </div> </div> </div> </div> </section> <section class="module" id="module-categories" > <header id="module-categories-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Categories section" data-label-collapsed="Expand Categories section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-categories-content" aria-expanded="true" aria-labeledby="module-categories-title" aria-describedby="module-categories-subtitle"></div> <h2 class="module-title" id="module-categories-title">Categories</h2> <h3 class="module-subtitle" id="module-categories-subtitle"> (Core :: CSS Parsing and Computation, enhancement) </h3> </div> </header> <div class="module-content" id="module-categories-content" ><div class="fields-lhs"> <div class="field bug_modal" id="field-product" > <div class="name"> <a href="/describecomponents.cgi?product=Core" id="product-help-link" class="help">Product: </a> </div> <div class="value"> <span id="field-value-product"> <div class="name-info-outer dropdown"> <span id="product-name" class="dropdown-button" tabindex="0" role="button" aria-haspopup="menu" aria-controls="product-info">Core <span class="icon" aria-hidden="true">▾</span> </span> <aside id="product-info" class="name-info-popup dropdown-content right hover-display" hidden role="menu" aria-label="Product description and actions"> <header> <div class="title">Core</div> <div class="description">Shared components used by Firefox and other Mozilla software, including handling of Web content; Gecko, HTML, CSS, layout, DOM, scripts, images, networking, etc. Issues with web page layout probably go here, while Firefox user interface issues belong in the <a href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox">Firefox</a> product. (<a href="https://wiki.mozilla.org/Modules/All#Core">More info</a>)</div> </header> <li role="separator"></li> <div class="actions"> <div><a href="/buglist.cgi?product=Core&bug_status=__open__" target="_blank" role="menuitem" tabindex="-1">See Open Bugs in This Product</a></div> <div><a href="/enter_bug.cgi?product=Core" target="_blank" role="menuitem" tabindex="-1">File New Bug in This Product</a></div> <div><button disabled type="button" class="secondary component-watching" role="menuitem" tabindex="-1" data-product="Core" data-label-watch="Watch This Product" data-label-unwatch="Unwatch This Product" data-source="BugModal">Watch This Product</button></div> </div> </aside> </div> </span> </div> </div> <div class="field bug_modal" id="field-component" > <div class="name"> <a href="/describecomponents.cgi?product=Core&component=CSS%20Parsing%20and%20Computation#CSS%20Parsing%20and%20Computation" id="component-help-link" class="help">Component: </a> </div> <div class="value"> <span id="field-value-component"> <div class="name-info-outer dropdown"> <span id="component-name" class="dropdown-button" tabindex="0" role="button" aria-haspopup="menu" aria-controls="component-info">CSS Parsing and Computation <span class="icon" aria-hidden="true">▾</span> </span> <aside id="component-info" class="name-info-popup dropdown-content right hover-display" hidden role="menu" aria-label="Component description and actions"> <header> <div class="title">Core :: CSS Parsing and Computation</div> <div class="description"><p>Issues with loading CSS style sheets from the network, parsing style sheets and style attributes in HTML markup, performing the CSS cascade, selector matching, and producing correct computed values for CSS properties.</p> <p>Example bugs:</p> <ul> <li>toggling class name on an element does not restyle the element</li> <li>background-color property does not support hsl() values</li> </ul> <p>Specifications covered:</p> <ul> <li>CSS Cascading</li> <li>CSS Conditional</li> <li>CSS Logical Properties</li> <li>CSS Namespaces</li> <li>CSS Scoping</li> <li>CSS Style Attributes</li> <li>CSS Syntax</li> <li>CSS Values</li> <li>CSS Variables</li> <li>Media Queries</li> <li>Selectors</li> </ul></div> </header> <li role="separator"></li> <div class="actions"> <div><a href="/buglist.cgi?product=Core&component=CSS%20Parsing%20and%20Computation&bug_status=__open__" target="_blank" role="menuitem" tabindex="-1">See Open Bugs in This Component</a></div> <div><a href="/buglist.cgi?product=Core&component=CSS%20Parsing%20and%20Computation&chfield=resolution&chfieldfrom=-6m&chfieldvalue=FIXED&bug_status=__closed__" target="_blank" role="menuitem" tabindex="-1">Recently Fixed Bugs in This Component</a></div> <div><a href="/enter_bug.cgi?product=Core&component=CSS%20Parsing%20and%20Computation" target="_blank" role="menuitem" tabindex="-1">File New Bug in This Component</a></div> <div><button disabled type="button" class="secondary component-watching" role="menuitem" tabindex="-1" data-product="Core" data-component="CSS Parsing and Computation" data-label-watch="Watch This Component" data-label-unwatch="Unwatch This Component" data-source="BugModal">Watch This Component</button></div> </div> </aside> </div> </span> </div> </div> <div class="field bug_modal edit-show" id="field-version" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#version" id="version-help-link" class="help">Version: </a> </div> <div class="value"> <span id="field-value-version"> unspecified </span> </div> </div> <div class="field bug_modal edit-show" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#rep_platform" id="-help-link" class="help">Platform: </a> </div> <div class=" container"><div class="field bug_modal inline" id="field-rep_platform" > <div class="value"> <span id="field-value-rep_platform"> All </span> </div> </div><div class="field bug_modal indent inline" id="field-op_sys" > <div class="value"> <span id="field-value-op_sys"> All </span> </div> </div><div class="field bug_modal" > <div class=" container"> </div> </div> </div> </div> </div><div class="fields-rhs"> <div class="field bug_modal contains-buttons" id="field-bug_type" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#bug_type" id="bug_type-help-link" class="help">Type: </a> </div> <div class="value"> <span id="field-value-bug_type"> <span class="bug-type-label iconic-text" data-type="enhancement"> <span class="icon" aria-hidden="true"></span>enhancement</span> </span> </div> </div> <div class="field bug_modal" id="field-importance" > <div class=" container"> <span id="field-value-importance"><div class="field bug_modal inline" id="field-priority" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#priority" id="priority-help-link" class="help">Priority: </a> </div> <div class="value"> <span id="field-value-priority"> <em>Not set</em> </span> </div> </div><div class="field bug_modal inline" id="field-bug_severity" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#bug_severity" id="bug_severity-help-link" class="help">Severity: </a> </div> <div class="value"> <span id="field-value-bug_severity"> normal </span> </div> </div> </span> </div> </div> <div class="field bug_modal edit-show" id="field-cf_fx_points" style="display:none" > <div class="name"> Points: </div> <div class="value"> <span id="field-value-cf_fx_points"> --- </span> </div> </div> </div> </div> </section> <section class="module" id="module-tracking" > <header id="module-tracking-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Tracking section" data-label-collapsed="Expand Tracking section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-tracking-content" aria-expanded="true" aria-labeledby="module-tracking-title" aria-describedby="module-tracking-subtitle"></div> <h2 class="module-title" id="module-tracking-title">Tracking</h2> <h3 class="module-subtitle" id="module-tracking-subtitle"> (<span id="readable-bug-status" data-readable-bug-status="{"cf_webcompat_priority":"---","cf_a11y_review_project_flag":"---","cf_status_firefox_esr128":"---","cf_accessibility_severity":"---","dupe_of":null,"cf_tracking_firefox133":"---","cf_tracking_firefox135":"---","cf_status_firefox_esr115":"---","target_milestone":"mozilla10","flags":[{"name":"sec-review","status":"+"}],"priority":"--","cf_tracking_firefox_esr115":"---","cf_tracking_firefox_relnote":"---","resolution":"FIXED","id":505115,"status":"VERIFIED","cf_performance_impact":"---","cf_status_thunderbird_esr128":"---","cf_status_thunderbird_esr115":"---","cf_webcompat_score":"---","cf_tracking_thunderbird_esr128":"---","keywords":["dev-doc-complete","verified-aurora","verified-beta"],"cf_tracking_thunderbird_esr115":"---","cf_status_firefox133":"---","cf_tracking_firefox8":"-","cf_tracking_firefox_esr128":"---","cf_status_firefox134":"---","cf_status_firefox135":"---","cf_tracking_firefox134":"---"}"></span>) </h3> </div> </header> <div class="module-content" id="module-tracking-content" ><div class="fields-lhs"> <div class="field bug_modal edit-hide" id="field-status-view" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugStatuses" id="status-view-help-link" class="help">Status: </a> </div> <div class=" container"> <span id="field-value-status-view">VERIFIED FIXED </span> </div> </div> <div class="field bug_modal edit-show" id="field-status-edit" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugStatuses" id="status-edit-help-link" class="help">Status: </a> </div> <div class=" container"> <span id="field-value-status-edit"><div class="field bug_modal inline" id="field-bug_status" > <div class="value"> <span id="field-value-bug_status"> VERIFIED </span> </div> </div><div class="field bug_modal indent inline" id="field-resolution" > <div class="value"> <span id="field-value-resolution"> FIXED </span> </div> </div> <div id="status-action-buttons"> <div id="assigned-container" style="display:none"> <button type="button" class="secondary" id="mark-as-assigned-btn"> Mark as Assigned </button> </div> </div> </span> </div> </div> <div class="field bug_modal" id="field-target_milestone" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#target_milestone" id="target_milestone-help-link" class="help">Milestone: </a> </div> <div class="value"> <span id="field-value-target_milestone"> mozilla10 </span> </div> </div> <div class="field bug_modal edit-show" id="field-cf_fx_iteration" style="display:none" > <div class="name"> Iteration: </div> <div class="value"> <span id="field-value-cf_fx_iteration"> --- </span> </div> </div> <div class="field bug_modal edit-show" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide#Project_Flags" id="-help-link" class="help">Project Flags: </a> </div> <div class=" container"><div class="flags edit-show" style="display:none"> <table class="layout-table tracking-flags"> <tr> <td class="tracking-flag-name">Accessibility Severity</td> <td class="tracking-flag-status"><input type="hidden" id="cf_accessibility_severity-dirty"> <select id="cf_accessibility_severity" name="cf_accessibility_severity"> <option value="---" id="v6045_cf_accessibility_severity" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">Webcompat Score</td> <td class="tracking-flag-status"><input type="hidden" id="cf_webcompat_score-dirty"> <select id="cf_webcompat_score" name="cf_webcompat_score"> <option value="---" id="v6757_cf_webcompat_score" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">Performance Impact</td> <td class="tracking-flag-status"><input type="hidden" id="cf_performance_impact-dirty"> <select id="cf_performance_impact" name="cf_performance_impact"> <option value="---" id="v5427_cf_performance_impact" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">a11y-review</td> <td class="tracking-flag-status"><input type="hidden" id="cf_a11y_review_project_flag-dirty"> <select id="cf_a11y_review_project_flag" name="cf_a11y_review_project_flag"> <option value="---" id="v4876_cf_a11y_review_project_flag" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">Webcompat Priority</td> <td class="tracking-flag-status"><input type="hidden" id="cf_webcompat_priority-dirty"> <select id="cf_webcompat_priority" name="cf_webcompat_priority"> <option value="---" id="v4274_cf_webcompat_priority" selected >--- </option> </select></td> </tr> </table> </div> </div> </div> </div><div class="fields-rhs"> <div class="field tracking-flags-wrapper" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide#Tracking_Flags" id="-help-link" class="help">Tracking Flags: </a> </div> <div class=" container"><div class="flags edit-hide"> <table class="layout-table tracking-flags"> <tr> <th></th> <th>Tracking</th> <th>Status</th> </tr> <tr> <td class="tracking-flag-name">firefox8</td> <td class="tracking-flag-tracking"> <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=equals&v1=-">-</a> </td> <td class="tracking-flag-status">--- </td> </tr> </table> </div> <div class="flags edit-show" style="display:none"> <table class="layout-table tracking-flags"> <tr> <th></th> <th>Tracking</th> <th>Status</th> </tr> <tr> <td class="tracking-flag-name">firefox8</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox8-dirty"> <select id="cf_tracking_firefox8" name="cf_tracking_firefox8"> <option value="-" id="v130_cf_tracking_firefox8" selected >- </option> </select></td> <td class="tracking-flag-status"></td> </tr> <tr> <td class="tracking-flag-name">relnote-firefox</td> <td class="tracking-flag-tracking"></td> <td class="tracking-flag-status"><input type="hidden" id="cf_tracking_firefox_relnote-dirty"> <select id="cf_tracking_firefox_relnote" name="cf_tracking_firefox_relnote"> <option value="---" id="v539_cf_tracking_firefox_relnote" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">thunderbird_esr115</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_thunderbird_esr115-dirty"> <select id="cf_tracking_thunderbird_esr115" name="cf_tracking_thunderbird_esr115"> <option value="---" id="v6094_cf_tracking_thunderbird_esr115" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_thunderbird_esr115-dirty"> <select id="cf_status_thunderbird_esr115" name="cf_status_thunderbird_esr115"> <option value="---" id="v6100_cf_status_thunderbird_esr115" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">thunderbird_esr128</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_thunderbird_esr128-dirty"> <select id="cf_tracking_thunderbird_esr128" name="cf_tracking_thunderbird_esr128"> <option value="---" id="v6557_cf_tracking_thunderbird_esr128" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_thunderbird_esr128-dirty"> <select id="cf_status_thunderbird_esr128" name="cf_status_thunderbird_esr128"> <option value="---" id="v6576_cf_status_thunderbird_esr128" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">firefox-esr115</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox_esr115-dirty"> <select id="cf_tracking_firefox_esr115" name="cf_tracking_firefox_esr115"> <option value="---" id="v6079_cf_tracking_firefox_esr115" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_firefox_esr115-dirty"> <select id="cf_status_firefox_esr115" name="cf_status_firefox_esr115"> <option value="---" id="v6084_cf_status_firefox_esr115" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">firefox-esr128</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox_esr128-dirty"> <select id="cf_tracking_firefox_esr128" name="cf_tracking_firefox_esr128"> <option value="---" id="v6501_cf_tracking_firefox_esr128" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_firefox_esr128-dirty"> <select id="cf_status_firefox_esr128" name="cf_status_firefox_esr128"> <option value="---" id="v6505_cf_status_firefox_esr128" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">firefox133</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox133-dirty"> <select id="cf_tracking_firefox133" name="cf_tracking_firefox133"> <option value="---" id="v6686_cf_tracking_firefox133" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_firefox133-dirty"> <select id="cf_status_firefox133" name="cf_status_firefox133"> <option value="---" id="v6691_cf_status_firefox133" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">firefox134</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox134-dirty"> <select id="cf_tracking_firefox134" name="cf_tracking_firefox134"> <option value="---" id="v6773_cf_tracking_firefox134" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_firefox134-dirty"> <select id="cf_status_firefox134" name="cf_status_firefox134"> <option value="---" id="v6778_cf_status_firefox134" selected >--- </option> </select></td> </tr> <tr> <td class="tracking-flag-name">firefox135</td> <td class="tracking-flag-tracking"><input type="hidden" id="cf_tracking_firefox135-dirty"> <select id="cf_tracking_firefox135" name="cf_tracking_firefox135"> <option value="---" id="v6816_cf_tracking_firefox135" selected >--- </option> </select></td> <td class="tracking-flag-status"><input type="hidden" id="cf_status_firefox135-dirty"> <select id="cf_status_firefox135" name="cf_status_firefox135"> <option value="---" id="v6821_cf_status_firefox135" selected >--- </option> </select></td> </tr> </table> </div> </div> </div> </div> </div> </section> <section class="module" id="module-people" > <header id="module-people-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse People section" data-label-collapsed="Expand People section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-people-content" aria-expanded="false" aria-labeledby="module-people-title" aria-describedby="module-people-subtitle"></div> <h2 class="module-title" id="module-people-title">People</h2> <h3 class="module-subtitle" id="module-people-subtitle"> (Reporter: teoli, Assigned: mattwoodrow) </h3> </div> </header> <div class="module-content" id="module-people-content" style="display:none" ><div class="fields-lhs"> <div class="field bug_modal edit-hide" id="field-assigned_to" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#assigned_to" id="assigned_to-help-link" class="help">Assignee: </a> </div> <div class="value"> <span id="field-value-assigned_to"><div class="vcard vcard_380838" ><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=40" class="gravatar" width="20" height="20"> <a class="email " href="/user_profile?user_id=380838" > <span class="fna">mattwoodrow</span></a> </div> </span> </div> </div><div class="field bug_modal edit-show" id="field-assigned_to" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#assigned_to" id="assigned_to-help-link" class="help">Assignee: </a> </div> <div class="value"> <span id="field-value-assigned_to"> <div class="set-default-container" style="display:none"> <input type="checkbox" id="set-default-assignee" name="set_default_assignee" class="set-default" value="1" data-for="assigned_to"> <label for="set-default-assignee">Reset Assignee to default</label> </div> </span> </div> </div> <div class="field bug_modal edit-show" id="field-bug_mentors" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#bug_mentor" id="bug_mentors-help-link" class="help">Mentors: </a> </div> <div class="value"> <span id="field-value-bug_mentors">--- </span> </div> </div> <div class="field bug_modal edit-show" id="field-qa_contact" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#qa_contact" id="qa_contact-help-link" class="help">QA Contact: </a> </div> <div class="value"> <span id="field-value-qa_contact"> <div class="set-default-container" style="display:none"> <input type="checkbox" id="set-default-qa-contact" name="set_default_qa_contact" class="set-default" value="1" data-for="qa_contact"> <label for="set-default-qa-contact">Reset QA Contact to default</label> </div> </span> </div> </div> </div><div class="fields-rhs"> <div class="field bug_modal" id="field-reporter" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#reporter" id="reporter-help-link" class="help">Reporter: </a> </div> <div class="value"> <span id="field-value-reporter"> <div class="vcard vcard_248150" ><img src="https://secure.gravatar.com/avatar/d0d90148e08e3b64ccf75c46f31442c5?d=mm&size=40" class="gravatar" width="20" height="20"> <a class="email " href="/user_profile?user_id=248150" > <span class="fna">teoli</span></a> </div> </span> </div> </div> <div class="field bug_modal" id="field-triage_owner" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#triage_owner" id="triage_owner-help-link" class="help">Triage Owner: </a> </div> <div class="value"> <span id="field-value-triage_owner"> <div class="vcard vcard_546716" ><img src="https://secure.gravatar.com/avatar/1d91d22a4892f16f744b31fd4286144e?d=mm&size=40" class="gravatar" width="20" height="20"> <a class="email " href="/user_profile?user_id=546716" > <span class="fna">emilio</span></a> </div> </span> </div> </div> <div class="field bug_modal" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#cc" id="-help-link" class="help">CC: </a> </div> <div class=" container"> <span aria-owns="cc-summary cc-latch"> <span role="button" tabindex="0" id="cc-summary" data-count="73">73 people </span> </span> <div id="cc-list" style="display:none"></div> </div> </div> </div> </div> </section> <section class="module" id="module-references" > <header id="module-references-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse References section" data-label-collapsed="Expand References section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-references-content" aria-expanded="false" aria-labeledby="module-references-title" aria-describedby="module-references-subtitle"></div> <h2 class="module-title" id="module-references-title">References</h2> <h3 class="module-subtitle" id="module-references-subtitle"> (Depends on 5 open bugs, <div class="link"> <a href="http://www.w3.org/TR/css3-3d-transforms/" target="_blank" rel="noreferrer" title="http://www.w3.org/TR/css3-3d-transforms/" class="bug-url" data-safe="1">URL</a> </div>) </h3> </div> </header> <div class="module-content" id="module-references-content" style="display:none" ><div class="fields-lhs"> <div class="field bug_modal bug-list" id="field-dependson" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#dependson" id="dependson-help-link" class="help">Depends on: </a> </div> <div class="value"> <span id="field-value-dependson"> <div class="bug-list"> <span class="bug-type-label iconic" title="defect" aria-label="defect" data-type="defect"> <span class="icon" aria-hidden="true"></span> </span><a class="bz_bug_link bz_status_NEW" title="NEW - "ASSERTION: Our frame tree is likely to be bogus!" with transition, "transform-style: preserve-3d"" href="/show_bug.cgi?id=699360">699360</a>, <a class="bz_bug_link bz_status_NEW" title="NEW - Possible bad logic / type in nsStyleAnimation::AddWeighted()" href="/show_bug.cgi?id=710971">710971</a>, <a class="bz_bug_link bz_status_NEW" title="NEW - 'perspective' only affects child nodes, not further descendants" href="/show_bug.cgi?id=716524">716524</a>, <a class="bz_bug_link bz_status_NEW" title="NEW - CSS 3D: Subpixel/texel misalignment" href="/show_bug.cgi?id=749995">749995</a>, <a class="bz_bug_link bz_status_NEW" title="NEW - reftests/transform-3d/scale3d-all.html and scale3d-all-separate.html fail on 10.8" href="/show_bug.cgi?id=789763">789763</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Images transformed using "-moz-transform: scale" don't re-sample until the transition is complete and show a stretched copy of their original state during the transition" href="/show_bug.cgi?id=586683">586683</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Black boxes on depth-of-field chrome experiment" href="/show_bug.cgi?id=601894">601894</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - poor text rendering with dancing characters at html5test.com" href="/show_bug.cgi?id=604899">604899</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Interpolating between already-interpolated transforms crashes Firefox" href="/show_bug.cgi?id=675470">675470</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Add 3d transform support to BasicLayers" href="/show_bug.cgi?id=675837">675837</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - layersGPUAccelerated flags appears to be incorrect for the windows test machines." href="/show_bug.cgi?id=676746">676746</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - css3-3d-transforms isn't fully disabled since properties (which sites detect) are added to IDL" href="/show_bug.cgi?id=677173">677173</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - no jquery action ellement on enabling css3 properties -moz-transform to ellement input[type=file]" href="/show_bug.cgi?id=677878">677878</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED DUPLICATE - Mouse event doesn't work for SVGdocument + 2D transform after landing bug 505115" href="/show_bug.cgi?id=678151">678151</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Improve gfx3DMatrix multiplication performance" href="/show_bug.cgi?id=681858">681858</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED WORKSFORME - Layout regression on f8.facebook.com (css3-3d-transforms detection)" href="/show_bug.cgi?id=682627">682627</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - "-moz-transform-style: fixed" is parsed as preserve-3d" href="/show_bug.cgi?id=682919">682919</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Crash with -moz-transform-style: preserve-3d" href="/show_bug.cgi?id=682922">682922</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Implement better sorting for preserve-3d child layers" href="/show_bug.cgi?id=684759">684759</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - CSS 3d Cube is very slow in OGL backend" href="/show_bug.cgi?id=689416">689416</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Intersecting planes are not z-ordered properly (need to implement plane splitting for CSS 3d transforms)" href="/show_bug.cgi?id=689498">689498</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - CSS 3D Poster circle crashes on debug desktop build (Mobile FF)" href="/show_bug.cgi?id=689501">689501</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Reflow + thebesLayer content repaint happening all the time while rendering morphing cubes" href="/show_bug.cgi?id=689504">689504</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Falling leaves are very slow, re-allocating textures on each paint..." href="/show_bug.cgi?id=689760">689760</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - 3D transforms Box1 demo crashes" href="/show_bug.cgi?id=691106">691106</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - crash when doing javascript animation of 3D transform (css3-3d-transforms)" href="/show_bug.cgi?id=692968">692968</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Don't call GetHitDepthAtPoint if we didn't hit anything" href="/show_bug.cgi?id=693519">693519</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Fix backface-visibility handling" href="/show_bug.cgi?id=693520">693520</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Perspective origin is wrong when we have a transform origin" href="/show_bug.cgi?id=695832">695832</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - "ASSERTION: Can't get a delta for an untransformed frame!" with transform, svg:foreignObject" href="/show_bug.cgi?id=695964">695964</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Crash [@ nsLineBox::CachedIsEmpty] with inline acting as an absolute containing block" href="/show_bug.cgi?id=696175">696175</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Leak nsCSSValueList with multi-transform and transition" href="/show_bug.cgi?id=696188">696188</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - "ASSERTION: Layer already in list" and crash with transform, -moz-column, abs pos, shadow" href="/show_bug.cgi?id=696307">696307</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - "ASSERTION: Perspective must be positive!" (quirks mode only)" href="/show_bug.cgi?id=696936">696936</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - 'perspective' and rotatey() can make text disappear" href="/show_bug.cgi?id=698948">698948</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Wrong rotation direction for rotate3d(x,y,z,angle)" href="/show_bug.cgi?id=704468">704468</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - overflow: hidden, auto, or scroll removes css3-3d-transforms 'perspective'" href="/show_bug.cgi?id=704469">704469</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Flash player does not start - cutieskids.com" href="/show_bug.cgi?id=708203">708203</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Complex CSS 3D scenes scroll slowly" href="/show_bug.cgi?id=722603">722603</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - layout/reftests/transform-3d/matrix3d-*.html don't seem to test anything" href="/show_bug.cgi?id=723637">723637</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Fix failing test layout/reftests/transform-3d/preserve3d-1a.html" href="/show_bug.cgi?id=723680">723680</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - 'perspective' property doesn't reject negative numbers" href="/show_bug.cgi?id=725036">725036</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Incorrect getBoundingClientRect() for transform-style: flat" href="/show_bug.cgi?id=725426">725426</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Perspective origin checks the parent frame instead of style parent" href="/show_bug.cgi?id=740072">740072</a> </div> <div class="bug-list"> <span class="bug-type-label iconic" title="enhancement" aria-label="enhancement" data-type="enhancement"> <span class="icon" aria-hidden="true"></span> </span><a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Add support for WebKit's CSS3 Transform proposal" href="/show_bug.cgi?id=435293">435293</a> </div> </span> </div> </div><div class="field bug_modal bug-list" id="field-blocked" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#blocks" id="blocked-help-link" class="help">Blocks: </a> </div> <div class="value"> <span id="field-value-blocked"> <div class="bug-list"> <span class="bug-type-label iconic" title="defect" aria-label="defect" data-type="defect"> <span class="icon" aria-hidden="true"></span> </span><a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Remove some Windows line endings introduces by bug 505115" href="/show_bug.cgi?id=677198">677198</a> </div> </span> </div> </div><div class="field bug_modal" id="field-dependencytree" > <div class="name"> </div> <div class=" container"> <span id="field-value-dependencytree"> Dependency <a href="/showdependencytree.cgi?id=505115&hide_resolved=1">tree</a> / <a href="/showdependencygraph.cgi?id=505115">graph</a> </span> </div> </div> <div class="field bug_modal bug-list edit-show" id="field-regresses" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#regresses" id="regresses-help-link" class="help">Regressions: </a> </div> <div class="value"> <span id="field-value-regresses"> --- </span> </div> </div><div class="field bug_modal bug-list edit-show" id="field-regressed_by" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#regressed_by" id="regressed_by-help-link" class="help">Regressed by: </a> </div> <div class="value"> <span id="field-value-regressed_by"> --- </span> </div> </div> </div><div class="fields-rhs"> <div class="field bug_modal" id="field-bug_file_loc" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#bug_file_loc" id="bug_file_loc-help-link" class="help">URL: </a> </div> <div class="value"> <span id="field-value-bug_file_loc"><div class="link"> <a href="http://www.w3.org/TR/css3-3d-transforms/" target="_blank" rel="noreferrer" title="http://www.w3.org/TR/css3-3d-transforms/" class="bug-url" data-safe="1">w3.org/TR/css3-3d-transforms</a> </div> </span> </div> </div> <div class="field bug_modal edit-show" id="field-see_also" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#see_also" id="see_also-help-link" class="help">See Also: </a> </div> <div class="value"> <span id="field-value-see_also"> --- </span> </div> </div> </div> </div> </section> <section class="module" id="module-details" > <header id="module-details-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Details section" data-label-collapsed="Expand Details section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-details-content" aria-expanded="false" aria-labeledby="module-details-title" aria-describedby="module-details-subtitle"></div> <h2 class="module-title" id="module-details-title">Details</h2> <h3 class="module-subtitle" id="module-details-subtitle"> (Keywords: dev-doc-complete, verified-aurora, verified-beta, Whiteboard: [approved-patches-landed][qa!]) </h3> </div> </header> <div class="module-content" id="module-details-content" style="display:none" ><div class="fields-lhs"> <div class="field bug_modal edit-show" id="field-alias" style="display:none" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#alias" id="alias-help-link" class="help">Alias: </a> </div> <div class="value"> <span id="field-value-alias"> --- </span> </div> </div> <div class="field bug_modal" id="field-keywords" > <div class="name"> <a href="/describekeywords.cgi" id="keywords-help-link" class="help">Keywords: </a> </div> <div class="value"> <span id="field-value-keywords"> <a href="/buglist.cgi?keywords=dev-doc-complete&resolution=---">dev-doc-complete</a>, <a href="/buglist.cgi?keywords=verified-aurora&resolution=---">verified-aurora</a>, <a href="/buglist.cgi?keywords=verified-beta&resolution=---">verified-beta</a> </span> </div> </div> <div class="field bug_modal" id="field-status_whiteboard" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/Whiteboard" id="status_whiteboard-help-link" class="help">Whiteboard: </a> </div> <div class="value"> <span id="field-value-status_whiteboard">[approved-patches-landed][qa!] </span> </div> </div><div class="field bug_modal edit-show" id="field-cf_qa_whiteboard" style="display:none" > <div class="name"> QA Whiteboard: </div> <div class="value"> <span id="field-value-cf_qa_whiteboard"> --- </span> </div> </div> <div class="field bug_modal edit-show" id="field-cf_has_str" style="display:none" > <div class="name"> Has STR: </div> <div class="value"> <span id="field-value-cf_has_str"> --- </span> </div> </div><div class="field bug_modal edit-show" id="field-cf_cab_review" style="display:none" > <div class="name"> Change Request: </div> <div class="value"> <span id="field-value-cf_cab_review"> --- </span> </div> </div> <div class="field bug_modal" id="field-votes" > <div class="name"> <a href="https://wiki.mozilla.org/BMO/UserGuide/BugFields#votes" id="votes-help-link" class="help">Votes: </a> </div> <div class=" container"> <span id="field-value-votes">34 </span> </div> </div> </div><div class="fields-rhs"> <div class="field bug_modal" id="field-bug_flags" > <div class="name"> Bug Flags: </div> <div class=" container"> <span id="field-value-bug_flags"><div id="bug-flags" class="flags"> <table class="layout-table"> <tbody class="edit-hide"><tr> <td class="flag-setter"><div class="vcard vcard_1689" ><a class="email " href="/user_profile?user_id=1689" > <span class="fna">dveditz</span></a> </div> </td> <td class="flag-name"> <a href="#a97023176_1689" class="rel-time-title activity-ref" title="12 years ago" data-time="1345043752" >sec-review</a> </td> <td class="flag-value">+ </td> </tr> </tbody> <tbody class="edit-show" style="display:none"><tr> <td class="flag-setter"><div class="vcard vcard_1689" ><a class="email " href="/user_profile?user_id=1689" > <span class="fna">dveditz</span></a> </div> </td> <td class="flag-name"> <label title="Used to ask the security team to look over a feature or bug. (deprecated: please see https://wiki.mozilla.org/Security/Reviews/)" for="flag-541603">sec-review</label> </td> <td class="flag-value"> <input type="hidden" id="flag-541603-dirty"> <select id="flag-541603" name="flag-541603" title="Used to ask the security team to look over a feature or bug. (deprecated: please see https://wiki.mozilla.org/Security/Reviews/)" disabled class="bug-flag"> <option value="+" selected>+</option> </select> </td> </tr> </tbody> <tbody class="edit-show" style="display:none"><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Is this bug/feature enabled in a release by a pref flag?" for="flag_type-930">behind-pref</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-930-dirty"> <select id="flag_type-930" name="flag_type-930" title="Is this bug/feature enabled in a release by a pref flag?" disabled class="bug-flag"> <option value="X"></option> </select> </td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Flag tracking inclusion in the desktop Firefox product backlog." for="flag_type-846">firefox-backlog</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-846-dirty"> <select id="flag_type-846" name="flag_type-846" title="Flag tracking inclusion in the desktop Firefox product backlog." disabled class="bug-flag"> <option value="X"></option> </select> </td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Flag is used to track security bug bounty nominations. Mail security(at)mozilla.org to nominate a bug." for="flag_type-803">sec-bounty</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-803-dirty"> <select id="flag_type-803" name="flag_type-803" title="Flag is used to track security bug bounty nominations. Mail security(at)mozilla.org to nominate a bug." class="bug-flag"> <option value="X"></option> <option value="?" >?</option> </select> </td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Flag is used to track whether the bug report is eligible for inclusion in the Bug Bounty Hall of Fame." for="flag_type-913">sec-bounty-hof</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-913-dirty"> <select id="flag_type-913" name="flag_type-913" title="Flag is used to track whether the bug report is eligible for inclusion in the Bug Bounty Hall of Fame." disabled class="bug-flag"> <option value="X"></option> </select> </td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Whether the bug has a testcase in the qa test suite or not. Set it to "in-qa-testsuite?" if the bug needs a testcase (only set this if the bug actually *needs* a testcase - not all bugs do, even layout bugs!), set it to "in-qa-testsuite+" if the bug has an appropriate testcase, and set it to "in-qa-testsuite-" if the bug doesn't need an explicit testcase (e.g. for code cleanup bugs). Only QA actively working on test cases in the component should use this keyword." for="flag_type-787">in-qa-testsuite</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-787-dirty"> <select id="flag_type-787" name="flag_type-787" title="Whether the bug has a testcase in the qa test suite or not. Set it to "in-qa-testsuite?" if the bug needs a testcase (only set this if the bug actually *needs* a testcase - not all bugs do, even layout bugs!), set it to "in-qa-testsuite+" if the bug has an appropriate testcase, and set it to "in-qa-testsuite-" if the bug doesn't need an explicit testcase (e.g. for code cleanup bugs). Only QA actively working on test cases in the component should use this keyword." disabled class="bug-flag"> <option value="X"></option> </select> </td> <td class="flag-requestee"> <div id="requestee_type-787-container" style="display:none"><input name="requestee_type-787" value="" class="requestee bz_autocomplete_user" id="requestee_type-787" > </div> <td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="Whether the bug has a testcase in the test suite or not. Set it to "in-testsuite?" if the bug needs a testcase (only set this if the bug actually *needs* a testcase - not all bugs do, even layout bugs!), set it to "in-testsuite+" if the bug has an appropriate testcase, and set it to "in-testsuite-" if the bug doesn't need an explicit testcase (e.g. for code cleanup bugs). Only QA actively working on test cases in the component should use this keyword." for="flag_type-37">in-testsuite</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-37-dirty"> <select id="flag_type-37" name="flag_type-37" title="Whether the bug has a testcase in the test suite or not. Set it to "in-testsuite?" if the bug needs a testcase (only set this if the bug actually *needs* a testcase - not all bugs do, even layout bugs!), set it to "in-testsuite+" if the bug has an appropriate testcase, and set it to "in-testsuite-" if the bug doesn't need an explicit testcase (e.g. for code cleanup bugs). Only QA actively working on test cases in the component should use this keyword." disabled class="bug-flag"> <option value="X"></option> </select> </td> </tr><tr> <td class="flag-setter"> </td> <td class="flag-name"> <label title="qe-verify: + ➜ request to verify the bug manually qe-verify: – ➜ the bug will not/can not be verified manually" for="flag_type-864">qe-verify</label> </td> <td class="flag-value"> <input type="hidden" id="flag_type-864-dirty"> <select id="flag_type-864" name="flag_type-864" title="qe-verify: + ➜ request to verify the bug manually qe-verify: – ➜ the bug will not/can not be verified manually" disabled class="bug-flag"> <option value="X"></option> </select> </td> </tr> </tbody> </table> </div> </span> </div> </div> </div> </div> </section> <section class="module edit-show" style="display:none" id="module-crash-data" > <header id="module-crash-data-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Crash Data section" data-label-collapsed="Expand Crash Data section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-crash-data-content" aria-expanded="false" aria-labeledby="module-crash-data-title" aria-describedby="module-crash-data-subtitle"></div> <h2 class="module-title" id="module-crash-data-title">Crash Data</h2> </div> </header> <div class="module-content" id="module-crash-data-content" style="display:none" ><div class="field bug_modal edit-show" id="field-cf_crash_signature" style="display:none" > <div class="name"> Signature: </div> <div class="value"> <span id="field-value-cf_crash_signature"> <em>None</em> </span> </div> </div> </div> </section> <section class="module edit-show" style="display:none" id="module-security" > <header id="module-security-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Security section" data-label-collapsed="Expand Security section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-security-content" aria-expanded="false" aria-labeledby="module-security-title" aria-describedby="module-security-subtitle"></div> <h2 class="module-title" id="module-security-title">Security</h2> <h3 class="module-subtitle" id="module-security-subtitle"> (public) </h3> </div> </header> <div class="module-content" id="module-security-content" style="display:none" ><div class="groups edit-hide"> This bug is publicly visible. </div> <div class="groups edit-show" style="display:none"> </div> </div> </section> <section class="module edit-show" style="display:none" id="module-user-story" data-non-stick="1" > <header id="module-user-story-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse User Story section" data-label-collapsed="Expand User Story section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-user-story-content" aria-expanded="false" aria-labeledby="module-user-story-title" aria-describedby="module-user-story-subtitle"></div> <h2 class="module-title" id="module-user-story-title">User Story</h2> </div> </header> <div class="module-content" id="module-user-story-content" style="display:none" > <pre id="user-story"></pre> </div> </section> <section class="module" id="module-attachments" > <header id="module-attachments-header" class="module-header"> <div class="module-latch" data-label-expanded="Collapse Attachments section" data-label-collapsed="Expand Attachments section"> <div class="module-spinner" role="button" tabindex="0" aria-controls="module-attachments-content" aria-expanded="true" aria-labeledby="module-attachments-title" aria-describedby="module-attachments-subtitle"></div> <h2 class="module-title" id="module-attachments-title">Attachments</h2> <h3 class="module-subtitle" id="module-attachments-subtitle"> (25 files, 43 obsolete files) </h3> </div> </header> <div class="module-content" id="module-attachments-content" ><table role="table" class="responsive" id="attachments"> <tr data-attachment-id="459283" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=459283" > Part 1: Fix OpenGL container layer to support transforming children </a> </div> <div> <a href="#c6" class="attach-time activity-ref"><span class="rel-time" title="2010-07-21 20:06 PDT" data-time="1279768009">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">1.85 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_24534" ><span class="fn">vlad</span> </div>: <a href="#a31750767_24534" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1279768009" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#a35877813_5038" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1283897619" > approval2.0+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=459283&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=459283&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459283">Splinter Review</a> </tr> <tr data-attachment-id="459284" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=459284" > Part 2: Make nsDisplayTransform create a Container layer </a> </div> <div> <a href="#c7" class="attach-time activity-ref"><span class="rel-time" title="2010-07-21 20:09 PDT" data-time="1279768157">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">4.63 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=459284&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=459284&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459284">Splinter Review</a> </tr> <tr data-attachment-id="459742" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=459742" > Part 2 v2: Layerify nsDisplayTransform </a> </div> <div> <a href="#c10" class="attach-time activity-ref"><span class="rel-time" title="2010-07-23 01:41 PDT" data-time="1279874506">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">11.00 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=459742&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=459742&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459742">Splinter Review</a> </tr> <tr data-attachment-id="461956" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=461956" > Part 2 v3: Layerify nsDisplayTransform </a> </div> <div> <a href="#c12" class="attach-time activity-ref"><span class="rel-time" title="2010-08-01 16:42 PDT" data-time="1280706164">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">10.92 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c16" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1280706164" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c17" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1280706453" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=461956&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=461956&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461956">Splinter Review</a> </tr> <tr data-attachment-id="461957" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=461957" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix </a> </div> <div> <a href="#c13" class="attach-time activity-ref"><span class="rel-time" title="2010-08-01 16:43 PDT" data-time="1280706227">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">30.34 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=461957&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=461957&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461957">Splinter Review</a> </tr> <tr data-attachment-id="461958" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=461958" > Part 4: Upgrade gfx3DMatrix </a> </div> <div> <a href="#c14" class="attach-time activity-ref"><span class="rel-time" title="2010-08-01 16:44 PDT" data-time="1280706266">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">9.62 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=461958&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=461958&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461958">Splinter Review</a> </tr> <tr data-attachment-id="461959" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=461959" > Part 5: Use gfx3DMatrix in layout </a> </div> <div> <a href="#c15" class="attach-time activity-ref"><span class="rel-time" title="2010-08-01 16:45 PDT" data-time="1280706340">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">28.09 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=461959&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=461959&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461959">Splinter Review</a> </tr> <tr data-attachment-id="525557" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=525557" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2 </a> </div> <div> <a href="#c30" class="attach-time activity-ref"><span class="rel-time" title="2011-04-12 16:56 PDT" data-time="1302652615">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">29.38 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c36" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1302652615" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=525557&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=525557&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525557">Splinter Review</a> </tr> <tr data-attachment-id="525558" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=525558" > Part 4: Upgrade gfx3DMatrix v2 </a> </div> <div> <a href="#c31" class="attach-time activity-ref"><span class="rel-time" title="2011-04-12 16:58 PDT" data-time="1302652681">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">9.63 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_309398" ><span class="fn">jrmuizel</span> </div>: <a href="#c34" class="flag-name-status rel-time-title activity-ref" title="14 years ago" data-time="1302652681" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=525558&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=525558&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525558">Splinter Review</a> </tr> <tr data-attachment-id="525561" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=525561" > Part 5: Use gfx3DMatrix in layout v2 </a> </div> <div> <a href="#c32" class="attach-time activity-ref"><span class="rel-time" title="2011-04-12 17:05 PDT" data-time="1302653147">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">29.86 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=525561&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=525561&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525561">Splinter Review</a> </tr> <tr data-attachment-id="530273" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=530273" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v3 </a> </div> <div> <a href="#c45" class="attach-time activity-ref"><span class="rel-time" title="2011-05-05 04:42 PDT" data-time="1304595744">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">62.25 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=530273&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=530273&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=530273">Splinter Review</a> </tr> <tr data-attachment-id="530964" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=530964" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v4 </a> </div> <div> <a href="#c48" class="attach-time activity-ref"><span class="rel-time" title="2011-05-08 16:39 PDT" data-time="1304897988">14 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">75.37 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=530964&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=530964&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=530964">Splinter Review</a> </tr> <tr data-attachment-id="537013" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537013" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5 </a> </div> <div> <a href="#c49" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:10 PDT" data-time="1307056254">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">79.94 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c108" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307056254" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537013&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537013&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537013">Splinter Review</a> </tr> <tr data-attachment-id="537014" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537014" > Part 4: Upgrade gfx3DMatrix v3 </a> </div> <div> <a href="#c50" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:11 PDT" data-time="1307056319">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">21.18 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c50" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307056319" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537014&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537014&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537014">Splinter Review</a> </tr> <tr data-attachment-id="537016" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537016" > Part 5: Use gfx3DMatrix in layout v3 </a> </div> <div> <a href="#c51" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:13 PDT" data-time="1307056406">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">38.66 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c55" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307056406" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537016&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537016&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537016">Splinter Review</a> </tr> <tr data-attachment-id="537017" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537017" > Part 6: Implement the 3d -moz-transform functions </a> </div> <div> <a href="#c52" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:14 PDT" data-time="1307056497">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">26.04 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c113" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307056497" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537017&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537017&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537017">Splinter Review</a> </tr> <tr data-attachment-id="537018" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537018" > Part 7: Layers support for 3d transforms </a> </div> <div> <a href="#c53" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:16 PDT" data-time="1307056584">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">3.67 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c56" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307056584" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537018&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537018&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537018">Splinter Review</a> </tr> <tr data-attachment-id="537019" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=537019" > Part 8: Add ray tracing to untransform 2d points on a 3d plane </a> </div> <div> <a href="#c54" class="attach-time activity-ref"><span class="rel-time" title="2011-06-02 16:19 PDT" data-time="1307056776">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">23.84 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=537019&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=537019&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537019">Splinter Review</a> </tr> <tr data-attachment-id="538995" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=538995" > Part 8: Add ray tracing to untransform 2d points on a 3d plane v2 </a> </div> <div> <a href="#c58" class="attach-time activity-ref"><span class="rel-time" title="2011-06-13 13:44 PDT" data-time="1307997871">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">27.34 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=538995&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=538995&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538995">Splinter Review</a> </tr> <tr data-attachment-id="538996" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=538996" > Part 9 - Implement the perspective() transform function and style property. </a> </div> <div> <a href="#c59" class="attach-time activity-ref"><span class="rel-time" title="2011-06-13 13:45 PDT" data-time="1307997942">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">22.42 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c115" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307997942" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=538996&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=538996&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538996">Splinter Review</a> </tr> <tr data-attachment-id="538997" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=538997" > Part 10 - Implement -moz-backface-visible </a> </div> <div> <a href="#c60" class="attach-time activity-ref"><span class="rel-time" title="2011-06-13 13:46 PDT" data-time="1307997999">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">20.04 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=538997&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=538997&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538997">Splinter Review</a> </tr> <tr data-attachment-id="538998" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=538998" > Part 11 - Make -moz-transform-origin also support a z component. </a> </div> <div> <a href="#c61" class="attach-time activity-ref"><span class="rel-time" title="2011-06-13 13:47 PDT" data-time="1307998069">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">48.52 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c64" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1307998069" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=538998&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=538998&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538998">Splinter Review</a> </tr> <tr data-attachment-id="538999" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=538999" > Part 12 - Implement -moz-perspective-origin. </a> </div> <div> <a href="#c62" class="attach-time activity-ref"><span class="rel-time" title="2011-06-13 13:49 PDT" data-time="1307998166">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">24.16 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=538999&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=538999&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538999">Splinter Review</a> </tr> <tr data-attachment-id="540952" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540952" > Part 8a: Add BasePoint3D and gfxPoint3D </a> </div> <div> <a href="#c79" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:09 PDT" data-time="1308708558">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">7.61 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c88" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708558" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540952&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540952&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540952">Splinter Review</a> </tr> <tr data-attachment-id="540953" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540953" > Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix </a> </div> <div> <a href="#c80" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:10 PDT" data-time="1308708610">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">4.62 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_382769" ><span class="fn">bjacob</span> </div>: <a href="#a63597902_382769" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708610" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c89" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308779692" > superreview+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540953&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540953&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540953">Splinter Review</a> </tr> <tr data-attachment-id="540954" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540954" > Part 8c: Use ray tracing to untransform 2d points on a 3d plane. </a> </div> <div> <a href="#c81" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:10 PDT" data-time="1308708658">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">14.94 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c90" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708658" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540954&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540954&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540954">Splinter Review</a> </tr> <tr data-attachment-id="540955" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540955" > Part 10 - Implement -moz-backface-visible </a> </div> <div> <a href="#c82" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:11 PDT" data-time="1308708715">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">19.88 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c117" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708715" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540955&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540955&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540955">Splinter Review</a> </tr> <tr data-attachment-id="540956" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540956" > Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin </a> </div> <div> <a href="#c83" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:12 PDT" data-time="1308708779">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">41.08 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c118" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708779" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540956&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540956&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540956">Splinter Review</a> </tr> <tr data-attachment-id="540957" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540957" > Part 11b: Layout changes to use a z component for -moz-transform-origin </a> </div> <div> <a href="#c84" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:13 PDT" data-time="1308708823">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">7.65 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c87" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708823" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540957&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540957&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540957">Splinter Review</a> </tr> <tr data-attachment-id="540958" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540958" > Part 12a: Implement -moz-perspective-origin style property. </a> </div> <div> <a href="#c85" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:14 PDT" data-time="1308708876">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">19.20 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c119" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708876" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540958&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540958&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540958">Splinter Review</a> </tr> <tr data-attachment-id="540959" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=540959" > Part 12b: Layout changes to use -moz-perspective-origin </a> </div> <div> <a href="#c86" class="attach-time activity-ref"><span class="rel-time" title="2011-06-21 19:15 PDT" data-time="1308708936">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">5.15 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#c93" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1308708936" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=540959&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=540959&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959">Splinter Review</a> </tr> <tr data-attachment-id="547812" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=547812" > Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v6 </a> </div> <div> <a href="#c121" class="attach-time activity-ref"><span class="rel-time" title="2011-07-22 14:53 PDT" data-time="1311371604">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">85.94 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c121" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311371604" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=547812&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=547812&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=547812">Splinter Review</a> </tr> <tr data-attachment-id="547813" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=547813" > Part 5: Use gfx3DMatrix in layout v4 </a> </div> <div> <a href="#c122" class="attach-time activity-ref"><span class="rel-time" title="2011-07-22 14:54 PDT" data-time="1311371693">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">39.13 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c122" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311371693" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=547813&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=547813&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=547813">Splinter Review</a> </tr> <tr data-attachment-id="548074" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548074" > Part 6: Implement the 3d -moz-transform functions v2 </a> </div> <div> <a href="#c124" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:46 PDT" data-time="1311558391">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">30.45 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c124" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311558391" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548074&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548074&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548074">Splinter Review</a> </tr> <tr data-attachment-id="548075" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548075" > Part 7: Layers support for 3d transforms v2 </a> </div> <div> <a href="#c125" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:48 PDT" data-time="1311558515">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">4.47 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c125" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311558515" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548075&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548075&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548075">Splinter Review</a> </tr> <tr data-attachment-id="548076" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548076" > Part 9 - Implement the perspective() transform function and style property. v2 </a> </div> <div> <a href="#c126" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:50 PDT" data-time="1311558615">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">19.22 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c140" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311558615" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548076&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548076&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548076">Splinter Review</a> </tr> <tr data-attachment-id="548077" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548077" > Part 10 - Implement -moz-backface-visible v2 </a> </div> <div> <a href="#c127" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:52 PDT" data-time="1311558779">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">17.98 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c148" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311558779" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548077&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548077&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548077">Splinter Review</a> </tr> <tr data-attachment-id="548078" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548078" > Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2 </a> </div> <div> <a href="#c128" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:55 PDT" data-time="1311558940">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">44.52 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c149" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311558940" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548078&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548078&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548078">Splinter Review</a> </tr> <tr data-attachment-id="548079" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548079" > Part 12a: Implement -moz-perspective-origin style property. v2 </a> </div> <div> <a href="#c129" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 18:56 PDT" data-time="1311559019">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">21.12 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c129" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311559019" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548079&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548079&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548079">Splinter Review</a> </tr> <tr data-attachment-id="548080" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548080" > Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo </a> </div> <div> <a href="#c130" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 19:00 PDT" data-time="1311559200">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">20.76 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548080&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548080&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548080">Splinter Review</a> </tr> <tr data-attachment-id="548083" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548083" > Part 14a: Add -moz-transform-style CSS property </a> </div> <div> <a href="#c131" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 19:05 PDT" data-time="1311559549">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">15.79 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c190" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311559549" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548083&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548083&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548083">Splinter Review</a> </tr> <tr data-attachment-id="548084" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548084" > Part 14b: Layout changes for preserve-3d </a> </div> <div> <a href="#c132" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 19:57 PDT" data-time="1311562655">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">35.98 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548084&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548084&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548084">Splinter Review</a> </tr> <tr data-attachment-id="548086" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548086" > Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions </a> </div> <div> <a href="#c134" class="attach-time activity-ref"><span class="rel-time" title="2011-07-24 20:40 PDT" data-time="1311565235">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">27.85 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548086&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548086&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548086">Splinter Review</a> </tr> <tr data-attachment-id="548634" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548634" > Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2 </a> </div> <div> <a href="#c137" class="attach-time activity-ref"><span class="rel-time" title="2011-07-26 16:56 PDT" data-time="1311724570">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">27.85 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_12273" ><span class="fn">derf</span> </div>: <a href="#c178" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311724570" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548634&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548634&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548634">Splinter Review</a> </tr> <tr data-attachment-id="548635" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548635" > Part 16 - Implement transitions/animations for 3d transforms. </a> </div> <div> <a href="#c138" class="attach-time activity-ref"><span class="rel-time" title="2011-07-26 16:57 PDT" data-time="1311724634">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">38.12 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_12273" ><span class="fn">derf</span> </div>: <a href="#c179" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311724782" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548635&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548635&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548635">Splinter Review</a> </tr> <tr data-attachment-id="548636" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=548636" > Part 17 - Add style tests for the new transform functions, and transitions </a> </div> <div> <a href="#c139" class="attach-time activity-ref"><span class="rel-time" title="2011-07-26 16:58 PDT" data-time="1311724716">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">8.98 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c191" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1311724716" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=548636&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=548636&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548636">Splinter Review</a> </tr> <tr data-attachment-id="549620" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=549620" > Part 9 - Implement the perspective() transform function and style property. v3 </a> </div> <div> <a href="#c144" class="attach-time activity-ref"><span class="rel-time" title="2011-07-30 21:18 PDT" data-time="1312085929">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">23.58 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=549620&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=549620&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=549620">Splinter Review</a> </tr> <tr data-attachment-id="549699" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=549699" > Part 9 - Implement the perspective() transform function and style property. v4 </a> </div> <div> <a href="#c145" class="attach-time activity-ref"><span class="rel-time" title="2011-07-31 16:55 PDT" data-time="1312156530">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">23.70 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c150" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1312156530" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=549699&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=549699&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=549699">Splinter Review</a> </tr> <tr data-attachment-id="551300" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=551300" > Part 14b: Layout changes for preserve-3d v2 </a> </div> <div> <a href="#c165" class="attach-time activity-ref"><span class="rel-time" title="2011-08-06 20:16 PDT" data-time="1312686997">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">36.96 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=551300&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=551300&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=551300">Splinter Review</a> </tr> <tr data-attachment-id="552267" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=552267" > Part 14b: Layout changes for preserve-3d v3 </a> </div> <div> <a href="#c174" class="attach-time activity-ref"><span class="rel-time" title="2011-08-10 17:04 PDT" data-time="1313021075">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">39.25 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#a65001168_5038" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1313021075" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=552267&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=552267&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=552267">Splinter Review</a> </tr> <tr data-attachment-id="553086" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=553086" > Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3 </a> </div> <div> <a href="#c184" class="attach-time activity-ref"><span class="rel-time" title="2011-08-14 19:35 PDT" data-time="1313375731">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">33.33 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_12273" ><span class="fn">derf</span> </div>: <a href="#c198" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1313375731" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=553086&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=553086&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553086">Splinter Review</a> </tr> <tr data-attachment-id="553087" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=553087" > Part 16 - Implement transitions/animations for 3d transforms. v2 </a> </div> <div> <a href="#c185" class="attach-time activity-ref"><span class="rel-time" title="2011-08-14 19:37 PDT" data-time="1313375822">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">36.50 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c185" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1313375822" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=553087&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=553087&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553087">Splinter Review</a> </tr> <tr data-attachment-id="555944" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=555944" > Part 16 - Implement transitions/animations for 3d transforms. v3 </a> </div> <div> <a href="#c194" class="attach-time activity-ref"><span class="rel-time" title="2011-08-25 20:27 PDT" data-time="1314329249">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">36.63 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=555944&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=555944&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555944">Splinter Review</a> </tr> <tr data-attachment-id="555946" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=555946" > Part 17 - Add style tests for the new transform functions, and transitions v2 </a> </div> <div> <a href="#c195" class="attach-time activity-ref"><span class="rel-time" title="2011-08-25 20:28 PDT" data-time="1314329339">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">8.99 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=555946&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=555946&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555946">Splinter Review</a> </tr> <tr data-attachment-id="555950" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=555950" > Part 17 - Add style tests for the new transform functions, and transitions v3 </a> </div> <div> <a href="#c196" class="attach-time activity-ref"><span class="rel-time" title="2011-08-25 21:25 PDT" data-time="1314332751">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">8.96 KB, patch </div> </td> <td></td> <td class="attach-actions"> <a href="/attachment.cgi?id=555950&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=555950&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555950">Splinter Review</a> </tr> <tr data-attachment-id="555951" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=555951" > Part 18 - Make the perspective() transform function actually fail on numbers <= 0 </a> </div> <div> <a href="#c197" class="attach-time activity-ref"><span class="rel-time" title="2011-08-25 21:26 PDT" data-time="1314332806">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">1.03 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c218" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314332806" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=555951&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=555951&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555951">Splinter Review</a> </tr> <tr data-attachment-id="556169" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556169" > Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v4 </a> </div> <div> <a href="#c200" class="attach-time activity-ref"><span class="rel-time" title="2011-08-26 16:15 PDT" data-time="1314400544">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">33.64 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c200" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314400544" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556169&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556169&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556169">Splinter Review</a> </tr> <tr data-attachment-id="556450" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556450" > Part 16 - Implement transitions/animations for 3d transforms. v4 </a> </div> <div> <a href="#c205" class="attach-time activity-ref"><span class="rel-time" title="2011-08-28 19:15 PDT" data-time="1314584130">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">36.62 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c217" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314584130" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556450&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556450&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556450">Splinter Review</a> </tr> <tr data-attachment-id="556451" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556451" > Part 17 - Add style tests for the new transform functions, and transitions v4 </a> </div> <div> <a href="#c206" class="attach-time activity-ref"><span class="rel-time" title="2011-08-28 19:16 PDT" data-time="1314584211">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">9.71 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c206" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314584211" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556451&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556451&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556451">Splinter Review</a> </tr> <tr data-attachment-id="556452" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556452" > Part 19: Make all translate functions handle lengths and percents </a> </div> <div> <a href="#c207" class="attach-time activity-ref"><span class="rel-time" title="2011-08-28 19:17 PDT" data-time="1314584278">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">14.83 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c219" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314584278" > review-</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556452&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556452&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556452">Splinter Review</a> </tr> <tr data-attachment-id="556453" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556453" > Part 13: Add basic reftests for 3d transforms v3 </a> </div> <div> <a href="#c208" class="attach-time activity-ref"><span class="rel-time" title="2011-08-28 19:22 PDT" data-time="1314584579">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">15.47 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#a66564690_5038" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314584579" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556453&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556453&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556453">Splinter Review</a> </tr> <tr data-attachment-id="556463" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=556463" > Part 13: Add basic reftests for 3d transforms v4 </a> </div> <div> <a href="#c211" class="attach-time activity-ref"><span class="rel-time" title="2011-08-28 20:25 PDT" data-time="1314588351">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">16.16 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c211" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314588351" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=556463&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=556463&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556463">Splinter Review</a> </tr> <tr data-attachment-id="557395" class=" attach-obsolete attach-patch " style="display:none"> <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=557395" > Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix </a> </div> <div> <a href="#c214" class="attach-time activity-ref"><span class="rel-time" title="2011-08-31 19:30 PDT" data-time="1314844243">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">50.42 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_12273" ><span class="fn">derf</span> </div>: <a href="#c215" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1314844243" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=557395&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=557395&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=557395">Splinter Review</a> </tr> <tr data-attachment-id="558196" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=558196" > Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix v2 </a> </div> <div> <a href="#c216" class="attach-time activity-ref"><span class="rel-time" title="2011-09-04 15:22 PDT" data-time="1315174922">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">54.90 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c216" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1315174922" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_373476" ><span class="fn">emorley</span> </div>: <a href="#a69099617_373476" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1317120193" > checkin+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=558196&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=558196&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=558196">Splinter Review</a> </tr> <tr data-attachment-id="561953" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=561953" > Part 16 - Implement transitions/animations for 3d transforms. v5 </a> </div> <div> <a href="#c224" class="attach-time activity-ref"><span class="rel-time" title="2011-09-22 19:13 PDT" data-time="1316743999">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">36.37 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c224" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1316743999" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_373476" ><span class="fn">emorley</span> </div>: <a href="#a69099605_373476" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1317120181" > checkin+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=561953&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=561953&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561953">Splinter Review</a> </tr> <tr data-attachment-id="561961" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=561961" > Part 18 - Make the perspective() transform function actually fail on numbers <= 0 v2 </a> </div> <div> <a href="#c225" class="attach-time activity-ref"><span class="rel-time" title="2011-09-22 20:56 PDT" data-time="1316750191">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">14.95 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_380838" ><span class="fn">mattwoodrow</span> </div>: <a href="#c225" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1316750191" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_373476" ><span class="fn">emorley</span> </div>: <a href="#a69099609_373476" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1317120185" > checkin+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=561961&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=561961&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561961">Splinter Review</a> </tr> <tr data-attachment-id="561962" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=561962" > Part 19: Make matrix* functions handle lengths and percents </a> </div> <div> <a href="#c226" class="attach-time activity-ref"><span class="rel-time" title="2011-09-22 20:58 PDT" data-time="1316750294">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">14.95 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_3881" ><span class="fn">dbaron</span> </div>: <a href="#c228" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1316750294" > review+</a> </div> <div class="attach-flag"><div class="vcard vcard_373476" ><span class="fn">emorley</span> </div>: <a href="#a69099613_373476" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1317120189" > checkin+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=561962&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=561962&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561962">Splinter Review</a> </tr> <tr data-attachment-id="562585" class=" attach-patch " > <td class="attach-desc-td"> <div class="attach-desc"> <a href="/attachment.cgi?id=562585" > Part 21: Enable 3D transforms! </a> </div> <div> <a href="#c230" class="attach-time activity-ref"><span class="rel-time" title="2011-09-26 16:45 PDT" data-time="1317080733">13 years ago</span></a> <span class="attach-author"><div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div></span> </div> <div class="attach-info">13.16 KB, patch </div> </td> <td> <div class="attach-flag"><div class="vcard vcard_5038" ><span class="fn">roc</span> </div>: <a href="#a69060998_5038" class="flag-name-status rel-time-title activity-ref" title="13 years ago" data-time="1317080733" > review+</a> </div></td> <td class="attach-actions"> <a href="/attachment.cgi?id=562585&action=edit" data-details="1">Details</a> | <a href="/attachment.cgi?id=562585&action=diff">Diff</a>  | <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=562585">Splinter Review</a> </tr> </table> <footer id="attachments-footer"> <div id="attachments-actions"> <button type="button" id="attachments-obsolete-btn" class="secondary">Show Obsolete</button> </div> </footer> </div> </section> <script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG"> init_module_visibility(); </script> <meta name="firefox-versions" content="{"FIREFOX_AURORA":"","FIREFOX_DEVEDITION":"134.0b1","FIREFOX_ESR":"128.5.0esr","FIREFOX_ESR115":"115.18.0esr","FIREFOX_ESR_NEXT":"","FIREFOX_NIGHTLY":"135.0a1","LAST_MERGE_DATE":"2024-11-25","LAST_RELEASE_DATE":"2024-11-26","LAST_SOFTFREEZE_DATE":"2024-11-21","LAST_STRINGFREEZE_DATE":"2024-11-22","LATEST_FIREFOX_DEVEL_VERSION":"134.0b1","LATEST_FIREFOX_OLDER_VERSION":"3.6.28","LATEST_FIREFOX_RELEASED_DEVEL_VERSION":"134.0b1","LATEST_FIREFOX_VERSION":"133.0","NEXT_MERGE_DATE":"2025-01-06","NEXT_RELEASE_DATE":"2025-01-07","NEXT_SOFTFREEZE_DATE":"2025-01-02","NEXT_STRINGFREEZE_DATE":"2025-01-03"}"> <div id="comment-actions"> <button type="button" id="bottom-btn" class="secondary" aria-label="Go to Page Bottom">Bottom ↓</button> <div class="dropdown"> <button type="button" id="comment-tags-btn" aria-haspopup="true" aria-label="Tags" aria-expanded="false" aria-controls="comment-tags-menu" class="dropdown-button minor">Tags ▾</button> <ul id="comment-tags-menu" role="menu" tabindex="0" class="dropdown-content left" style="display:none"> <li role="presentation"> <a role="menuitem" tabindex="-1" data-comment-tag="">Reset</a> </li> </ul> </div> <div class="dropdown"> <button type="button" id="view-menu-btn" aria-haspopup="true" aria-label="Timeline" aria-expanded="false" aria-controls="view-menu" class="dropdown-button minor">Timeline ▾</button> <ul id="view-menu" role="menu" tabindex="0" class="dropdown-content left" style="display:none"> <li role="presentation"> <a id="view-reset" role="menuitem" tabindex="-1">Reset</a> </li> <li role="separator"></li> <li role="presentation"> <a id="view-collapse-all" role="menuitem" tabindex="-1">Collapse All</a> </li> <li role="presentation"> <a id="view-expand-all" role="menuitem" tabindex="-1">Expand All</a> </li> <li role="presentation"> <a id="view-comments-only" role="menuitem" tabindex="-1">Comments Only</a> </li> </ul> </div> </div> <div class="change-set" id="c0"><div class="comment" data-id="4205041" data-no="0" data-tags=""> <table class="layout-table change-head reporter" id="ch-0" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_248150" ><img src="https://secure.gravatar.com/avatar/d0d90148e08e3b64ccf75c46f31442c5?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_248150" ><a class="email " href="/user_profile?user_id=248150" > <span class="fna">Jean-Yves Perrier [:teoli]</span></a> </div> <span class="user-role">Reporter</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-0" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-0" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c0">Description</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-07-19 09:22 PDT" data-time="1248020576">15 years ago</span> </div> </td> </tr> <tr id="ctag-0"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-0" data-comment-id="4205041">User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090719 Minefield/3.6a1pre Build Identifier: Extension of the CSS3 Transforms; this looks very interesting. Apple implemented it in its iPhone2 and is in the progress of adding it to Safari ( <a rel="nofollow" href="http://webkit.org/blog/386/3d-transforms/">http://webkit.org/blog/386/3d-transforms/</a> ) Reproducible: Always</div></div><div class="change-set" id="a53479_25585"><div class="change" id="aa53479_25585"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_25585" id="a53479_25585"><img src="https://secure.gravatar.com/avatar/ce70937566123f0fa56853086418c8e2?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_25585" id="a53479_25585"><a class="email disabled" href="/user_profile?user_id=25585" > <span class="fna">José Jeria</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a53479_25585" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a53479_25585"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a53479_25585">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-07-20 00:14 PDT" data-time="1248074055">15 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">OS: Linux → All</div></div></div><div class="change-set" id="c1"><div class="comment" data-id="4212185" data-no="1" data-tags=""> <table class="layout-table change-head " id="ch-1" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_346332" id="a53479_25585"><img src="https://secure.gravatar.com/avatar/fed128c0f62780441d14bd4859396b46?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_346332" id="a53479_25585"><a class="email disabled" href="/user_profile?user_id=346332" > <span class="fna">d</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-1" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-1" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c1">Comment 1</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-07-23 02:20 PDT" data-time="1248340815">15 years ago</span> </div> </td> </tr> <tr id="ctag-1"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-1" data-comment-id="4212185">This is now working in the Webkit nightlies, which means that it will "soon" be implemented in Safari and Google Chrome.</div></div><div class="change-set" id="a1205817_248150"><div class="change" id="aa1205817_248150"> <table class="layout-table change-head reporter" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_248150" id="a1205817_248150"><img src="https://secure.gravatar.com/avatar/d0d90148e08e3b64ccf75c46f31442c5?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_248150" id="a1205817_248150"><a class="email " href="/user_profile?user_id=248150" > <span class="fna">Jean-Yves Perrier [:teoli]</span></a> </div> <span class="user-role">Reporter</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a1205817_248150" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a1205817_248150"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a1205817_248150">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-08-02 08:19 PDT" data-time="1249226393">15 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Add support for WebKit's CSS3 Transform proposal" href="/show_bug.cgi?id=435293">435293</a></div></div></div><div class="change-set" id="c2"><div class="comment" data-id="4268013" data-no="2" data-tags=""> <table class="layout-table change-head " id="ch-2" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_309398" id="a1205817_248150"><img src="https://secure.gravatar.com/avatar/ad916833cb7747e6939d576f34df1daa?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_309398" id="a1205817_248150"><a class="email " href="/user_profile?user_id=309398" > <span class="fna">Jeff Muizelaar [:jrmuizel]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-2" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-2" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c2">Comment 2</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-08-26 13:31 PDT" data-time="1251318673">15 years ago</span> </div> </td> </tr> <tr id="ctag-2"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-2" data-comment-id="4268013">Safari has this on Mac but not on Windows. Chrome doesn't have this on any platform.</div><div class="activity"><div class="change">Status: UNCONFIRMED → NEW</div><div class="change">Ever confirmed: true</div></div></div><div class="change-set" id="c3"><div class="comment" data-id="4394957" data-no="3" data-tags=""> <table class="layout-table change-head " id="ch-3" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_346332" id="a1205817_248150"><img src="https://secure.gravatar.com/avatar/fed128c0f62780441d14bd4859396b46?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_346332" id="a1205817_248150"><a class="email disabled" href="/user_profile?user_id=346332" > <span class="fna">d</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-3" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-3" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c3">Comment 3</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-11-12 10:15 PST" data-time="1258049730">15 years ago</span> </div> </td> </tr> <tr id="ctag-3"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-3" data-comment-id="4394957">What is the reason that Webkit has for making it Mac only as of now? Might the same thing limit our implementation?</div></div><div class="change-set" id="c4"><div class="comment" data-id="4464960" data-no="4" data-tags=""> <table class="layout-table change-head " id="ch-4" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_291890" id="a1205817_248150"><img src="https://secure.gravatar.com/avatar/6fe992d5b046fcb913011cb9fb6e7bf5?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_291890" id="a1205817_248150"><a class="email " href="/user_profile?user_id=291890" > <span class="fna">Trevor Downs</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-4" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-4" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c4">Comment 4</a> </h3> • <div class="change-time"><span class="rel-time" title="2009-12-26 04:12 PST" data-time="1261829548">15 years ago</span> </div> </td> </tr> <tr id="ctag-4"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-4" data-comment-id="4464960">According to this: <a rel="nofollow" href="https://bugs.webkit.org/show_bug.cgi?id=27314">https://bugs.webkit.org/show_bug.cgi?id=27314</a> it is now implemented on Windows.</div></div><div class="change-set" id="a31223822_380838"><div class="change" id="aa31223822_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31223822_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31223822_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a31223822_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a31223822_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a31223822_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-15 18:39 PDT" data-time="1279244398">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Assignee: nobody → matt.woodrow+bugzilla</div></div></div><div class="change-set" id="c5"><div class="comment" data-id="4798107" data-no="5" data-tags=""> <table class="layout-table change-head assignee" id="ch-5" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31223822_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31223822_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-5" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-5" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c5">Comment 5</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-15 18:40 PDT" data-time="1279244443">14 years ago</span> </div> </td> </tr> <tr id="ctag-5"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-5" data-comment-id="4798107">Very much WIP patch queue at <a rel="nofollow" href="http://hg.mozilla.org/users/mwoodrow_mozilla.com/3d-transforms/">http://hg.mozilla.org/users/mwoodrow_mozilla.com/3d-transforms/</a></div></div><div class="change-set" id="c6"><div class="comment" data-id="4810632" data-no="6" data-tags=""> <table class="layout-table change-head assignee" id="ch-6" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31223822_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31223822_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-6" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-6" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c6">Comment 6</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-21 20:06 PDT" data-time="1279768009">14 years ago</span> </div> </td> </tr> <tr id="ctag-6"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-459283" class="attachment patch" data-id="459283" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="opengl-transforms"> <meta itemprop="contentSize" content="1896"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=459283"> <a class="link" href="attachment.cgi?id=459283&action=diff"> <span id="att-459283-description" itemprop="description">Part 1: Fix OpenGL container layer to support transforming children</span></a> — <a href="attachment.cgi?id=459283&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459283">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-6" data-comment-id="4810632"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459283&action=edit" title="Part 1: Fix OpenGL container layer to support transforming children" class="" >Attachment #459283</a> - Flags: review?(vladimir)</div></div></div><div class="change-set" id="c7"><div class="comment" data-id="4810636" data-no="7" data-tags=""> <table class="layout-table change-head assignee" id="ch-7" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31223822_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31223822_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-7" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-7" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c7">Comment 7</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-21 20:09 PDT" data-time="1279768157">14 years ago</span> </div> </td> </tr> <tr id="ctag-7"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-459284" class="attachment patch obsolete" data-id="459284" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="layerify-displaytransform"> <meta itemprop="contentSize" content="4739"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=459284"> <a class="link" href="attachment.cgi?id=459284&action=diff"> <span id="att-459284-description" itemprop="description">Part 2: Make nsDisplayTransform create a Container layer</span></a> (obsolete) — <a href="attachment.cgi?id=459284&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459284">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-7" data-comment-id="4810636">Creates a ContainerLayer for nsDisplayTransform objects so rendering of them can be accelerated when an accelerated backend is enabled. This gives me noticable improvements in rendering <a rel="nofollow" href="http://azarask.in/projects/tabcandy/scale/css-animation.html">http://azarask.in/projects/tabcandy/scale/css-animation.html</a> (within a MakeGoFaster window) - cc'ing Aza. Will push these to try once I figure out how.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459284&action=edit" title="Part 2: Make nsDisplayTransform create a Container layer" class="" >Attachment #459284</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="a31750767_24534"><div class="change" id="aa31750767_24534"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_24534" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/108731b114a7c04438631b4c2dc3c7d5?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_24534" id="a31750767_24534"><a class="email " href="/user_profile?user_id=24534" > <span class="fna">Vladimir Vukicevic [:vlad] [:vladv] (needinfo me, slow to respond)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a31750767_24534" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a31750767_24534"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a31750767_24534">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-21 21:02 PDT" data-time="1279771343">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459283&action=edit" title="Part 1: Fix OpenGL container layer to support transforming children" class="" >Attachment #459283</a> - Flags: review?(vladimir) → review+</div></div></div><div class="change-set" id="c8"><div class="comment" data-id="4811165" data-no="8" data-tags=""> <table class="layout-table change-head assignee" id="ch-8" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-8" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-8" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c8">Comment 8</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-22 02:33 PDT" data-time="1279791207">14 years ago</span> </div> </td> </tr> <tr id="ctag-8"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-8" data-comment-id="4811165">Looks like this failed a few tests on try, will debug tomorrow and update.</div></div><div class="change-set" id="c9"><div class="comment" data-id="4811249" data-no="9" data-tags=""> <table class="layout-table change-head " id="ch-9" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a31750767_24534"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-9" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-9" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c9">Comment 9</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-22 03:32 PDT" data-time="1279794774">14 years ago</span> </div> </td> </tr> <tr id="ctag-9"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-9" data-comment-id="4811249">I think you need to do what I did for opacity: add a new style change hint to nsChangeHint, report that change hint when the transform changes, mark the frame active, etc. See changeset d98f8a21727e and d290d2b97416.</div></div><div class="change-set" id="c10"><div class="comment" data-id="4813943" data-no="10" data-tags=""> <table class="layout-table change-head assignee" id="ch-10" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-10" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-10" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c10">Comment 10</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-23 01:41 PDT" data-time="1279874506">14 years ago</span> </div> </td> </tr> <tr id="ctag-10"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-459742" class="attachment patch obsolete" data-id="459742" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="layerify-displaytransform"> <meta itemprop="contentSize" content="11265"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=459742"> <a class="link" href="attachment.cgi?id=459742&action=diff"> <span id="att-459742-description" itemprop="description">Part 2 v2: Layerify nsDisplayTransform</span></a> (obsolete) — <a href="attachment.cgi?id=459742&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=459742">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-10" data-comment-id="4813943">Fixed reftests failures. Fixed roc's suggestions to get layers timing out working correctly.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459284&action=edit" title="Part 2: Make nsDisplayTransform create a Container layer" class="" >Attachment #459284</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=459742&action=edit" title="Part 2 v2: Layerify nsDisplayTransform" class="" >Attachment #459742</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=459284&action=edit" title="Part 2: Make nsDisplayTransform create a Container layer" class="" >Attachment #459284</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c11"><div class="comment" data-id="4817615" data-no="11" data-tags=""> <table class="layout-table change-head " id="ch-11" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a31750767_24534"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-11" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-11" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c11">Comment 11</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-07-25 15:29 PDT" data-time="1280096969">14 years ago</span> </div> </td> </tr> <tr id="ctag-11"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-11" data-comment-id="4817615">Everything looks good except + visibleRect.x = 0; + visibleRect.y = 0; + visibleRect.width = INT_MAX; + visibleRect.height = INT_MAX; This isn't really right, the visible rect might need to extend to negative coordinates. If nsLayoutUtils::GfxRectToIntRect fails, it's because the visible rect is nearly infinite ... i.e., the transform has scaled the content down to an incredibly small size. In fact, the content will be shrunk to be basically invisible. Is that right? In that case, why not just set the visible rect to empty? Seems to me that would work in most cases, except for situations where you have one extreme transform with a child element with another extreme transform that cancels out the first one. So another thing we might want to do is to teach FrameLayerBuilder to use an internal scale factor (or possibly horizontal and vertical scale factors). For example, if we have a transform that scales everything up by 2, we could make all the child layers work at twice the resolution, and draw into the ThebesLayers with a scale applied to the context. This would give better quality results too. We would have to use some heuristics so we didn't change the scale factor too often, so we don't have to rerender content too often. We'd still have this problem of extreme visibleRects for video and maybe canvas and other leaf non-Thebes layers, but we can make those invisible using the first approach with no bad consequences. If this makes sense, I suggest we go with the empty-rect approach for now, and file a bug to implement the second approach.</div></div><div class="change-set" id="c12"><div class="comment" data-id="4832252" data-no="12" data-tags=""> <table class="layout-table change-head assignee" id="ch-12" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-12" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-12" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c12">Comment 12</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:42 PDT" data-time="1280706164">14 years ago</span> </div> </td> </tr> <tr id="ctag-12"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-461956" class="attachment patch" data-id="461956" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="layerify-displaytransform"> <meta itemprop="contentSize" content="11184"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=461956"> <a class="link" href="attachment.cgi?id=461956&action=diff"> <span id="att-461956-description" itemprop="description">Part 2 v3: Layerify nsDisplayTransform</span></a> — <a href="attachment.cgi?id=461956&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461956">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-12" data-comment-id="4832252">Use an empty visible rect for invalid transforms - Try server says yes.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459742&action=edit" title="Part 2 v2: Layerify nsDisplayTransform" class="" >Attachment #459742</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform" class="" >Attachment #461956</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=459742&action=edit" title="Part 2 v2: Layerify nsDisplayTransform" class="" >Attachment #459742</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c13"><div class="comment" data-id="4832254" data-no="13" data-tags=""> <table class="layout-table change-head assignee" id="ch-13" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-13" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-13" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c13">Comment 13</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:43 PDT" data-time="1280706227">14 years ago</span> </div> </td> </tr> <tr id="ctag-13"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-461957" class="attachment patch obsolete" data-id="461957" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="31067"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=461957"> <a class="link" href="attachment.cgi?id=461957&action=diff"> <span id="att-461957-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix</span></a> (obsolete) — <a href="attachment.cgi?id=461957&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461957">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-13" data-comment-id="4832254">No API changes to the class, just reworked internals in preparation</div></div><div class="change-set" id="c14"><div class="comment" data-id="4832255" data-no="14" data-tags=""> <table class="layout-table change-head assignee" id="ch-14" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-14" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-14" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c14">Comment 14</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:44 PDT" data-time="1280706266">14 years ago</span> </div> </td> </tr> <tr id="ctag-14"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-461958" class="attachment patch obsolete" data-id="461958" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="gfx3DMatrix-upgrade"> <meta itemprop="contentSize" content="9855"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=461958"> <a class="link" href="attachment.cgi?id=461958&action=diff"> <span id="att-461958-description" itemprop="description">Part 4: Upgrade gfx3DMatrix</span></a> (obsolete) — <a href="attachment.cgi?id=461958&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461958">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-14" data-comment-id="4832255"></div></div><div class="change-set" id="c15"><div class="comment" data-id="4832257" data-no="15" data-tags=""> <table class="layout-table change-head assignee" id="ch-15" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a31750767_24534"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a31750767_24534"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-15" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-15" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c15">Comment 15</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:45 PDT" data-time="1280706340">14 years ago</span> </div> </td> </tr> <tr id="ctag-15"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-461959" class="attachment patch obsolete" data-id="461959" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="use-3d-matrix"> <meta itemprop="contentSize" content="28765"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=461959"> <a class="link" href="attachment.cgi?id=461959&action=diff"> <span id="att-461959-description" itemprop="description">Part 5: Use gfx3DMatrix in layout</span></a> (obsolete) — <a href="attachment.cgi?id=461959&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461959">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-15" data-comment-id="4832257">This changes larges amounts of layout to directly use gfx3DMatrix wherever possible. This more or less concludes the preparation patches for 3d transforms.</div></div><div class="change-set" id="a32685779_380838"><div class="change" id="aa32685779_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a32685779_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a32685779_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a32685779_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a32685779_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:45 PDT" data-time="1280706355">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461959&action=edit" title="Part 5: Use gfx3DMatrix in layout" class="" >Attachment #461959</a> - Attachment is patch: true</div><div class="change"> <a href="/attachment.cgi?id=461959&action=edit" title="Part 5: Use gfx3DMatrix in layout" class="" >Attachment #461959</a> - Attachment mime type: application/octet-stream → text/plain</div></div></div><div class="change-set" id="c16"><div class="comment" data-id="4832258" data-no="16" data-tags=""> <table class="layout-table change-head " id="ch-16" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a32685779_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-16" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-16" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c16">Comment 16</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 16:47 PDT" data-time="1280706453">14 years ago</span> </div> </td> </tr> <tr id="ctag-16"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-16" data-comment-id="4832258">Comment on <span class=""><a href="/attachment.cgi?id=461956" name="attach_461956" title="Part 2 v3: Layerify nsDisplayTransform">attachment 461956</a> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform">[details]</a> <a href="/attachment.cgi?id=461956&action=diff" title="Part 2 v3: Layerify nsDisplayTransform">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461956'>[review]</a> Part 2 v3: Layerify nsDisplayTransform Need dbaron review on style system changes</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform" class="" >Attachment #461956</a> - Flags: <span class="activity-deleted">review?(roc)</span></div><div class="change"> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform" class="" >Attachment #461956</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform" class="" >Attachment #461956</a> - Flags: review+</div></div></div><div class="change-set" id="c17"><div class="comment" data-id="4832269" data-no="17" data-tags=""> <table class="layout-table change-head " id="ch-17" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a32685779_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-17" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-17" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c17">Comment 17</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 17:00 PDT" data-time="1280707252">14 years ago</span> </div> </td> </tr> <tr id="ctag-17"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-17" data-comment-id="4832269">Comment on <span class=""><a href="/attachment.cgi?id=461956" name="attach_461956" title="Part 2 v3: Layerify nsDisplayTransform">attachment 461956</a> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform">[details]</a> <a href="/attachment.cgi?id=461956&action=diff" title="Part 2 v3: Layerify nsDisplayTransform">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461956'>[review]</a> Part 2 v3: Layerify nsDisplayTransform r=dbaron on the style system changes</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461956&action=edit" title="Part 2 v3: Layerify nsDisplayTransform" class="" >Attachment #461956</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c18"><div class="comment" data-id="4832627" data-no="18" data-tags=""> <table class="layout-table change-head " id="ch-18" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a32685779_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-18" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-18" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c18">Comment 18</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-01 23:33 PDT" data-time="1280730808">14 years ago</span> </div> </td> </tr> <tr id="ctag-18"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-18" data-comment-id="4832627">Checked in part 2: <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/9a45bd27ec75">http://hg.mozilla.org/mozilla-central/rev/9a45bd27ec75</a></div></div><div class="change-set" id="c19"><div class="comment" data-id="4841627" data-no="19" data-tags=""> <table class="layout-table change-head " id="ch-19" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_25585" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/ce70937566123f0fa56853086418c8e2?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_25585" id="a32685779_380838"><a class="email disabled" href="/user_profile?user_id=25585" > <span class="fna">José Jeria</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-19" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-19" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c19">Comment 19</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-05 09:05 PDT" data-time="1281024341">14 years ago</span> </div> </td> </tr> <tr id="ctag-19"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-19" data-comment-id="4841627">Could this have caused <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Regression: Transform rotation testcase performs significantly worse" href="/show_bug.cgi?id=584494">bug 584494</a>?</div></div><div class="change-set" id="c20"><div class="comment" data-id="4842534" data-no="20" data-tags=""> <table class="layout-table change-head assignee" id="ch-20" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a32685779_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-20" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-20" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c20">Comment 20</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-05 13:40 PDT" data-time="1281040823">14 years ago</span> </div> </td> </tr> <tr id="ctag-20"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-20" data-comment-id="4842534">Yes, I'll look into that today.</div></div><div class="change-set" id="c21"><div class="comment" data-id="4852988" data-no="21" data-tags=""> <table class="layout-table change-head " id="ch-21" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_217429" id="a32685779_380838"><img src="https://secure.gravatar.com/avatar/408732d1e72e185eb7f05f9013e6c305?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_217429" id="a32685779_380838"><a class="email " href="/user_profile?user_id=217429" > <span class="fna">Ryan Jones-Ward [:sciguyryan]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-21" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-21" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c21">Comment 21</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-10 15:12 PDT" data-time="1281478340">14 years ago</span> </div> </td> </tr> <tr id="ctag-21"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-21" data-comment-id="4852988">Just a little curiosity on my part here - how likely is this to make it into Firefox 4?</div></div><div class="change-set" id="a33638059_5038"><div class="change" id="aa33638059_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a33638059_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a33638059_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a33638059_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a33638059_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a33638059_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-12 17:17 PDT" data-time="1281658635">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Images transformed using "-moz-transform: scale" don't re-sample until the transition is complete and show a stretched copy of their original state during the transition" href="/show_bug.cgi?id=586683">586683</a></div></div></div><div class="change-set" id="c22"><div class="comment" data-id="4859750" data-no="22" data-tags=""> <table class="layout-table change-head assignee" id="ch-22" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a33638059_5038"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a33638059_5038"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-22" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-22" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c22">Comment 22</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-13 00:05 PDT" data-time="1281683104">14 years ago</span> </div> </td> </tr> <tr id="ctag-22"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-22" data-comment-id="4859750">I'm hopeful! Slowly crossing things off my list of things to implement and bugs to fix. The end is in sight!</div></div><div class="change-set" id="c23"><div class="comment" data-id="4860745" data-no="23" data-tags=""> <table class="layout-table change-head " id="ch-23" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a33638059_5038"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a33638059_5038"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-23" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-23" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c23">Comment 23</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-08-13 09:46 PDT" data-time="1281718012">14 years ago</span> </div> </td> </tr> <tr id="ctag-23"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-23" data-comment-id="4860745">It might be worth starting to request code reviews on the parts that you think are done.</div></div><div class="change-set" id="a35877043_380838"><div class="change" id="aa35877043_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a35877043_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a35877043_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a35877043_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a35877043_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a35877043_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-07 15:13 PDT" data-time="1283897619">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459283&action=edit" title="Part 1: Fix OpenGL container layer to support transforming children" class="" >Attachment #459283</a> - Flags: approval2.0?</div></div></div><div class="change-set" id="a35877533_380838"><div class="change" id="aa35877533_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a35877533_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a35877533_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a35877533_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a35877533_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a35877533_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-07 15:21 PDT" data-time="1283898109">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Blocks: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - [Tracking bug] Reftest failures running with OpenGL accelerated layers on OS X" href="/show_bug.cgi?id=586464">586464</a></div></div></div><div class="change-set" id="a35877813_5038"><div class="change" id="aa35877813_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a35877813_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a35877813_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a35877813_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a35877813_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a35877813_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-07 15:26 PDT" data-time="1283898389">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=459283&action=edit" title="Part 1: Fix OpenGL container layer to support transforming children" class="" >Attachment #459283</a> - Flags: approval2.0? → approval2.0+</div></div></div><div class="change-set" id="c24"><div class="comment" data-id="4920458" data-no="24" data-tags=""> <table class="layout-table change-head " id="ch-24" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_313730" id="a35877813_5038"><img src="https://secure.gravatar.com/avatar/ac57223c49d41049a4917e187b854377?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_313730" id="a35877813_5038"><a class="email " href="/user_profile?user_id=313730" > <span class="fna">Bobby Holley (:bholley)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-24" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-24" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c24">Comment 24</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-07 17:41 PDT" data-time="1283906465">14 years ago</span> </div> </td> </tr> <tr id="ctag-24"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-24" data-comment-id="4920458">Pushed part 1 to mozilla-central: <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/d91b0d9fd0a2">http://hg.mozilla.org/mozilla-central/rev/d91b0d9fd0a2</a></div></div><div class="change-set" id="c25"><div class="comment" data-id="4923313" data-no="25" data-tags=""> <table class="layout-table change-head " id="ch-25" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a35877813_5038"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a35877813_5038"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-25" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-25" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c25">Comment 25</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-08 14:35 PDT" data-time="1283981700">14 years ago</span> </div> </td> </tr> <tr id="ctag-25"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-25" data-comment-id="4923313">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=461958" name="attach_461958" title="Part 4: Upgrade gfx3DMatrix">attachment 461958</a> <a href="/attachment.cgi?id=461958&action=edit" title="Part 4: Upgrade gfx3DMatrix">[details]</a> <a href="/attachment.cgi?id=461958&action=diff" title="Part 4: Upgrade gfx3DMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=461958'>[review]</a> Part 4: Upgrade gfx3DMatrix I would strongly suggest that we use an externally-developed and tested matrix library instead of growing our own. If you want something minimalist that fits in one file and has code that's very easy to understand, use CImg: <a rel="nofollow" href="http://cimg.sourceforge.net/">http://cimg.sourceforge.net/</a> If you want to know what I'd really recommend, it's Eigen (disclaimer, I'm a contributor to it): <a rel="nofollow" href="http://eigen.tuxfamily.org/">http://eigen.tuxfamily.org/</a></div></div><div class="change-set" id="c26"><div class="comment" data-id="4956456" data-no="26" data-tags=""> <table class="layout-table change-head " id="ch-26" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_94" id="a35877813_5038"><img src="https://secure.gravatar.com/avatar/7a41e6ee07ffb6fa8873f73b962603fd?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_94" id="a35877813_5038"><a class="email disabled" href="/user_profile?user_id=94" > <span class="fna">Joe Drew (not getting mail)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-26" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-26" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c26">Comment 26</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-09-21 12:16 PDT" data-time="1285096582">14 years ago</span> </div> </td> </tr> <tr id="ctag-26"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-26" data-comment-id="4956456">This doesn't seem required for the OpenGL reftest bug - probably a mistake?</div><div class="activity"><div class="change">No longer blocks: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - [Tracking bug] Reftest failures running with OpenGL accelerated layers on OS X" href="/show_bug.cgi?id=586464">586464</a></div></div></div><div class="change-set" id="a38410716_255010"><div class="change" id="aa38410716_255010"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_255010" id="a38410716_255010"><img src="https://secure.gravatar.com/avatar/0646a42110a02dd585f200f270716852?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_255010" id="a38410716_255010"><a class="email " href="/user_profile?user_id=255010" > <span class="fna">Timothy Nikkel (:tnikkel)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a38410716_255010" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a38410716_255010"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a38410716_255010">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-10-06 23:01 PDT" data-time="1286431292">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Black boxes on depth-of-field chrome experiment" href="/show_bug.cgi?id=601894">601894</a></div></div></div><div class="change-set" id="c27"><div class="comment" data-id="5000581" data-no="27" data-tags=""> <table class="layout-table change-head " id="ch-27" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_223719" id="a38410716_255010"><img src="https://secure.gravatar.com/avatar/e07bd949a568841b2068879b377aa477?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_223719" id="a38410716_255010"><a class="email " href="/user_profile?user_id=223719" > <span class="fna">Paul Irish</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-27" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-27" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c27">Comment 27</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-10-10 02:37 PDT" data-time="1286703449">14 years ago</span> </div> </td> </tr> <tr id="ctag-27"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-27" data-comment-id="5000581">webkit's implementation also includes a media query: @media (-webkit-transform-3d) This comes in rather handy for feature detection as checking something like 'webkitPerspective' in document.body.style will false positive in recent webkit versions without the graphics-side support. I know with Firefox's multitouch it also exposes a similar -moz-touch-enabled media query. Are you planning to include a mediaQuery for your 3D implementation, not only for feature detection but for better style scoping for authors?</div></div><div class="change-set" id="c28"><div class="comment" data-id="5000794" data-no="28" data-tags=""> <table class="layout-table change-head " id="ch-28" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a38410716_255010"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a38410716_255010"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-28" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-28" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c28">Comment 28</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-10-10 09:46 PDT" data-time="1286729174">14 years ago</span> </div> </td> </tr> <tr id="ctag-28"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-28" data-comment-id="5000794">Including a media query sounds like a good idea.</div></div><div class="change-set" id="a39237041_293623"><div class="change" id="aa39237041_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a39237041_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a39237041_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a39237041_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a39237041_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a39237041_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-10-16 12:33 PDT" data-time="1287257617">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - poor text rendering with dancing characters at html5test.com" href="/show_bug.cgi?id=604899">604899</a></div></div></div><div class="change-set" id="a43027020_293943"><div class="change" id="aa43027020_293943"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293943" id="a43027020_293943"><img src="https://secure.gravatar.com/avatar/711e7c6f7c2c62a7bc2eb760585c3daa?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293943" id="a43027020_293943"><a class="email " href="/user_profile?user_id=293943" > <span class="fna">Markus Stange [:mstange]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a43027020_293943" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a43027020_293943"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a43027020_293943">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2010-11-29 08:19 PST" data-time="1291047596">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Line artifacts on depth-of-field chrome experiment" href="/show_bug.cgi?id=615225">615225</a></div></div></div><div class="change-set" id="a50464318_137548"><div class="change" id="aa50464318_137548"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_137548" id="a50464318_137548"><img src="https://secure.gravatar.com/avatar/a2c5e928cfdf3fc8569227c21ea780ac?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_137548" id="a50464318_137548"><a class="email " href="/user_profile?user_id=137548" > <span class="fna">Mike Beltzner [:beltzner, not reading bugmail]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a50464318_137548" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a50464318_137548"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a50464318_137548">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-02-23 10:14 PST" data-time="1298484894">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed]</div></div></div><div class="change-set" id="c29"><div class="comment" data-id="5311467" data-no="29" data-tags=""> <table class="layout-table change-head " id="ch-29" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_387502" id="a50464318_137548"><img src="https://secure.gravatar.com/avatar/94ebd6cfa1ef125a3d6b1fdfa9b4daef?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_387502" id="a50464318_137548"><a class="email disabled" href="/user_profile?user_id=387502" > <span class="fna">Ahmed Aly</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-29" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-29" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c29">Comment 29</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-03-01 06:49 PST" data-time="1298990971">14 years ago</span> </div> </td> </tr> <tr id="ctag-29"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-29" data-comment-id="5311467">is this dead ? could it reach firefox 4?</div></div><div class="change-set" id="a53326420_251051"><div class="change" id="aa53326420_251051"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_251051" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/5aef682fbfd7590b9d85d6e8dbab10eb?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_251051" id="a53326420_251051"><a class="email " href="/user_profile?user_id=251051" > <span class="fna">(no longer active)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a53326420_251051" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a53326420_251051"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a53326420_251051">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-03-28 14:16 PDT" data-time="1301346996">14 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed] → [approved-patches-landed][not-ready-for-cedar]</div></div></div><div class="change-set" id="c30"><div class="comment" data-id="5405226" data-no="30" data-tags=""> <table class="layout-table change-head assignee" id="ch-30" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-30" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-30" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c30">Comment 30</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-12 16:56 PDT" data-time="1302652615">14 years ago</span> </div> </td> </tr> <tr id="ctag-30"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-525557" class="attachment patch obsolete" data-id="525557" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="30087"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=525557"> <a class="link" href="attachment.cgi?id=525557&action=diff"> <span id="att-525557-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2</span></a> (obsolete) — <a href="attachment.cgi?id=525557&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525557">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-30" data-comment-id="5405226">Fixed bitrot.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461957&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix" class="" >Attachment #461957</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=525557&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2" class="" >Attachment #525557</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c31"><div class="comment" data-id="5405229" data-no="31" data-tags=""> <table class="layout-table change-head assignee" id="ch-31" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-31" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-31" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c31">Comment 31</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-12 16:58 PDT" data-time="1302652681">14 years ago</span> </div> </td> </tr> <tr id="ctag-31"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-525558" class="attachment patch obsolete" data-id="525558" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="gfx3DMatrix-upgrade"> <meta itemprop="contentSize" content="9861"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=525558"> <a class="link" href="attachment.cgi?id=525558&action=diff"> <span id="att-525558-description" itemprop="description">Part 4: Upgrade gfx3DMatrix v2</span></a> (obsolete) — <a href="attachment.cgi?id=525558&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525558">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-31" data-comment-id="5405229">Fixed more bitrot.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461958&action=edit" title="Part 4: Upgrade gfx3DMatrix" class="" >Attachment #461958</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=525558&action=edit" title="Part 4: Upgrade gfx3DMatrix v2" class="" >Attachment #525558</a> - Flags: review?(jmuizelaar)</div></div></div><div class="change-set" id="c32"><div class="comment" data-id="5405256" data-no="32" data-tags=""> <table class="layout-table change-head assignee" id="ch-32" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-32" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-32" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c32">Comment 32</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-12 17:05 PDT" data-time="1302653147">14 years ago</span> </div> </td> </tr> <tr id="ctag-32"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-525561" class="attachment patch obsolete" data-id="525561" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="use-3d-matrix"> <meta itemprop="contentSize" content="30576"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=525561"> <a class="link" href="attachment.cgi?id=525561&action=diff"> <span id="att-525561-description" itemprop="description">Part 5: Use gfx3DMatrix in layout v2</span></a> (obsolete) — <a href="attachment.cgi?id=525561&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525561">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-32" data-comment-id="5405256">More of the same.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=461959&action=edit" title="Part 5: Use gfx3DMatrix in layout" class="" >Attachment #461959</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=525561&action=edit" title="Part 5: Use gfx3DMatrix in layout v2" class="" >Attachment #525561</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c33"><div class="comment" data-id="5407282" data-no="33" data-tags=""> <table class="layout-table change-head " id="ch-33" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-33" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-33" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c33">Comment 33</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-13 12:15 PDT" data-time="1302722156">14 years ago</span> </div> </td> </tr> <tr id="ctag-33"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-33" data-comment-id="5407282">+ UntransformRect(mVisibleRect, mFrame, ToReferenceFrame(), &untransformedVisible); What if this fails? We need at least a comment explaining what happens if we can't untransform. + if (disp->mTransform.IsFlat() && Let's call this PreservesAxisAlignedRectangles. + nsRect untransformedVisible; + UntransformRect(mVisibleRect, mFrame, ToReferenceFrame(), &untransformedVisible); Again, probably need a comment explaining what happens for a singular matrix. + if (matrix.IsSingular() || !matrix.Is2D()) + return PR_FALSE; It's probably faster to check Is2D and get the 2D matrix, then check whether the 2D matrix is invertible. Maybe add a method Is2DAndInvertible? + static gfx3DMatrix GetResultingTransformMatrix(const nsIFrame* aFrame, const nsPoint& aOrigin, float aFactor, const nsRect* aBoundsOverride = nsnull); Fix indent. +nsStyleTransformMatrix::IsFlat() const +{ + if (_12 == 0.0f && _13 == 0.0f && _14 == 0.0f && + _21 == 0.0f && _23 == 0.0f && _24 == 0.0f && + _31 == 0.0f && _32 == 0.0f && _33 == 1.0f && + _34 == 0.0f && _43 == 0.0f && _44 == 1.0f) + return PR_TRUE; Should probably just call Is2D and then gfxMatrix::PreservesAxisAlignedRectangles.</div></div><div class="change-set" id="c34"><div class="comment" data-id="5429375" data-no="34" data-tags=""> <table class="layout-table change-head " id="ch-34" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_309398" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/ad916833cb7747e6939d576f34df1daa?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_309398" id="a53326420_251051"><a class="email " href="/user_profile?user_id=309398" > <span class="fna">Jeff Muizelaar [:jrmuizel]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-34" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-34" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c34">Comment 34</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-25 08:33 PDT" data-time="1303745610">14 years ago</span> </div> </td> </tr> <tr id="ctag-34"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-34" data-comment-id="5429375">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=525558" name="attach_525558" title="Part 4: Upgrade gfx3DMatrix v2">attachment 525558</a> <a href="/attachment.cgi?id=525558&action=edit" title="Part 4: Upgrade gfx3DMatrix v2">[details]</a> <a href="/attachment.cgi?id=525558&action=diff" title="Part 4: Upgrade gfx3DMatrix v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525558'>[review]</a> Part 4: Upgrade gfx3DMatrix v2 Please use #include <algorithm> instead of nsAlgorithm</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=525558&action=edit" title="Part 4: Upgrade gfx3DMatrix v2" class="" >Attachment #525558</a> - Flags: review?(jmuizelaar) → review+</div></div></div><div class="change-set" id="c35"><div class="comment" data-id="5431005" data-no="35" data-tags=""> <table class="layout-table change-head assignee" id="ch-35" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-35" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-35" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c35">Comment 35</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-25 18:56 PDT" data-time="1303782992">14 years ago</span> </div> </td> </tr> <tr id="ctag-35"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-35" data-comment-id="5431005">Progress update: I now have a large part of the spec completed and working, with the GL layers backend. <a rel="nofollow" href="http://hg.mozilla.org/users/mwoodrow_mozilla.com/3d-transforms-new/">http://hg.mozilla.org/users/mwoodrow_mozilla.com/3d-transforms-new/</a> The remaining ToDo list (in approximate order) is: 1) Get the patches cleaned up and ready to land (pref'd off) in a way that won't break unsupported configurations 2) Tests tests tests 3) Add -moz-perspective-origin a z component to -moz-transform-origin 4) D3D9/10 Backend support 5) Software backend support 6) -moz-transform-style 7) DOM interfaces 8) Transitions/Animations</div></div><div class="change-set" id="c36"><div class="comment" data-id="5433585" data-no="36" data-tags=""> <table class="layout-table change-head " id="ch-36" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-36" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-36" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c36">Comment 36</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 16:51 PDT" data-time="1303861893">14 years ago</span> </div> </td> </tr> <tr id="ctag-36"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-36" data-comment-id="5433585">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=525557" name="attach_525557" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2">attachment 525557</a> <a href="/attachment.cgi?id=525557&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2">[details]</a> <a href="/attachment.cgi?id=525557&action=diff" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=525557'>[review]</a> Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2 So I haven't dug into this in a whole lot of detail yet, but I do definitely know one major thing that's wrong, and I may as well tell you about that sooner rather than later. (It could even be causing bugs that you're observing...) The whole mX/mY business is to handle percentage values of translateX() and translateY(), which are percentages relative to the width and height of the element. At the time we compute the style data, we don't know the element's width and height -- that gets computed during layout. So the basic idea of what we've done for 2D is record three separate matrices: the first is the part that's fixed (mMain and mDelta), the second is to be multiplied by the element's width (mX), and the third to be multiplied by the element's height (mY). In 2-D transforms, the only way to introduce a height-relative transform is in the Y translation component, the only way to introduce a width-relative transform is in the X translation component, and, importantly, the only other matrix components that the operators in 2-D transforms allow the X translation and Y translation components to be copied to is each other (via skew or rotate). But 3-D transforms has more operators, which means that you're pretty obviously not storing enough data. For example, if you have rotateY(45deg) translateX(10%), you're going to rotate some of that translation into data that you simply don't have a place to store, since you don't have a place to store width-relative translation on the Z axis. That reminds me of a second issue, which I'm less sure about what should happen: the issue of units. WebKit's publication of the transforms spec sort of papered over the fact that CSS doesn't have a "primary" unit type for lengths -- lengths can have different units. In the 2-D transform matrix, the components of the transform matrix technically have the following units: [ unitless unitless length ] [ unitless unitless length ] [ 1/length 1/length unitless ] (but these are fixed 0 0 1) In the 3-D transform matrix, the units really look like this: [ unitless unitless length/Z length ] [ unitless unitless length/Z length ] [ Z/length Z/length unitless Z ] [ 1/length 1/length 1/Z unitless ] It's not clear to me that we want to continue storing those two "length" values as nscoord while storing all the rest as floats, especially given the variety of units in this matrix. But we do certainly need to be careful about units and what conversions are expected. And 3-D transforms do introduce the new problem (not present in 2-D transforms) that there's an assumption that CSS pixels are the canonical unit of length and that there's some unnamed canonical unit of Z distance.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=525557&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2" class="" >Attachment #525557</a> - Flags: review?(dbaron) → review-</div></div></div><div class="change-set" id="c37"><div class="comment" data-id="5433620" data-no="37" data-tags=""> <table class="layout-table change-head " id="ch-37" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-37" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-37" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c37">Comment 37</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 17:01 PDT" data-time="1303862492">14 years ago</span> </div> </td> </tr> <tr id="ctag-37"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-37" data-comment-id="5433620">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c36">comment #36</a>) <span class="quote">> But 3-D transforms has more operators, which means that you're pretty obviously > not storing enough data. For example, if you have rotateY(45deg) > translateX(10%), you're going to rotate some of that translation into data that > you simply don't have a place to store, since you don't have a place to store > width-relative translation on the Z axis.</span > And, in particular, the fact that 3-D transforms has the arbitrary 16 value matrix3d() function means that you could end up with width-relative and height-relative values in all 16 components of the matrix. (With 2-D transforms, the two cells that were always 0 prevented them from spreading through most of the matrix.)</div></div><div class="change-set" id="c38"><div class="comment" data-id="5433799" data-no="38" data-tags=""> <table class="layout-table change-head assignee" id="ch-38" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-38" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-38" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c38">Comment 38</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 18:50 PDT" data-time="1303869017">14 years ago</span> </div> </td> </tr> <tr id="ctag-38"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-38" data-comment-id="5433799">Thanks David, I should have spotted that. This is pushing the limit of my matrix knowledge, is there any way we can represent all the information we need, similar to what the current code is doing? From what I can see, once the relative data has spread across the matrix there will be no easy way to store everything. We could keep a linked list of matrix objects and only multiply them together once we can evaluate the length/width values, but this would require heap allocations and feels somewhat ugly.</div></div><div class="change-set" id="c39"><div class="comment" data-id="5433821" data-no="39" data-tags=""> <table class="layout-table change-head " id="ch-39" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-39" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-39" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c39">Comment 39</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 19:06 PDT" data-time="1303869983">14 years ago</span> </div> </td> </tr> <tr id="ctag-39"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-39" data-comment-id="5433821">The current approach is still quite doable: you just need 48 components total: 16 for the "constant", 16 for the width-relative, and 16 for the height-relative.</div></div><div class="change-set" id="c40"><div class="comment" data-id="5433826" data-no="40" data-tags=""> <table class="layout-table change-head " id="ch-40" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-40" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-40" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c40">Comment 40</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 19:10 PDT" data-time="1303870249">14 years ago</span> </div> </td> </tr> <tr id="ctag-40"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-40" data-comment-id="5433826">Er, actually, no, it's not, since you can have quadratic terms now too. So I think we'll just need to change to storing the list of transforms in computed style and only computing them into a (16-term) matrix once we know the width. We probably then want to cache the matrix in a frame property.</div></div><div class="change-set" id="c41"><div class="comment" data-id="5433837" data-no="41" data-tags=""> <table class="layout-table change-head " id="ch-41" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-41" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-41" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c41">Comment 41</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 19:17 PDT" data-time="1303870677">14 years ago</span> </div> </td> </tr> <tr id="ctag-41"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-41" data-comment-id="5433837">And, actually, we *already* store the specified transform as nsStyleDisplay::mSpecifiedTransform (since we already need it for animations), so we'd just need to stop storing nsStyleDisplay::mTransform. Then we'd need to compute the transform later on (maybe in nsDisplayTransform? I don't think we should need it at any stage before display lists), and then possibly cache it somewhere (if we do, we'll also need to clear that cache appropriately -- but I'm actually thinking that caching is probably unnecessary). We largely wouldn't need nsStyleTransformMatrix anymore, except we might want to keep it around as a bunch of static methods that produce a gfx3DMatrix from the transform function data. Or something like that -- it depends on what works out well.</div></div><div class="change-set" id="c42"><div class="comment" data-id="5433850" data-no="42" data-tags=""> <table class="layout-table change-head " id="ch-42" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-42" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-42" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c42">Comment 42</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 19:30 PDT" data-time="1303871423">14 years ago</span> </div> </td> </tr> <tr id="ctag-42"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-42" data-comment-id="5433850">We need to know the transform during reflow to calculate the right overflow area in FinishAndStoreOverflow.</div></div><div class="change-set" id="c43"><div class="comment" data-id="5433859" data-no="43" data-tags=""> <table class="layout-table change-head " id="ch-43" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-43" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-43" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c43">Comment 43</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-26 19:39 PDT" data-time="1303871999">14 years ago</span> </div> </td> </tr> <tr id="ctag-43"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-43" data-comment-id="5433859">Of course, we have the width and height there. So a utility method to compute the final transform would be fine. I agree we don't even need to cache it on the frame, just cache it in the nsDisplayTransform.</div></div><div class="change-set" id="c44"><div class="comment" data-id="5440891" data-no="44" data-tags=""> <table class="layout-table change-head " id="ch-44" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-44" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-44" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c44">Comment 44</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-04-29 19:25 PDT" data-time="1304130306">14 years ago</span> </div> </td> </tr> <tr id="ctag-44"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-44" data-comment-id="5440891">Also, since you're redoing much of the code for interpolation of transforms anyway, you should read <a rel="nofollow" href="http://lists.w3.org/Archives/Public/www-style/2010Oct/0440.html">http://lists.w3.org/Archives/Public/www-style/2010Oct/0440.html</a> (a proposal on how to do it better than what's currently in the spec).</div></div><div class="change-set" id="c45"><div class="comment" data-id="5450599" data-no="45" data-tags=""> <table class="layout-table change-head assignee" id="ch-45" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-45" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-45" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c45">Comment 45</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-05-05 04:42 PDT" data-time="1304595744">14 years ago</span> </div> </td> </tr> <tr id="ctag-45"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-530273" class="attachment patch obsolete" data-id="530273" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="63749"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=530273"> <a class="link" href="attachment.cgi?id=530273&action=diff"> <span id="att-530273-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v3</span></a> (obsolete) — <a href="attachment.cgi?id=530273&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=530273">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-45" data-comment-id="5450599">Huge rewrite to keep transforms as a list of transform functions until the bounds information becomes available. I'm not sure if the test for transform changed is suitable and I'm getting a few transform reftest failures (anti-aliasing differences) that I think are caused by this being hit and forcing active (and GPU composited) layers. We also probably want to cache the gfxMatrix inside nsDisplayTransform, how can I tell when the tranform and/or bounds have changed so that we can dump the cached value? This passes all reftests from transforms/ and css-transitions/ (aside from the above mentioned compositing differences), but I still need to check animations tests.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=525557&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v2" class="" >Attachment #525557</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=530273&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v3" class="" >Attachment #530273</a> - Flags: feedback?(dbaron)</div></div></div><div class="change-set" id="c46"><div class="comment" data-id="5452493" data-no="46" data-tags=""> <table class="layout-table change-head " id="ch-46" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-46" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-46" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c46">Comment 46</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-05-05 17:11 PDT" data-time="1304640705">14 years ago</span> </div> </td> </tr> <tr id="ctag-46"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-46" data-comment-id="5452493">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c45">comment #45</a>) <span class="quote">> We also probably want to cache the gfxMatrix inside nsDisplayTransform, how can > I tell when the tranform and/or bounds have changed so that we can dump the > cached value?</span > Display list items are recreated every time we paint (or hit-test, or whatever) and styles and layout can't change during that time, so there's no problem.</div></div><div class="change-set" id="c47"><div class="comment" data-id="5455116" data-no="47" data-tags=""> <table class="layout-table change-head " id="ch-47" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_412452" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/366ffdc92d5a6afb8226d326692a0352?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_412452" id="a53326420_251051"><a class="email " href="/user_profile?user_id=412452" > <span class="fna">Aaron Cajes</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-47" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-47" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c47">Comment 47</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-05-07 02:23 PDT" data-time="1304760218">14 years ago</span> </div> </td> </tr> <tr id="ctag-47"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-47" data-comment-id="5455116">Is this going to land in Aurora for Firefox 5 or Firefox 6? hmmm..</div></div><div class="change-set" id="c48"><div class="comment" data-id="5456262" data-no="48" data-tags=""> <table class="layout-table change-head assignee" id="ch-48" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-48" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-48" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c48">Comment 48</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-05-08 16:39 PDT" data-time="1304897988">14 years ago</span> </div> </td> </tr> <tr id="ctag-48"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-530964" class="attachment patch obsolete" data-id="530964" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="77174"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=530964"> <a class="link" href="attachment.cgi?id=530964&action=diff"> <span id="att-530964-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v4</span></a> (obsolete) — <a href="attachment.cgi?id=530964&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=530964">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-48" data-comment-id="5456262">Fixed crashes and quite a few test failures running test_transitions_per_property.html. How do we handle compute distance with non matching transform lists? I'm a bit stuck on how to defer this calculation until the bounds information is available. We still have 17 failures in the test, 7 are rounding issues (greater than round_error_ok allows), the other 10 are distance calculations failing (since the code for them doesn't do anything). This is on top of the above mentioned anti-aliasing failures with reftests.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=530273&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v3" class="" >Attachment #530273</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=530964&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v4" class="" >Attachment #530964</a> - Flags: feedback?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=530273&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v3" class="" >Attachment #530273</a> - Flags: <span class="activity-deleted">feedback?(dbaron)</span></div></div></div><div class="change-set" id="c49"><div class="comment" data-id="5509884" data-no="49" data-tags=""> <table class="layout-table change-head assignee" id="ch-49" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-49" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-49" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c49">Comment 49</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:10 PDT" data-time="1307056254">13 years ago</span> </div> </td> </tr> <tr id="ctag-49"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537013" class="attachment patch obsolete" data-id="537013" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="81859"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537013"> <a class="link" href="attachment.cgi?id=537013&action=diff"> <span id="att-537013-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5</span></a> (obsolete) — <a href="attachment.cgi?id=537013&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537013">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-49" data-comment-id="5509884">This now passes all tests on tryserver. I had to disable all tests that attempted to compute a distance with non-matching transform lists (as suggested).</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=530964&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v4" class="" >Attachment #530964</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=537013&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5" class="" >Attachment #537013</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=530964&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v4" class="" >Attachment #530964</a> - Flags: <span class="activity-deleted">feedback?(dbaron)</span></div></div></div><div class="change-set" id="c50"><div class="comment" data-id="5509887" data-no="50" data-tags=""> <table class="layout-table change-head assignee" id="ch-50" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-50" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-50" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c50">Comment 50</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:11 PDT" data-time="1307056319">13 years ago</span> </div> </td> </tr> <tr id="ctag-50"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537014" class="attachment patch obsolete" data-id="537014" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="gfx3DMatrix-upgrade"> <meta itemprop="contentSize" content="21685"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537014"> <a class="link" href="attachment.cgi?id=537014&action=diff"> <span id="att-537014-description" itemprop="description">Part 4: Upgrade gfx3DMatrix v3</span></a> (obsolete) — <a href="attachment.cgi?id=537014&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537014">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-50" data-comment-id="5509887">Fixed review comment and moved most implementations into a new gfx3DMatrix.cpp file. Carrying forward r=jrmuizel.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=525558&action=edit" title="Part 4: Upgrade gfx3DMatrix v2" class="" >Attachment #525558</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=537014&action=edit" title="Part 4: Upgrade gfx3DMatrix v3" class="" >Attachment #537014</a> - Flags: review+</div></div></div><div class="change-set" id="c51"><div class="comment" data-id="5509896" data-no="51" data-tags=""> <table class="layout-table change-head assignee" id="ch-51" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-51" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-51" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c51">Comment 51</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:13 PDT" data-time="1307056406">13 years ago</span> </div> </td> </tr> <tr id="ctag-51"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537016" class="attachment patch obsolete" data-id="537016" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="use-3d-matrix"> <meta itemprop="contentSize" content="39587"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537016"> <a class="link" href="attachment.cgi?id=537016&action=diff"> <span id="att-537016-description" itemprop="description">Part 5: Use gfx3DMatrix in layout v3</span></a> (obsolete) — <a href="attachment.cgi?id=537016&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537016">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-51" data-comment-id="5509896">Rebased and hopefully fixed review comments. Note that we should never actually get any 3d transforms with this current code, everything should pass Is2D(). Later patches add 3d transforms, and also implement proper untransforming of these.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=525561&action=edit" title="Part 5: Use gfx3DMatrix in layout v2" class="" >Attachment #525561</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=537016&action=edit" title="Part 5: Use gfx3DMatrix in layout v3" class="" >Attachment #537016</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=525561&action=edit" title="Part 5: Use gfx3DMatrix in layout v2" class="" >Attachment #525561</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c52"><div class="comment" data-id="5509900" data-no="52" data-tags=""> <table class="layout-table change-head assignee" id="ch-52" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-52" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-52" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c52">Comment 52</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:14 PDT" data-time="1307056497">13 years ago</span> </div> </td> </tr> <tr id="ctag-52"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537017" class="attachment patch obsolete" data-id="537017" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-transform-functions"> <meta itemprop="contentSize" content="26664"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537017"> <a class="link" href="attachment.cgi?id=537017&action=diff"> <span id="att-537017-description" itemprop="description">Part 6: Implement the 3d -moz-transform functions</span></a> (obsolete) — <a href="attachment.cgi?id=537017&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537017">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-52" data-comment-id="5509900">Adds the 3d transform functions to nsStyleTransformMatrix. Needs parts 7 and 8 to function correctly, just broken up for easier review.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537017&action=edit" title="Part 6: Implement the 3d -moz-transform functions" class="" >Attachment #537017</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c53"><div class="comment" data-id="5509905" data-no="53" data-tags=""> <table class="layout-table change-head assignee" id="ch-53" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-53" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-53" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c53">Comment 53</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:16 PDT" data-time="1307056584">13 years ago</span> </div> </td> </tr> <tr id="ctag-53"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537018" class="attachment patch obsolete" data-id="537018" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="fixy-fix-fix"> <meta itemprop="contentSize" content="3763"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537018"> <a class="link" href="attachment.cgi?id=537018&action=diff"> <span id="att-537018-description" itemprop="description">Part 7: Layers support for 3d transforms</span></a> (obsolete) — <a href="attachment.cgi?id=537018&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537018">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-53" data-comment-id="5509905">Add support in layers for 3d transforms. We need to adjust the z scale of the viewport transform to 0 because all values must be in the -1 to 1 range, and we have an infinite far plane.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537018&action=edit" title="Part 7: Layers support for 3d transforms" class="" >Attachment #537018</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c54"><div class="comment" data-id="5509912" data-no="54" data-tags=""> <table class="layout-table change-head assignee" id="ch-54" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-54" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-54" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c54">Comment 54</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 16:19 PDT" data-time="1307056776">13 years ago</span> </div> </td> </tr> <tr id="ctag-54"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-537019" class="attachment patch obsolete" data-id="537019" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="untransform-3d"> <meta itemprop="contentSize" content="24412"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=537019"> <a class="link" href="attachment.cgi?id=537019&action=diff"> <span id="att-537019-description" itemprop="description">Part 8: Add ray tracing to untransform 2d points on a 3d plane</span></a> (obsolete) — <a href="attachment.cgi?id=537019&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537019">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-54" data-comment-id="5509912">Let us actually untransform 3d points wherever possible. With the pref (layout.3d-transforms-enabled) off (as it is by default), we pass all tryserver tests with this patch queue. Parts 9 - 12 are still waiting on tryserver results, and possibly more fixes. I plan to land this as soon as possible to try catch any regressions, and prevent them from being bitrotted again.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537019&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane" class="" >Attachment #537019</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c55"><div class="comment" data-id="5510200" data-no="55" data-tags=""> <table class="layout-table change-head " id="ch-55" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-55" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-55" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c55">Comment 55</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 18:40 PDT" data-time="1307065250">13 years ago</span> </div> </td> </tr> <tr id="ctag-55"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-55" data-comment-id="5510200">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537016" name="attach_537016" title="Part 5: Use gfx3DMatrix in layout v3">attachment 537016</a> <a href="/attachment.cgi?id=537016&action=edit" title="Part 5: Use gfx3DMatrix in layout v3">[details]</a> <a href="/attachment.cgi?id=537016&action=diff" title="Part 5: Use gfx3DMatrix in layout v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537016'>[review]</a> Part 5: Use gfx3DMatrix in layout v3 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=537016" name="attach_537016" title="Part 5: Use gfx3DMatrix in layout v3">attachment 537016</a> <a href="/attachment.cgi?id=537016&action=edit" title="Part 5: Use gfx3DMatrix in layout v3">[details]</a> <a href="/attachment.cgi?id=537016&action=diff" title="Part 5: Use gfx3DMatrix in layout v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537016'>[review]</a>: -----------------------------------------------------------------</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537016&action=edit" title="Part 5: Use gfx3DMatrix in layout v3" class="" >Attachment #537016</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c56"><div class="comment" data-id="5510203" data-no="56" data-tags=""> <table class="layout-table change-head " id="ch-56" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-56" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-56" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c56">Comment 56</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 18:41 PDT" data-time="1307065312">13 years ago</span> </div> </td> </tr> <tr id="ctag-56"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-56" data-comment-id="5510203">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537018" name="attach_537018" title="Part 7: Layers support for 3d transforms">attachment 537018</a> <a href="/attachment.cgi?id=537018&action=edit" title="Part 7: Layers support for 3d transforms">[details]</a> <a href="/attachment.cgi?id=537018&action=diff" title="Part 7: Layers support for 3d transforms">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537018'>[review]</a> Part 7: Layers support for 3d transforms Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=537018" name="attach_537018" title="Part 7: Layers support for 3d transforms">attachment 537018</a> <a href="/attachment.cgi?id=537018&action=edit" title="Part 7: Layers support for 3d transforms">[details]</a> <a href="/attachment.cgi?id=537018&action=diff" title="Part 7: Layers support for 3d transforms">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537018'>[review]</a>: -----------------------------------------------------------------</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537018&action=edit" title="Part 7: Layers support for 3d transforms" class="" >Attachment #537018</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c57"><div class="comment" data-id="5510208" data-no="57" data-tags=""> <table class="layout-table change-head " id="ch-57" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-57" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-57" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c57">Comment 57</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-02 18:43 PDT" data-time="1307065397">13 years ago</span> </div> </td> </tr> <tr id="ctag-57"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-57" data-comment-id="5510208">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537019" name="attach_537019" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">attachment 537019</a> <a href="/attachment.cgi?id=537019&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">[details]</a> <a href="/attachment.cgi?id=537019&action=diff" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537019'>[review]</a> Part 8: Add ray tracing to untransform 2d points on a 3d plane Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=537019" name="attach_537019" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">attachment 537019</a> <a href="/attachment.cgi?id=537019&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">[details]</a> <a href="/attachment.cgi?id=537019&action=diff" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537019'>[review]</a>: ----------------------------------------------------------------- ::: gfx/thebes/gfx3DPoint.h @@ +101,5 @@ <span class="quote">> + *this /= Length(); > + } > +}; > + > +#endif /* GFX_3DPOINT_H */ </span > \ No newline at end of file Does it make sense to make a Base3DPoint class like BasePoint, and instantiate it here for gfx3DPoint? I think it probably does.</div></div><div class="change-set" id="c58"><div class="comment" data-id="5529698" data-no="58" data-tags=""> <table class="layout-table change-head assignee" id="ch-58" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-58" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-58" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c58">Comment 58</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 13:44 PDT" data-time="1307997871">13 years ago</span> </div> </td> </tr> <tr id="ctag-58"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-538995" class="attachment patch obsolete" data-id="538995" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="untransform-3d"> <meta itemprop="contentSize" content="27993"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=538995"> <a class="link" href="attachment.cgi?id=538995&action=diff"> <span id="att-538995-description" itemprop="description">Part 8: Add ray tracing to untransform 2d points on a 3d plane v2</span></a> (obsolete) — <a href="attachment.cgi?id=538995&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538995">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-58" data-comment-id="5529698">Renamed gfx3DPoint to gfx3DVector (I think it makes more sense given the operations we use it for). Added Base3DVector.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537019&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane" class="" >Attachment #537019</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=538995&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2" class="" >Attachment #538995</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=537019&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane" class="" >Attachment #537019</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c59"><div class="comment" data-id="5529707" data-no="59" data-tags=""> <table class="layout-table change-head assignee" id="ch-59" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-59" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-59" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c59">Comment 59</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 13:45 PDT" data-time="1307997942">13 years ago</span> </div> </td> </tr> <tr id="ctag-59"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-538996" class="attachment patch obsolete" data-id="538996" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-perspective"> <meta itemprop="contentSize" content="22959"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=538996"> <a class="link" href="attachment.cgi?id=538996&action=diff"> <span id="att-538996-description" itemprop="description">Part 9 - Implement the perspective() transform function and style property.</span></a> (obsolete) — <a href="attachment.cgi?id=538996&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538996">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-59" data-comment-id="5529707"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538996&action=edit" title="Part 9 - Implement the perspective() transform function and style property." class="" >Attachment #538996</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c60"><div class="comment" data-id="5529712" data-no="60" data-tags=""> <table class="layout-table change-head assignee" id="ch-60" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-60" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-60" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c60">Comment 60</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 13:46 PDT" data-time="1307997999">13 years ago</span> </div> </td> </tr> <tr id="ctag-60"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-538997" class="attachment patch obsolete" data-id="538997" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="backface-visible"> <meta itemprop="contentSize" content="20523"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=538997"> <a class="link" href="attachment.cgi?id=538997&action=diff"> <span id="att-538997-description" itemprop="description">Part 10 - Implement -moz-backface-visible</span></a> (obsolete) — <a href="attachment.cgi?id=538997&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538997">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-60" data-comment-id="5529712"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538997&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #538997</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c61"><div class="comment" data-id="5529720" data-no="61" data-tags=""> <table class="layout-table change-head assignee" id="ch-61" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-61" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-61" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c61">Comment 61</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 13:47 PDT" data-time="1307998069">13 years ago</span> </div> </td> </tr> <tr id="ctag-61"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-538998" class="attachment patch obsolete" data-id="538998" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transform-origin-z"> <meta itemprop="contentSize" content="49683"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=538998"> <a class="link" href="attachment.cgi?id=538998&action=diff"> <span id="att-538998-description" itemprop="description">Part 11 - Make -moz-transform-origin also support a z component.</span></a> (obsolete) — <a href="attachment.cgi?id=538998&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538998">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-61" data-comment-id="5529720"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c62"><div class="comment" data-id="5529724" data-no="62" data-tags=""> <table class="layout-table change-head assignee" id="ch-62" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-62" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-62" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c62">Comment 62</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 13:49 PDT" data-time="1307998166">13 years ago</span> </div> </td> </tr> <tr id="ctag-62"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-538999" class="attachment patch obsolete" data-id="538999" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="perspective-origin"> <meta itemprop="contentSize" content="24743"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=538999"> <a class="link" href="attachment.cgi?id=538999&action=diff"> <span id="att-538999-description" itemprop="description">Part 12 - Implement -moz-perspective-origin.</span></a> (obsolete) — <a href="attachment.cgi?id=538999&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538999">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-62" data-comment-id="5529724">All green on tryserver up to this point (with the pref disabled). Took a guess at appropriate reviewers for each piece, happy for anyone to change them.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538999&action=edit" title="Part 12 - Implement -moz-perspective-origin." class="" >Attachment #538999</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c63"><div class="comment" data-id="5530097" data-no="63" data-tags=""> <table class="layout-table change-head " id="ch-63" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-63" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-63" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c63">Comment 63</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 15:55 PDT" data-time="1308005718">13 years ago</span> </div> </td> </tr> <tr id="ctag-63"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-63" data-comment-id="5530097">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=538995" name="attach_538995" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">attachment 538995</a> <a href="/attachment.cgi?id=538995&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">[details]</a> <a href="/attachment.cgi?id=538995&action=diff" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538995'>[review]</a> Part 8: Add ray tracing to untransform 2d points on a 3d plane v2 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=538995" name="attach_538995" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">attachment 538995</a> <a href="/attachment.cgi?id=538995&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">[details]</a> <a href="/attachment.cgi?id=538995&action=diff" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538995'>[review]</a>: ----------------------------------------------------------------- Let's break this patch up into the 3DVector stuff, the matrix changes, and the layout changes. For Base3DVector, "3D" should be last in the name for consistency with Azure and because we can't use 3DVector as a class name. Also, per discussion on IRC this should be BasePoint3D. We'll have to review it carefully to keep the API as consistent with BasePoint as makes sense. ::: gfx/src/Base3DVector.h @@ +124,5 @@ <span class="quote">> + return sqrt(x*x + y*y + z*z); > + } > + > + void Normalize() { > + *this /= Length();</span > What if Length() is zero? At least document what the behavior is.</div></div><div class="change-set" id="c64"><div class="comment" data-id="5530166" data-no="64" data-tags=""> <table class="layout-table change-head " id="ch-64" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-64" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-64" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c64">Comment 64</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 16:18 PDT" data-time="1308007108">13 years ago</span> </div> </td> </tr> <tr id="ctag-64"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-64" data-comment-id="5530166">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=538998" name="attach_538998" title="Part 11 - Make -moz-transform-origin also support a z component.">attachment 538998</a> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component.">[details]</a> <a href="/attachment.cgi?id=538998&action=diff" title="Part 11 - Make -moz-transform-origin also support a z component.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538998'>[review]</a> Part 11 - Make -moz-transform-origin also support a z component. Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=538998" name="attach_538998" title="Part 11 - Make -moz-transform-origin also support a z component.">attachment 538998</a> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component.">[details]</a> <a href="/attachment.cgi?id=538998&action=diff" title="Part 11 - Make -moz-transform-origin also support a z component.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538998'>[review]</a>: ----------------------------------------------------------------- r=me on everything outside of layout/style, needs dbaron review for the style changes ::: layout/style/nsCSSParser.cpp @@ +7524,5 @@ <span class="quote">> + if (!ParseBoxPositionValues(position, PR_TRUE)) > + return PR_FALSE; > + > + PRBool allow3D = > + mozilla::Preferences::GetBool("layout.3d-transforms.enabled", PR_FALSE);</span > I think we should cache this somewhere. Use Preferences::AddBoolVarCache.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Flags: <span class="activity-deleted">review?(roc)</span></div><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Flags: review+</div></div></div><div class="change-set" id="c65"><div class="comment" data-id="5530176" data-no="65" data-tags=""> <table class="layout-table change-head " id="ch-65" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-65" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-65" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c65">Comment 65</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 16:21 PDT" data-time="1308007275">13 years ago</span> </div> </td> </tr> <tr id="ctag-65"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-65" data-comment-id="5530176">Maybe you can break out the style system changes in parts 11 and 12 into separate patches from the code that actually uses the new properties?</div></div><div class="change-set" id="c66"><div class="comment" data-id="5530374" data-no="66" data-tags=""> <table class="layout-table change-head " id="ch-66" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_94" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/7a41e6ee07ffb6fa8873f73b962603fd?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_94" id="a53326420_251051"><a class="email disabled" href="/user_profile?user_id=94" > <span class="fna">Joe Drew (not getting mail)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-66" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-66" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c66">Comment 66</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 17:21 PDT" data-time="1308010876">13 years ago</span> </div> </td> </tr> <tr id="ctag-66"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-66" data-comment-id="5530374"><joe> fwiw i'm not really in favour of having vector3 and point3 be the same class <joe> what happens when you say matrix4 * vector3? <joe> if you don't have a difference between vector and point types, you don't know whether to use the translation components of the matrix or not</div></div><div class="change-set" id="c67"><div class="comment" data-id="5530384" data-no="67" data-tags=""> <table class="layout-table change-head " id="ch-67" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-67" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-67" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c67">Comment 67</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-13 17:22 PDT" data-time="1308010960">13 years ago</span> </div> </td> </tr> <tr id="ctag-67"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-67" data-comment-id="5530384">Benoit, what do you say to that?</div></div><div class="change-set" id="c68"><div class="comment" data-id="5531783" data-no="68" data-tags=""> <table class="layout-table change-head " id="ch-68" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-68" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-68" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c68">Comment 68</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 10:34 PDT" data-time="1308072888">13 years ago</span> </div> </td> </tr> <tr id="ctag-68"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-68" data-comment-id="5531783">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c67">comment #67</a>) <span class="quote">> Benoit, what do you say to that?</span > We had a conversation in Real Life (tm) with Joe and we're now in agreement on the set of point/vector classes that we want. Only have one class for points/vectors with 3 coords (x,y,z). Call that e.g. Point3D. Then only have one class for points/vectors with 4 homogeneous coords (x,y,z,w). Call that e.g. Point4D. It doesn't matter to me whether they're called 'point' or 'vector', what matters to me is that we have only one non-homogeneous class and one homogeneous class, and we're now in agreement on that.</div></div><div class="change-set" id="c69"><div class="comment" data-id="5531790" data-no="69" data-tags=""> <table class="layout-table change-head " id="ch-69" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-69" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-69" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c69">Comment 69</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 10:37 PDT" data-time="1308073043">13 years ago</span> </div> </td> </tr> <tr id="ctag-69"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-69" data-comment-id="5531790">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c63">comment #63</a>) <span class="quote">> ::: gfx/src/Base3DVector.h > @@ +124,5 @@ > > + return sqrt(x*x + y*y + z*z); > > + } > > + > > + void Normalize() { > > + *this /= Length(); > > What if Length() is zero? At least document what the behavior is.</span > FWIW I consider that to be purely a documentation issue i.e. I don't think that the code should perform any check. I've found that it's just simpler to design vector/matrix classes in such a way that they behave as similarly as possible to plain floats. Surely the compiler doesn't generate any code to protect against divisions by zero, and neither should we.</div></div><div class="change-set" id="c70"><div class="comment" data-id="5532084" data-no="70" data-tags=""> <table class="layout-table change-head " id="ch-70" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_94" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/7a41e6ee07ffb6fa8873f73b962603fd?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_94" id="a53326420_251051"><a class="email disabled" href="/user_profile?user_id=94" > <span class="fna">Joe Drew (not getting mail)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-70" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-70" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c70">Comment 70</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 12:19 PDT" data-time="1308079141">13 years ago</span> </div> </td> </tr> <tr id="ctag-70"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-70" data-comment-id="5532084">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c68">comment #68</a>) <span class="quote">> It doesn't matter to me whether they're called 'point' or 'vector', what > matters to me is that we have only one non-homogeneous class and one > homogeneous class, and we're now in agreement on that.</span > They should be called Point and Vector; optional 3D and 4D. ;)</div></div><div class="change-set" id="c71"><div class="comment" data-id="5532213" data-no="71" data-tags=""> <table class="layout-table change-head " id="ch-71" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-71" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-71" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c71">Comment 71</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 13:10 PDT" data-time="1308082253">13 years ago</span> </div> </td> </tr> <tr id="ctag-71"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-71" data-comment-id="5532213">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c70">comment #70</a>) <span class="quote">> (In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c68">comment #68</a>) > > It doesn't matter to me whether they're called 'point' or 'vector', what > > matters to me is that we have only one non-homogeneous class and one > > homogeneous class, and we're now in agreement on that. > > They should be called Point and Vector; optional 3D and 4D. ;)</span > Ah, so we still disagree: I don't agree with having Points with non-homogeneous coordinates vs Vectors with homogeneous coordinates. In homogeneous coordinates there is no notion of 'length of a vector', since if you multiply all homogeneous coords by 2 it's still the same point. So in a proposal where the only vectors would have homogeneous coords, we'd be able to represent only _unit_ vectors. I am not comfortable with such a limitation. === My proposal === Vector3D class has 3 coords (x,y,z). You can also simply call it 'Vector' Vector4D class has 4 homogeneous coords (x,y,z,w). You can also call it 'HVector', where H stands for Homogeneous. No distinction between 'points' and 'vectors'.</div></div><div class="change-set" id="c72"><div class="comment" data-id="5532335" data-no="72" data-tags=""> <table class="layout-table change-head " id="ch-72" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-72" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-72" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c72">Comment 72</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 13:50 PDT" data-time="1308084645">13 years ago</span> </div> </td> </tr> <tr id="ctag-72"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-72" data-comment-id="5532335">Forgot to reply to that: (In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c66">comment #66</a>) <span class="quote">> <joe> fwiw i'm not really in favour of having vector3 and point3 be the same > class > <joe> what happens when you say matrix4 * vector3? > <joe> if you don't have a difference between vector and point types, you > don't know whether to use the translation components of the matrix or not</span > As I see it, Vector3D would be for ordinary 3D points, not for directions at infinity, so if one had implicit casting to homogeneous coords, (x,y,z) would unambiguously become (x,y,z,1). So there is no ambiguity, once this is agreed on. However, regardless of that, matrix4 * vector3 would have to return a vector4 since the matrix4 can have anything on the fourth row.</div></div><div class="change-set" id="c73"><div class="comment" data-id="5532893" data-no="73" data-tags=""> <table class="layout-table change-head " id="ch-73" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-73" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-73" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c73">Comment 73</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:14 PDT" data-time="1308096853">13 years ago</span> </div> </td> </tr> <tr id="ctag-73"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-73" data-comment-id="5532893">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c71">comment #71</a>) <span class="quote">> Vector3D class has 3 coords (x,y,z). You can also simply call it 'Vector' > Vector4D class has 4 homogeneous coords (x,y,z,w). You can also call it > 'HVector', where H stands for Homogeneous.</span > The name should be Point3D, for consistency with 2D points. Point3D and Point4D sound like the best approaches for now.</div></div><div class="change-set" id="c74"><div class="comment" data-id="5532925" data-no="74" data-tags=""> <table class="layout-table change-head " id="ch-74" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-74" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-74" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c74">Comment 74</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:24 PDT" data-time="1308097453">13 years ago</span> </div> </td> </tr> <tr id="ctag-74"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-74" data-comment-id="5532925">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c73">comment #73</a>) <span class="quote">> (In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c71">comment #71</a>) > > Vector3D class has 3 coords (x,y,z). You can also simply call it 'Vector' > > Vector4D class has 4 homogeneous coords (x,y,z,w). You can also call it > > 'HVector', where H stands for Homogeneous. > > The name should be Point3D, for consistency with 2D points. > > Point3D and Point4D sound like the best approaches for now.</span > I don't know what's the plan with 2D points, but I feel that it's best to pick names that reflect the difference between affine (x,y,z) and homogeneous (x,y,z,w) coordinates. Homogeneous means that we're doing projective geometry i.e. (x,y,z,w) is the same point as (a*x,a*y,a*z,a*w) for any nonzero a. So maybe my suggestion of Vector4D vs Vector3D was not good, as it wrongly suggests that the only difference is the number of coords.</div></div><div class="change-set" id="c75"><div class="comment" data-id="5532948" data-no="75" data-tags=""> <table class="layout-table change-head " id="ch-75" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-75" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-75" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c75">Comment 75</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:33 PDT" data-time="1308098013">13 years ago</span> </div> </td> </tr> <tr id="ctag-75"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-75" data-comment-id="5532948">Well then, Point3D vs HPoint3D?</div></div><div class="change-set" id="c76"><div class="comment" data-id="5532957" data-no="76" data-tags=""> <table class="layout-table change-head " id="ch-76" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-76" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-76" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c76">Comment 76</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:36 PDT" data-time="1308098180">13 years ago</span> </div> </td> </tr> <tr id="ctag-76"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-76" data-comment-id="5532957">Why not. Or maybe PointH3D. Instead of H for homogeneous, the difference can also be represented by a P for Projective. (note: i've been assuming that we wanted to have a class for points with (x,y,z,w) projective coordinates, I don't know exactly what the needs here are, I'm not implying we should).</div></div><div class="change-set" id="c77"><div class="comment" data-id="5532984" data-no="77" data-tags=""> <table class="layout-table change-head " id="ch-77" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-77" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-77" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c77">Comment 77</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:46 PDT" data-time="1308098779">13 years ago</span> </div> </td> </tr> <tr id="ctag-77"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-77" data-comment-id="5532984">HPoint3D, PPoint3D, PointH3D, PointP3D ... all work for me. Someone pick one.</div></div><div class="change-set" id="c78"><div class="comment" data-id="5533001" data-no="78" data-tags=""> <table class="layout-table change-head " id="ch-78" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a53326420_251051"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-78" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-78" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c78">Comment 78</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-14 17:54 PDT" data-time="1308099253">13 years ago</span> </div> </td> </tr> <tr id="ctag-78"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-78" data-comment-id="5533001">PointH3D it is then.</div></div><div class="change-set" id="c79"><div class="comment" data-id="5547262" data-no="79" data-tags=""> <table class="layout-table change-head assignee" id="ch-79" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-79" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-79" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c79">Comment 79</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:09 PDT" data-time="1308708558">13 years ago</span> </div> </td> </tr> <tr id="ctag-79"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540952" class="attachment patch" data-id="540952" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="untransform-points"> <meta itemprop="contentSize" content="7788"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540952"> <a class="link" href="attachment.cgi?id=540952&action=diff"> <span id="att-540952-description" itemprop="description">Part 8a: Add BasePoint3D and gfxPoint3D</span></a> — <a href="attachment.cgi?id=540952&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540952">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-79" data-comment-id="5547262"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538995&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2" class="" >Attachment #538995</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=540952&action=edit" title="Part 8a: Add BasePoint3D and gfxPoint3D" class="" >Attachment #540952</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=538995&action=edit" title="Part 8: Add ray tracing to untransform 2d points on a 3d plane v2" class="" >Attachment #538995</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c80"><div class="comment" data-id="5547263" data-no="80" data-tags=""> <table class="layout-table change-head assignee" id="ch-80" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-80" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-80" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c80">Comment 80</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:10 PDT" data-time="1308708610">13 years ago</span> </div> </td> </tr> <tr id="ctag-80"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540953" class="attachment patch" data-id="540953" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="untransform-matrix"> <meta itemprop="contentSize" content="4726"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540953"> <a class="link" href="attachment.cgi?id=540953&action=diff"> <span id="att-540953-description" itemprop="description">Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix</span></a> — <a href="attachment.cgi?id=540953&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540953">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-80" data-comment-id="5547263"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix" class="" >Attachment #540953</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c81"><div class="comment" data-id="5547264" data-no="81" data-tags=""> <table class="layout-table change-head assignee" id="ch-81" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-81" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-81" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c81">Comment 81</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:10 PDT" data-time="1308708658">13 years ago</span> </div> </td> </tr> <tr id="ctag-81"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540954" class="attachment patch" data-id="540954" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="untransform-3d"> <meta itemprop="contentSize" content="15297"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540954"> <a class="link" href="attachment.cgi?id=540954&action=diff"> <span id="att-540954-description" itemprop="description">Part 8c: Use ray tracing to untransform 2d points on a 3d plane.</span></a> — <a href="attachment.cgi?id=540954&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540954">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-81" data-comment-id="5547264"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540954&action=edit" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane." class="" >Attachment #540954</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c82"><div class="comment" data-id="5547265" data-no="82" data-tags=""> <table class="layout-table change-head assignee" id="ch-82" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-82" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-82" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c82">Comment 82</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:11 PDT" data-time="1308708715">13 years ago</span> </div> </td> </tr> <tr id="ctag-82"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540955" class="attachment patch obsolete" data-id="540955" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="backface-visible"> <meta itemprop="contentSize" content="20358"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540955"> <a class="link" href="attachment.cgi?id=540955&action=diff"> <span id="att-540955-description" itemprop="description">Part 10 - Implement -moz-backface-visible</span></a> (obsolete) — <a href="attachment.cgi?id=540955&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540955">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-82" data-comment-id="5547265">s/gfx3DVector/gfxPoint3D</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538997&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #538997</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=540955&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #540955</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=538997&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #538997</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="c83"><div class="comment" data-id="5547266" data-no="83" data-tags=""> <table class="layout-table change-head assignee" id="ch-83" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-83" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-83" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c83">Comment 83</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:12 PDT" data-time="1308708779">13 years ago</span> </div> </td> </tr> <tr id="ctag-83"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540956" class="attachment patch obsolete" data-id="540956" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transform-origin-z"> <meta itemprop="contentSize" content="42064"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540956"> <a class="link" href="attachment.cgi?id=540956&action=diff"> <span id="att-540956-description" itemprop="description">Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin</span></a> (obsolete) — <a href="attachment.cgi?id=540956&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540956">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-83" data-comment-id="5547266"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=540956&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin" class="" >Attachment #540956</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=538998&action=edit" title="Part 11 - Make -moz-transform-origin also support a z component." class="" >Attachment #538998</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="c84"><div class="comment" data-id="5547267" data-no="84" data-tags=""> <table class="layout-table change-head assignee" id="ch-84" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-84" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-84" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c84">Comment 84</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:13 PDT" data-time="1308708823">13 years ago</span> </div> </td> </tr> <tr id="ctag-84"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540957" class="attachment patch" data-id="540957" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transform-origin-z-layout"> <meta itemprop="contentSize" content="7831"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540957"> <a class="link" href="attachment.cgi?id=540957&action=diff"> <span id="att-540957-description" itemprop="description">Part 11b: Layout changes to use a z component for -moz-transform-origin</span></a> — <a href="attachment.cgi?id=540957&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540957">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-84" data-comment-id="5547267"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540957&action=edit" title="Part 11b: Layout changes to use a z component for -moz-transform-origin" class="" >Attachment #540957</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c85"><div class="comment" data-id="5547269" data-no="85" data-tags=""> <table class="layout-table change-head assignee" id="ch-85" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-85" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-85" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c85">Comment 85</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:14 PDT" data-time="1308708876">13 years ago</span> </div> </td> </tr> <tr id="ctag-85"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540958" class="attachment patch obsolete" data-id="540958" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="perspective-origin"> <meta itemprop="contentSize" content="19656"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540958"> <a class="link" href="attachment.cgi?id=540958&action=diff"> <span id="att-540958-description" itemprop="description">Part 12a: Implement -moz-perspective-origin style property.</span></a> (obsolete) — <a href="attachment.cgi?id=540958&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540958">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-85" data-comment-id="5547269"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538999&action=edit" title="Part 12 - Implement -moz-perspective-origin." class="" >Attachment #538999</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=540958&action=edit" title="Part 12a: Implement -moz-perspective-origin style property." class="" >Attachment #540958</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=538999&action=edit" title="Part 12 - Implement -moz-perspective-origin." class="" >Attachment #538999</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c86"><div class="comment" data-id="5547271" data-no="86" data-tags=""> <table class="layout-table change-head assignee" id="ch-86" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-86" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-86" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c86">Comment 86</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:15 PDT" data-time="1308708936">13 years ago</span> </div> </td> </tr> <tr id="ctag-86"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-540959" class="attachment patch" data-id="540959" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="perspective-origin-layout"> <meta itemprop="contentSize" content="5276"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=540959"> <a class="link" href="attachment.cgi?id=540959&action=diff"> <span id="att-540959-description" itemprop="description">Part 12b: Layout changes to use -moz-perspective-origin</span></a> — <a href="attachment.cgi?id=540959&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-86" data-comment-id="5547271"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin" class="" >Attachment #540959</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c87"><div class="comment" data-id="5547272" data-no="87" data-tags=""> <table class="layout-table change-head assignee" id="ch-87" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-87" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-87" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c87">Comment 87</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-21 19:16 PDT" data-time="1308708979">13 years ago</span> </div> </td> </tr> <tr id="ctag-87"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-87" data-comment-id="5547272">Comment on <span class=""><a href="/attachment.cgi?id=540957" name="attach_540957" title="Part 11b: Layout changes to use a z component for -moz-transform-origin">attachment 540957</a> <a href="/attachment.cgi?id=540957&action=edit" title="Part 11b: Layout changes to use a z component for -moz-transform-origin">[details]</a> <a href="/attachment.cgi?id=540957&action=diff" title="Part 11b: Layout changes to use a z component for -moz-transform-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540957'>[review]</a> Part 11b: Layout changes to use a z component for -moz-transform-origin Carrying forward r=roc</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540957&action=edit" title="Part 11b: Layout changes to use a z component for -moz-transform-origin" class="" >Attachment #540957</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c88"><div class="comment" data-id="5549384" data-no="88" data-tags=""> <table class="layout-table change-head " id="ch-88" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-88" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-88" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c88">Comment 88</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-22 14:31 PDT" data-time="1308778283">13 years ago</span> </div> </td> </tr> <tr id="ctag-88"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-88" data-comment-id="5549384">Comment on <span class=""><a href="/attachment.cgi?id=540952" name="attach_540952" title="Part 8a: Add BasePoint3D and gfxPoint3D">attachment 540952</a> <a href="/attachment.cgi?id=540952&action=edit" title="Part 8a: Add BasePoint3D and gfxPoint3D">[details]</a> <a href="/attachment.cgi?id=540952&action=diff" title="Part 8a: Add BasePoint3D and gfxPoint3D">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540952'>[review]</a> Part 8a: Add BasePoint3D and gfxPoint3D Review of <span class=""><a href="/attachment.cgi?id=540952" name="attach_540952" title="Part 8a: Add BasePoint3D and gfxPoint3D">attachment 540952</a> <a href="/attachment.cgi?id=540952&action=edit" title="Part 8a: Add BasePoint3D and gfxPoint3D">[details]</a> <a href="/attachment.cgi?id=540952&action=diff" title="Part 8a: Add BasePoint3D and gfxPoint3D">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540952'>[review]</a>: ----------------------------------------------------------------- ::: gfx/src/BasePoint3D.h @@ +62,5 @@ <span class="quote">> + bool operator==(const Sub& aPoint) const { > + return x == aPoint.x && y == aPoint.y && z == aPoint.z; > + } > + bool operator!=(const Sub& aPoint) const { > + return x != aPoint.x || y != aPoint.y || z != aPoint.z;</span > For future reference, I usually find it easier and safer to write !(*this == aOther), but you needn't bother changing it.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540952&action=edit" title="Part 8a: Add BasePoint3D and gfxPoint3D" class="" >Attachment #540952</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c89"><div class="comment" data-id="5549490" data-no="89" data-tags=""> <table class="layout-table change-head " id="ch-89" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-89" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-89" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c89">Comment 89</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-22 14:54 PDT" data-time="1308779692">13 years ago</span> </div> </td> </tr> <tr id="ctag-89"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-89" data-comment-id="5549490">Comment on <span class=""><a href="/attachment.cgi?id=540953" name="attach_540953" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">attachment 540953</a> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[details]</a> <a href="/attachment.cgi?id=540953&action=diff" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540953'>[review]</a> Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix Review of <span class=""><a href="/attachment.cgi?id=540953" name="attach_540953" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">attachment 540953</a> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[details]</a> <a href="/attachment.cgi?id=540953&action=diff" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540953'>[review]</a>: ----------------------------------------------------------------- ::: gfx/thebes/gfx3DMatrix.h @@ +117,5 @@ <span class="quote">> + */ > + gfxPoint3D Transform3D(const gfxPoint3D& point) const; > + > + gfxPoint ProjectPoint(const gfxPoint& aPoint) const; > + gfxRect ProjectRect(const gfxRect& aRect) const;</span > Call this ProjectRectBounds since it takes the bounding rect.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix" class="" >Attachment #540953</a> - Flags: superreview+</div><div class="change"> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix" class="" >Attachment #540953</a> - Flags: <span class="activity-deleted">review?(roc)</span></div><div class="change"> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix" class="" >Attachment #540953</a> - Flags: review?(bjacob)</div></div></div><div class="change-set" id="c90"><div class="comment" data-id="5549548" data-no="90" data-tags=""> <table class="layout-table change-head " id="ch-90" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-90" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-90" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c90">Comment 90</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-22 15:16 PDT" data-time="1308781016">13 years ago</span> </div> </td> </tr> <tr id="ctag-90"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-90" data-comment-id="5549548">Comment on <span class=""><a href="/attachment.cgi?id=540954" name="attach_540954" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">attachment 540954</a> <a href="/attachment.cgi?id=540954&action=edit" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">[details]</a> <a href="/attachment.cgi?id=540954&action=diff" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540954'>[review]</a> Part 8c: Use ray tracing to untransform 2d points on a 3d plane. Review of <span class=""><a href="/attachment.cgi?id=540954" name="attach_540954" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">attachment 540954</a> <a href="/attachment.cgi?id=540954&action=edit" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">[details]</a> <a href="/attachment.cgi?id=540954&action=diff" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540954'>[review]</a>: ----------------------------------------------------------------- ::: layout/base/nsLayoutUtils.h @@ +512,5 @@ <span class="quote">> + > + > + static nsRect InvertRectToAncestor(nsIFrame* aFrame, > + const nsRect& aRect, > + nsIFrame* aStopAtAncestor);</span > InvertRectToAncestorBounds? InvertRectBoundsToAncestor? Why not just TransformRectToBoundsInAncestor?</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540954&action=edit" title="Part 8c: Use ray tracing to untransform 2d points on a 3d plane." class="" >Attachment #540954</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c91"><div class="comment" data-id="5549608" data-no="91" data-tags=""> <table class="layout-table change-head " id="ch-91" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-91" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-91" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c91">Comment 91</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-22 15:38 PDT" data-time="1308782315">13 years ago</span> </div> </td> </tr> <tr id="ctag-91"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-91" data-comment-id="5549608">Comment on <span class=""><a href="/attachment.cgi?id=540959" name="attach_540959" title="Part 12b: Layout changes to use -moz-perspective-origin">attachment 540959</a> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin">[details]</a> <a href="/attachment.cgi?id=540959&action=diff" title="Part 12b: Layout changes to use -moz-perspective-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959'>[review]</a> Part 12b: Layout changes to use -moz-perspective-origin Review of <span class=""><a href="/attachment.cgi?id=540959" name="attach_540959" title="Part 12b: Layout changes to use -moz-perspective-origin">attachment 540959</a> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin">[details]</a> <a href="/attachment.cgi?id=540959&action=diff" title="Part 12b: Layout changes to use -moz-perspective-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959'>[review]</a>: ----------------------------------------------------------------- ::: layout/base/nsDisplayList.cpp @@ +2389,5 @@ <span class="quote">> + } > + > + /* Default position of perspective-origin is in the centre of the element */ > + result.x -= NSAppUnitsToFloatPixels(boundingRect.width, aFactor)/2; > + result.y -= NSAppUnitsToFloatPixels(boundingRect.height, aFactor)/2;</span > This seems wrong. The initial value of the property is 50% 50%, and this should be what's in "display" by default, so why do we need to calculate it again? @@ +2394,5 @@ <span class="quote">> + > + result.x = -result.x; > + result.y = -result.y; > + > + return result;</span > return -result;</div></div><div class="change-set" id="c92"><div class="comment" data-id="5549651" data-no="92" data-tags=""> <table class="layout-table change-head assignee" id="ch-92" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-92" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-92" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c92">Comment 92</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-22 15:53 PDT" data-time="1308783192">13 years ago</span> </div> </td> </tr> <tr id="ctag-92"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-92" data-comment-id="5549651"> <span class="quote">> > + > > + /* Default position of perspective-origin is in the centre of the element */ > > + result.x -= NSAppUnitsToFloatPixels(boundingRect.width, aFactor)/2; > > + result.y -= NSAppUnitsToFloatPixels(boundingRect.height, aFactor)/2; > > This seems wrong. The initial value of the property is 50% 50%, and this > should be what's in "display" by default, so why do we need to calculate it > again? > </span > A value of (0,0) has the effect of applying perspective with the vanishing point in the centre of the object. So we need to adjust the point so that (50%, 50%) returns (0,0). Excluding possible typos, this is what WebKit does and it appears to look correct.</div></div><div class="change-set" id="c93"><div class="comment" data-id="5552279" data-no="93" data-tags=""> <table class="layout-table change-head " id="ch-93" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-93" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-93" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c93">Comment 93</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-23 14:09 PDT" data-time="1308863384">13 years ago</span> </div> </td> </tr> <tr id="ctag-93"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-93" data-comment-id="5552279">Comment on <span class=""><a href="/attachment.cgi?id=540959" name="attach_540959" title="Part 12b: Layout changes to use -moz-perspective-origin">attachment 540959</a> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin">[details]</a> <a href="/attachment.cgi?id=540959&action=diff" title="Part 12b: Layout changes to use -moz-perspective-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959'>[review]</a> Part 12b: Layout changes to use -moz-perspective-origin Review of <span class=""><a href="/attachment.cgi?id=540959" name="attach_540959" title="Part 12b: Layout changes to use -moz-perspective-origin">attachment 540959</a> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin">[details]</a> <a href="/attachment.cgi?id=540959&action=diff" title="Part 12b: Layout changes to use -moz-perspective-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540959'>[review]</a>: -----------------------------------------------------------------</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540959&action=edit" title="Part 12b: Layout changes to use -moz-perspective-origin" class="" >Attachment #540959</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c94"><div class="comment" data-id="5555185" data-no="94" data-tags=""> <table class="layout-table change-head " id="ch-94" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a53326420_251051"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-94" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-94" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c94">Comment 94</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-24 14:56 PDT" data-time="1308952591">13 years ago</span> </div> </td> </tr> <tr id="ctag-94"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-94" data-comment-id="5555185">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537017" name="attach_537017" title="Part 6: Implement the 3d -moz-transform functions">attachment 537017</a> <a href="/attachment.cgi?id=537017&action=edit" title="Part 6: Implement the 3d -moz-transform functions">[details]</a> <a href="/attachment.cgi?id=537017&action=diff" title="Part 6: Implement the 3d -moz-transform functions">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537017'>[review]</a> Part 6: Implement the 3d -moz-transform functions So this treats translateZ() the Z component of translate3d() differently from what the spec says: the spec says it's a <length> rather than a <number>. What does WebKit do? ParseSingleTransforms argument should be aIs3D rather than is3d; I spent a while trying to figure out what is3D was used for before realizing it was an out-param. That said, rather than having a separate switch statement inside ParseSingleTransform, I think you should just pass aIs3D into GetFunctionParseInformation and set it there for each case. In ParseMozTransform: * you really really really should cache this preference somewhere rather than getting it every time * your introduction of |prev| doesn't appear to be used for anything; remove it I'm going to wait to look at the nsStyleTransformMatrix stuff in this patch until going through the other one again...</div></div><div class="change-set" id="c95"><div class="comment" data-id="5568890" data-no="95" data-tags=""> <table class="layout-table change-head assignee" id="ch-95" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-95" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-95" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c95">Comment 95</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-06-30 22:03 PDT" data-time="1309496599">13 years ago</span> </div> </td> </tr> <tr id="ctag-95"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-95" data-comment-id="5568890">Thanks dbaron, I'll fix those and upload a new patch soon. I'm currently stuck on calcuating overflow areas/visible regions etc for layers with -moz-preserve-3d set. Consider the (relatively) simple case of Parent Frame - preserve3d - rotateY(90deg) - Child Frame 1 - No transform - Child Frame 2 - RotateY(90deg). The current GetBounds implementation calls GetBounds on each child, Union()'s the result and then transforms it into local coordinate space. This returns a 0 sized area since Child Frame 2 (CF2) is essentially singular in 2d space, as is Parent Frame (PF). My solution for finding the bounds of PF, is to instead apply the transformation to each child's GetBounds() result and create a Union of these areas. In the case where the preserve-3d flag is set, and the specific child is also an nsDisplayTransform, we skip the transformation step. When calculating the transformation to use in an nsDisplayTransform, we check for parent frames with preserve-3d and multiply the transforms together. In short CF2::GetBounds() is returning an area in PF's coordinate space instead of it's own. The piece I'm stuck on is what to return for CF2::GetBounds() when not being used as a component of PF::GetBounds(). Can I just always return an area in the parents coordinate system? The 'actual' bounds of CF2 is 0 sized, and results in the object not being drawn. I believe HitTest, ComputeVisibility and FinishAndStoreOverflow are essentially the same problem. For FinishAndStoreOverflow, will storing the area in parents coordinate space cause the frame size for the parent to be changed? We don't want to transform it again. Ideas appreciated :)</div></div><div class="change-set" id="c96"><div class="comment" data-id="5569290" data-no="96" data-tags=""> <table class="layout-table change-head " id="ch-96" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-96" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-96" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c96">Comment 96</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-01 05:05 PDT" data-time="1309521947">13 years ago</span> </div> </td> </tr> <tr id="ctag-96"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-96" data-comment-id="5569290">preserve-3d always confuses me. Can we pretend the parent frame simply has no transform at all, and propagate its transform down to its children every time we compute the used transform value?</div></div><div class="change-set" id="c97"><div class="comment" data-id="5572563" data-no="97" data-tags=""> <table class="layout-table change-head assignee" id="ch-97" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-97" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-97" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c97">Comment 97</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-04 06:45 PDT" data-time="1309787101">13 years ago</span> </div> </td> </tr> <tr id="ctag-97"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-97" data-comment-id="5572563">I might be able to do this for some cases. Where does the size value come from for nsIFrame::FinishAndStoreOverflow? The problem is that children that *don't* have a transform need to be transfomed, yet children that do can probably include the transform with theirs and transform themselves. If the area given to FinishAndStoreOverflow is the sum of the child areas, then sections of it would need to be transformed, while others not. I'm not sure how to achieve this.</div></div><div class="change-set" id="c98"><div class="comment" data-id="5572669" data-no="98" data-tags=""> <table class="layout-table change-head " id="ch-98" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-98" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-98" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c98">Comment 98</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-04 08:14 PDT" data-time="1309792459">13 years ago</span> </div> </td> </tr> <tr id="ctag-98"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-98" data-comment-id="5572669">aNewSize is computed by Reflow(), it's the border-box size which is about to be returned for the frame by Reflow(). It has not yet been set on the frame. It does *not* include child areas. aOverflowAreas contains the visual and scrollable overflow areas for this frame, which includes those areas for the child frames. But if you need to, you can recompute the child frames' contribution by iterating over all child frames and asking for their overflow areas, then transforming them, then you can add that back in to the passed-in aOverflowAreas.</div></div><div class="change-set" id="c99"><div class="comment" data-id="5576995" data-no="99" data-tags=""> <table class="layout-table change-head assignee" id="ch-99" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-99" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-99" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c99">Comment 99</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-06 11:53 PDT" data-time="1309978432">13 years ago</span> </div> </td> </tr> <tr id="ctag-99"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-99" data-comment-id="5576995">I'm still struggling with the handling of preserve-3d. Slow progress is slow. I had an idea for another possible approach to solving this: Given a frame structure like: parent frame - preserves3d - rotatey(90deg) - child frame - rotatey(90deg) - child frame - not transformed The current code will generate a display item tree that looks like: nsDisplayTransform - rotatey(90deg) - preserve3d - nsDisplayTransform - rotatey(90deg) - nsDisplayText - whatever this content was Is it instead possible to generate: nsDisplayList - nsDisplayTransform - rotatey(180deg) - nsDisplayTransform - rotatey(90deg) - nsDisplayText - contentcontentcontent This looks like it will show the correct rendering for this limited example (not sure if nsDisplayList is the correct 'container') and won't require any changes in visibility calculation, hit testing etc. Are there any problems with this approach that I'm missing?</div></div><div class="change-set" id="c100"><div class="comment" data-id="5577662" data-no="100" data-tags=""> <table class="layout-table change-head " id="ch-100" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-100" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-100" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c100">Comment 100</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-06 16:08 PDT" data-time="1309993681">13 years ago</span> </div> </td> </tr> <tr id="ctag-100"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-100" data-comment-id="5577662">That sounds good. So if you have parent frame - preserves3d - rotatey(90deg) - child frame - opacity:0.5 - child frame - not transformed - child frame - rotatey(90deg) - child frame - not transformed You'd build nsDisplayList - nsDisplayOpacity - opacity:0.5 - nsDisplayTransform - rotatey(90deg) - nsDisplayText - contentcontentcontent - nsDisplayTransform - rotatey(180deg) - nsDisplayTransform - rotatey(90deg) - nsDisplayText - contentcontentcontent ?</div></div><div class="change-set" id="c101"><div class="comment" data-id="5577675" data-no="101" data-tags=""> <table class="layout-table change-head " id="ch-101" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-101" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-101" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c101">Comment 101</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-06 16:15 PDT" data-time="1309994122">13 years ago</span> </div> </td> </tr> <tr id="ctag-101"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-101" data-comment-id="5577675">I think that approach should work, and I think it shouldn't be too hard to implement. In BuildDisplayListForStackingContext, when the frame has preserves-3d, you can walk the child display list and do whatever surgery you want to do.</div></div><div class="change-set" id="c102"><div class="comment" data-id="5577803" data-no="102" data-tags=""> <table class="layout-table change-head " id="ch-102" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a53326420_251051"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-102" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-102" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c102">Comment 102</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-06 17:31 PDT" data-time="1309998665">13 years ago</span> </div> </td> </tr> <tr id="ctag-102"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-102" data-comment-id="5577803">I guess you would walk the display items in the child list: -- for any nsDisplayTransforms, just fold in the extra transform from the parent -- for any nsDisplayOpacity or nsDisplayWrapList, recursively walk over the children (since opacity commutes with transforms) -- for any nsDisplayClip ... I dunno! Introduce a new nsDisplayClipPath which generalizes nsDisplayClipRoundedRect and can clip to an arbitrary path, and transform the rectangle to a quad, replace the nsDisplayClip with an nsDisplayClipPath for that quad, and recursively walk over the children? FrameLayerBuilder would have to know about nsDisplayClipPath. This could probably be done as a followup bug, if we do it at all, since preserving 3D through clipping is reasonably esoteric -- for any other display item, wrap it in an nsDisplayTransform with the parent's transform</div></div><div class="change-set" id="c103"><div class="comment" data-id="5583190" data-no="103" data-tags=""> <table class="layout-table change-head assignee" id="ch-103" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a53326420_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a53326420_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-103" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-103" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c103">Comment 103</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-09 21:24 PDT" data-time="1310271842">13 years ago</span> </div> </td> </tr> <tr id="ctag-103"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-103" data-comment-id="5583190">I have good news and bad news. This approach seems to work fairly well, I've got it working and rendering the safari 'poster circle' demo correctly. The problem (found by looking at some of the other safari demos) is that animations/transitions of preserve-3d needs to take the child transformation into account. Example: Parent - -moz-transition: -moz-transform 2s; - preserve3d - transformed Child - transformed. If we change the transformation on the child, it should transition over 2 seconds. I'm not sure how to implement this without moving the preserve-3d handling further down again, onto the actual frames. Will think about this further.</div><div class="activity"><div class="change">Component: Style System (CSS) → SVG</div></div></div><div class="change-set" id="a62251708_380838"><div class="change" id="aa62251708_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251708_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251708_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a62251708_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a62251708_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a62251708_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-09 21:31 PDT" data-time="1310272284">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Assignee: matt.woodrow+bugzilla → nobody</div><div class="change">Component: SVG → Style System (CSS)</div></div></div><div class="change-set" id="a62251744_380838"><div class="change" id="aa62251744_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a62251744_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a62251744_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a62251744_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-09 21:32 PDT" data-time="1310272320">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Assignee: nobody → matt.woodrow+bugzilla</div></div></div><div class="change-set" id="c104"><div class="comment" data-id="5583344" data-no="104" data-tags=""> <table class="layout-table change-head " id="ch-104" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a62251744_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-104" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-104" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c104">Comment 104</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-10 04:39 PDT" data-time="1310297948">13 years ago</span> </div> </td> </tr> <tr id="ctag-104"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-104" data-comment-id="5583344">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c103">comment #103</a>) <span class="quote">> The problem (found by looking at some of the other safari demos) is that > animations/transitions of preserve-3d needs to take the child transformation > into account. > > Example: > > Parent - -moz-transition: -moz-transform 2s; - preserve3d - transformed > Child - transformed. > > If we change the transformation on the child, it should transition over 2 > seconds.</span > Surely this is a Webkit bug? That behavior makes no sense to me.</div></div><div class="change-set" id="c105"><div class="comment" data-id="5592669" data-no="105" data-tags=""> <table class="layout-table change-head " id="ch-105" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-105" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-105" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c105">Comment 105</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-14 17:17 PDT" data-time="1310689059">13 years ago</span> </div> </td> </tr> <tr id="ctag-105"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-105" data-comment-id="5592669">So what's the plan here with the preference and how we enable this? Patch 6 introduces a preference for 3D transforms, defaulting to off. Is there going to be a situation where, on some machines, we have the ability to use graphics capabilities that make doing 3D transforms reasonable, and on others we don't? When we enable 3D transforms, do you expect we'll be able to enable it reasonably across all machines, or will we need to enable it only on some of them?</div></div><div class="change-set" id="c106"><div class="comment" data-id="5592793" data-no="106" data-tags=""> <table class="layout-table change-head " id="ch-106" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a62251744_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-106" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-106" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c106">Comment 106</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-14 18:44 PDT" data-time="1310694260">13 years ago</span> </div> </td> </tr> <tr id="ctag-106"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-106" data-comment-id="5592793">It depends on the use-case. The software implementation is presumably a lot slower, but it might be OK for some kinds of usage.</div></div><div class="change-set" id="c107"><div class="comment" data-id="5595321" data-no="107" data-tags=""> <table class="layout-table change-head assignee" id="ch-107" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-107" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-107" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c107">Comment 107</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-16 23:28 PDT" data-time="1310884085">13 years ago</span> </div> </td> </tr> <tr id="ctag-107"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-107" data-comment-id="5595321">The rapid release guidlines (as I understand them) encourage the use of the preferences to disable new features if needed. I am working on a software rendering implementation, performance of this is yet to be tested. I want to land code with the preference disabled so we can get some user testing, with lower risk of regressions. Do you have any ETA on being able to review the first few of these patches? Parts 3-5 seem the most likely to cause regressions (and can't be trivially turned off/backed out), so I'd like to get these baking on m-c as soon as possible (and before they bitrot).</div></div><div class="change-set" id="c108"><div class="comment" data-id="5600251" data-no="108" data-tags=""> <table class="layout-table change-head " id="ch-108" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-108" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-108" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c108">Comment 108</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 14:51 PDT" data-time="1311112313">13 years ago</span> </div> </td> </tr> <tr id="ctag-108"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-108" data-comment-id="5600251">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537013" name="attach_537013" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5">attachment 537013</a> <a href="/attachment.cgi?id=537013&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5">[details]</a> <a href="/attachment.cgi?id=537013&action=diff" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537013'>[review]</a> Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5 Why does gfx3DMatrix use |float| when gfxMatrix uses |double|? It seems like these ought to be consistent with each other, at least. I suspect this is responsible for the various rounding errors this patch introduces (especially since the code in nsComputedDOMStyle is using gfxMatrix, and is therefore using nsString::AppendFloat(double) rather than nsString::AppendFloat(float). <span class="quote">>+ PRBool IsIdentity() const { >+ return xx == 1.0f && yx == 0.0f && >+ xy == 0.0f && yy == 1.0f && >+ x0 == 0.0f && y0 == 0.0f; >+ }</span > Drop the 'f' suffixes, since xx, yx, etc., are double rather than float. <span class="quote">>- (newOrigin + toMozOrigin, disp->mTransform.GetThebesMatrix(bounds, aFactor)); >+ (newOrigin + toMozOrigin, nsStyleTransformMatrix::ReadTransforms(disp->mSpecifiedTransform, >+ aFrame->GetStyleContext(), >+ aFrame->PresContext(), >+ dummy, bounds, aFactor));</span > Find a way to wrap before the 80th column. <span class="quote">>+ const gfxMatrix& newTransformMatrix = GetTransform(mFrame->PresContext()->AppUnitsPerDevPixel());</span > Break after the = to fit within 80 columns. It would be really nice if nsDisplayTransform::BuildLayer didn't need to use AppUnitsPerDevPixel() (unlike all the other callers) and thus require the mCachedFactor business. Might be nice to clean that up in a followup. nsCSSValueList::CloneExisting() is a confusing name for what you've done. Instad, call it CloneInto, since it's the *argument* that receives the clone. Also add a comment to nsCSSValue.h saying what it does. Finally, reuse Clone() so that the contents of the method are just: aList->mValue = mValue; aList->mNext = mNext ? mNext->Clone() : nsnull; which also fixes the bug in your implementation that it doesn't overwrite a non-null next pointer with a null one. Finally, make it assert at the start that aList->mNext is null (otherwise it would leak). nsComputedDOMStyle.cpp: As I said above, I think it's bogus to serialize these numbers as doubles when they're stored as float accuracy. Patch 5 doesn't fix this, either. Furthermore, something in this patch series needs to make the 3-D parts of the matrix show up in computed style by serializing to matrix3d rather than just matrix, at least in 3D cases. I'd have expected that in patch 5 or 6 (probably 6?), but it doesn't seem to be there. <span class="quote">>+ /* Now, we need to convert the matrix into a string.</span > Not useful; remove the comment. nsStyleAnimation.cpp: Rather than inserting "squareDistance += 42", I propose that instead you replace the entire eUnit_Transform case within nsStyleAnimation::ComputeDistance with "return PR_FALSE;", and simultaneously remove the check_distance call in test_transform_transition() in layout/style/test/test_transitions_per_property.html . Please document AddTransformMatrix as taking gfxMatrix parameters in CSS pixels (in .h and .cpp), since it produces eCSSUnit_Pixel output based on the translation coordinates in the gfx matrix. I'm still trying to figure out if nsStyleTransformMatrix::ProcessInterpolateMatrix has a scaling error here (when dev pixels != css pixels). ... WRITE MORE HERE ... In AddDifferentTransformLists: <span class="quote">>+ nsCSSValueList* list = arr->Item(2).SetListValue(); >+ aList1->CloneExisting(list);</span > I think this is clearer on one line (especially if CloneExisting is renamed to CloneInto): aList1->CloneInto(arr->Item(2).SetListValue()); <span class="quote">>+ ///XXX: If the matrix contains only numbers then we could decompose here. >+ // If it contains % values, I think we can too, less sure about >+ // calc values though.</span > A bunch of things here: - first line goes past column 80 - use "// FIXME:" rather than "///XXX:". - % and calc() are pretty much equivalent; it's the same for both. - However, I'd add that dealing with % and calc() is not possible with matrix3d(), and having consistency between matrix() and matrix3d() is valuable <span class="quote">> while ((*resultTail)->mNext) { >- resultTail = &(*resultTail)->mNext; >+ resultTail = &(*resultTail)->mNext; > }</span > Leave this as it was. nsStyleAnimation.h: Please forward-declare gfxMatrix rather than including the header. nsStyleStruct.cpp: - if (mTransform != aOther.mTransform) + if (mSpecifiedTransform != aOther.mSpecifiedTransform) This should be !mSpecifiedTransform != !aOther.mSpecifiedTransform || (mSpecifiedTransform && *mSpecifiedTransform != *aOther.mSpecifiedTransform) since you want deep comparison of the lists rather than pointers. nsStyleTransformMatrix.cpp: Could you rename the aFactor param to pretty much everything to be called aAppUnitsPerMatrixUnit or something like that? Otherwise I think it's not clear that it can be used to create a matrix in either device or CSS pixels. Furthermore, you need to fix the comments above SetToTransformFunction in the .h file -- that currently says it requires device pixels, but most of the time you actually give it CSS pixels. Really, it picks which units the matrix is in terms of. (That said, as I said above, I think it would be good to clean up that inconsistency.) Please wrap the last line of ProcessTranslatePart. In nsStyleTransformMatrix::ProcessMatrix could you call the matrix result rather than temp? <span class="quote">>+ nsAutoPtr<nsCSSValueList> result; >+ nsCSSValueList **resultTail = getter_Transfers(result); >+ >+ *resultTail = nsStyleAnimation::AddTransformMatrix(matrix1, coeff1, >+ matrix2, coeff2);</span > Instead, write: nsAutoPtr<nsCSSValueList> result(nsStyleAnimation::AddTransformMatrix( matrix1, coeff1, matrix2, coeff2)); That said, this is rather silly -- AddTransformMatrix now painstakingly builds up a list from its decomposed data only to have its only caller immediately decompose that list. AddTransformMatrix should probably just return another matrix. Maybe you do that in a later patch...? If not, could you do it as another patch on top of this queue, if not just in this one? I hope all the gfx3DMatrix return values from nsStyleTransformMatrix::Process* don't lead to too much struct copying. Have you checked? <span class="quote">>- ProcessSkewHelper(xSkew, ySkew, aMain); >+ return ProcessSkewHelper(xSkew, ySkew);;</span > No double ;, please. Could you rename SetToTransformFunction to MatrixForTransformFunction? r=dbaron with all of that fixed</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537013&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5" class="" >Attachment #537013</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c109"><div class="comment" data-id="5600301" data-no="109" data-tags=""> <table class="layout-table change-head " id="ch-109" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-109" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-109" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c109">Comment 109</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 15:05 PDT" data-time="1311113128">13 years ago</span> </div> </td> </tr> <tr id="ctag-109"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-109" data-comment-id="5600301">Also, even after patch 5, I think there are still some pieces that are awkwardly 2-D only (like animation). That'll need to be fixed before this is enabled, but it's ok for now.</div></div><div class="change-set" id="c110"><div class="comment" data-id="5600308" data-no="110" data-tags=""> <table class="layout-table change-head " id="ch-110" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a62251744_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-110" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-110" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c110">Comment 110</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 15:06 PDT" data-time="1311113184">13 years ago</span> </div> </td> </tr> <tr id="ctag-110"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-110" data-comment-id="5600308">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c108">comment #108</a>) <span class="quote">> Why does gfx3DMatrix use |float| when gfxMatrix uses |double|? It seems > like these ought to be consistent with each other, at least. I suspect > this is responsible for the various rounding errors this patch > introduces (especially since the code in nsComputedDOMStyle is using > gfxMatrix, and is therefore using nsString::AppendFloat(double) rather > than nsString::AppendFloat(float).</span > gfxMatrix is double because that's what cairo uses. I think gfx3DMatrix uses floats because they're far better supported on GPUs than doubles.</div></div><div class="change-set" id="c111"><div class="comment" data-id="5600337" data-no="111" data-tags=""> <table class="layout-table change-head assignee" id="ch-111" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-111" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-111" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c111">Comment 111</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 15:16 PDT" data-time="1311113810">13 years ago</span> </div> </td> </tr> <tr id="ctag-111"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-111" data-comment-id="5600337">Yep, we use floats matrices for both OpenGL and D3D*. I think the loss of precision is probably better than creating a gfxDouble3DMatrix and converting back to floats at draw time, but I'm open to suggestions. Animations are definitely awkward with this patch, but I have a followup patch in my queue that implements these properly. Was the " ... WRITE MORE HERE ..." comment meant to be removed or is still an intentional placeholder? Thanks for the review dbaron!</div></div><div class="change-set" id="c112"><div class="comment" data-id="5600356" data-no="112" data-tags=""> <table class="layout-table change-head " id="ch-112" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-112" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-112" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c112">Comment 112</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 15:24 PDT" data-time="1311114255">13 years ago</span> </div> </td> </tr> <tr id="ctag-112"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-112" data-comment-id="5600356">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c111">comment #111</a>) <span class="quote">> Was the " ... WRITE MORE HERE ..." comment meant to be removed or is still > an intentional placeholder?</span > Er, yeah, one of us should figure out if there's actually a bug there, though it sort of looks like it to me.</div></div><div class="change-set" id="c113"><div class="comment" data-id="5600569" data-no="113" data-tags=""> <table class="layout-table change-head " id="ch-113" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-113" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-113" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c113">Comment 113</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 16:46 PDT" data-time="1311119162">13 years ago</span> </div> </td> </tr> <tr id="ctag-113"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-113" data-comment-id="5600569">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=537017" name="attach_537017" title="Part 6: Implement the 3d -moz-transform functions">attachment 537017</a> <a href="/attachment.cgi?id=537017&action=edit" title="Part 6: Implement the 3d -moz-transform functions">[details]</a> <a href="/attachment.cgi?id=537017&action=diff" title="Part 6: Implement the 3d -moz-transform functions">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=537017'>[review]</a> Part 6: Implement the 3d -moz-transform functions ...continued from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c94">comment 94</a>. We should add support for number values on translatex(), translatey(), translate(), translate3d(), and the last 2 parts of matrix() -- and treat them as pixels. You should do that as part of this bug -- otherwise this patch leaves things in an oddly inconsistent state. <span class="quote">>+ /* There are several cases to consider. >+ * Next, the values might be lengths, or they might be percents. If they're >+ * percents, store them in the dX and dY components. Otherwise, store them in >+ * the main matrix. >+ */</span > You copied this from somewhere, but it no longer belongs. If the original is still there, delete that too. <span class="quote">>+ temp._11 = 1 + (1 - cosTheta) * (x * x - 1); >+ temp._12 = -z * sinTheta + (1 - cosTheta) * x * y; >+ temp._13 = y * sinTheta + (1 - cosTheta) * x * z; >+ temp._14 = 0.0f; >+ temp._21 = z * sinTheta + (1 - cosTheta) * x * y; >+ temp._22 = 1 + (1 - cosTheta) * (y * y - 1); >+ temp._23 = -x * sinTheta + (1 - cosTheta) * y * z; >+ temp._24 = 0.0f; >+ temp._31 = -y * sinTheta + (1 - cosTheta) * x * z; >+ temp._32 = x * sinTheta + (1 - cosTheta) * y * z; >+ temp._33 = 1 + (1 - cosTheta) * (z * z - 1); >+ temp._34 = 0.0f; >+ temp._41 = 0.0f; >+ temp._42 = 0.0f; >+ temp._43 = 0.0f; >+ temp._44 = 0.0f;</span > According to the spec _44 should be 1.0f, not 0.0f. <span class="quote">>+ case eCSSKeyword_scale3d: >+ return ProcessScale3D(aData); > case eCSSKeyword_scale: > return ProcessScale(aData);</span > Could you stick scale3d() after scale() for consistency with the rest? r=dbaron with that fixed, though I probably want to look at the pref caching code once you address that</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537017&action=edit" title="Part 6: Implement the 3d -moz-transform functions" class="" >Attachment #537017</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c114"><div class="comment" data-id="5600571" data-no="114" data-tags=""> <table class="layout-table change-head " id="ch-114" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-114" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-114" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c114">Comment 114</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 16:46 PDT" data-time="1311119205">13 years ago</span> </div> </td> </tr> <tr id="ctag-114"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-114" data-comment-id="5600571">(Note that the number values thing is probably easiest as a separate patch -- if you merge it with an existing one I'd want to review it.)</div></div><div class="change-set" id="c115"><div class="comment" data-id="5600748" data-no="115" data-tags=""> <table class="layout-table change-head " id="ch-115" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-115" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-115" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c115">Comment 115</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 18:21 PDT" data-time="1311124867">13 years ago</span> </div> </td> </tr> <tr id="ctag-115"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-115" data-comment-id="5600748">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=538996" name="attach_538996" title="Part 9 - Implement the perspective() transform function and style property.">attachment 538996</a> <a href="/attachment.cgi?id=538996&action=edit" title="Part 9 - Implement the perspective() transform function and style property.">[details]</a> <a href="/attachment.cgi?id=538996&action=diff" title="Part 9 - Implement the perspective() transform function and style property.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=538996'>[review]</a> Part 9 - Implement the perspective() transform function and style property. <span class="quote">><a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115">Bug 505115</a> - Part 9 - Implement the perspective() transform function and style property. try: -b d -p linux -u mochitest-4 -t none</span > You don't want try syntax in your commit message. I'd also write it as: Implement the perspective() transform function and the perspective CSS property. As per patch 6, I think you should cache the pref (which also has value in encapsulating the "are 3d transforms enabled" decision to one place, which could be valuable if it's more than just a pref check in future). <span class="quote">>+CSS_PROP_DISPLAY( >+ -moz-perspective, >+ _moz_perspective, >+ CSS_PROP_DOMPROP_PREFIXED(Perspective), >+ CSS_PROPERTY_PARSE_VALUE, >+ VARIANT_NONE|VARIANT_INHERIT|VARIANT_NUMBER, >+ kDisplayKTable, >+ offsetof(nsStyleDisplay, mChildPerspective), >+ eStyleAnimType_float)</span > _moz_perspective -> perspective (don't prefix internals) kDisplayKTable -> nsnull put spaces around the |s The mPerspective and mChildPerspective stuff is really broken -- it's going to produce incorrect results in a lot of cases due to your code not disabling sharing in cases where you'd need to disable sharing. Rather than explain the whole thing, I'm just going to say you should rip it out. Make the style struct contain the computed value of the property for that element (what's now mChildPerspective). When you want the parent's perspective, look at parentFrame->GetStyleContext->GetParent()->GetStyleDisplay()->mPerspective (except you'll need to null-check the GetParent() call). I didn't really look too closely at rest of the code (though the whole thing with the perspective transform function seems pretty weird to me -- I haven't dug into that), since this is pretty clearly wrong and needs substantial reworking because of the mPerspective/mChildPerspective thing being broken.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538996&action=edit" title="Part 9 - Implement the perspective() transform function and style property." class="" >Attachment #538996</a> - Flags: review?(dbaron) → review-</div></div></div><div class="change-set" id="c116"><div class="comment" data-id="5600752" data-no="116" data-tags=""> <table class="layout-table change-head " id="ch-116" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-116" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-116" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c116">Comment 116</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 18:22 PDT" data-time="1311124971">13 years ago</span> </div> </td> </tr> <tr id="ctag-116"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-116" data-comment-id="5600752">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c115">comment #115</a>) <span class="quote">> When you want > the parent's perspective, look at > parentFrame->GetStyleContext->GetParent()->GetStyleDisplay()->mPerspective > (except you'll need to null-check the GetParent() call).</span > er, I meant frame->GetStyleContext()->GetParent() (not parentFrame -- otherwise you'd be walking up twice).</div></div><div class="change-set" id="c117"><div class="comment" data-id="5600916" data-no="117" data-tags=""> <table class="layout-table change-head " id="ch-117" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-117" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-117" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c117">Comment 117</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-19 21:41 PDT" data-time="1311136880">13 years ago</span> </div> </td> </tr> <tr id="ctag-117"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-117" data-comment-id="5600916">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=540955" name="attach_540955" title="Part 10 - Implement -moz-backface-visible">attachment 540955</a> <a href="/attachment.cgi?id=540955&action=edit" title="Part 10 - Implement -moz-backface-visible">[details]</a> <a href="/attachment.cgi?id=540955&action=diff" title="Part 10 - Implement -moz-backface-visible">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540955'>[review]</a> Part 10 - Implement -moz-backface-visible <span class="quote">><a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115">Bug 505115</a> - Part 9 - Implement the perspective() transform function and style property.</span > How about calling it Part 10, and using an appropriate commit message for part 10. <span class="quote">>+CSS_PROP_DISPLAY( >+ -moz-backface-visibility, >+ _moz_backface_visibility, >+ CSS_PROP_DOMPROP_PREFIXED(BackfaceVisibility), >+ CSS_PROPERTY_PARSE_VALUE, >+ VARIANT_HK, >+ kBackfaceVisibilityKTable, >+ offsetof(nsStyleDisplay, mBackfaceVisible), >+ eStyleAnimType_EnumU8)</span > _moz_backface_visibility -> backface_visibility (don't prefix internals) Please call the member of nsStyleDisplay mBackfaceVisibility to match the property name rather than calling it mBackfaceVisible. <span class="quote">>+#define NS_STYLE_BACKFACE_VISIBLE 1 >+#define NS_STYLE_BACKFACE_HIDDEN 0</span > The convention here suggests you should insert VISIBILITY_ into these names (since they're property-value). <span class="quote">>+ COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_backface_visibility, MozBackfaceVisibility),</span > This isn't layout-dependent, drop the "_LAYOUT". I'm puzzled by the nsStyleAnimation changes -- I don't see anything in the transitions or 3d transform specs saying the property is transitionable. If it is, though, I'd have expected it to work like 'visibility'... which seems to be what you test for, despite doing the code entirely differently. What does WebKit do? If the goal is to work like visibility, why not do it the same way in nsStyleAnimation? In nsStyleDisplay::CalcDifference, why is reflow required? I'd have expected repaint and maybe layer stuff. In property_database.js, please test that "collapse" is not an accepted value (put it in invalid_values). (That's the value for 'visibility' that's not valid here.) <span class="quote">>+ // Convert to two vectors on the surface of the plane. >+ gfxPoint3D ab = a - b; >+ gfxPoint3D ac = a - c; >+ >+ return ab.CrossProduct(ac);</span > I find this a little confusing. ab is the *negative* of the transformation of the unit Y axis vector, and ac is the *negative* of the transformation of the unit X axis vector. It seems clearer to use b-a and c-a. Also, it seems really weird that your definition of "normal vector" is something that, with no transformation, points along the negative Z axis. Is this some standard terminology, or would it make more sense to take ac.CrossProduct(ab)? I presume you've tested that this matches WebKit in the case of scaleZ(-1). The spec seems totally unclear, and it ought to be clarified (i.e., that it's the results of transforming the X and Y axes that matter, rather than the result of transforming the Z axis). One of us should email www-style about that. <span class="quote">>+ gfxPoint3D normal = newTransformMatrix.GetNormalVector(); >+ if (newTransformMatrix.IsSingular() || >+ (mFrame->GetStyleDisplay()->mBackfaceVisible == NS_STYLE_BACKFACE_HIDDEN && >+ normal.DotProduct(gfxPoint3D(0,0,1)) >= 0.0)) { >+ return nsnull; >+ }</span > Seems better to skip the variable |normal| and just put the whole expression inside the if(). Also, don't use two spaces before the ==. Also, just check if normal.z >= 0 and skip the DotProduct(). And if you change GetNormalVector() to work the way that makes sense to me, make it <= 0 here :-) And please add a comment in gfx3DMatrix.h saying what GetNormalVector does. Marking as review- because I'd like to look at this again for the animation issues; otherwise I'd be fine with you making the changes without my looking again.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540955&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #540955</a> - Flags: review?(dbaron) → review-</div></div></div><div class="change-set" id="c118"><div class="comment" data-id="5602514" data-no="118" data-tags=""> <table class="layout-table change-head " id="ch-118" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-118" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-118" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c118">Comment 118</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-20 12:32 PDT" data-time="1311190327">13 years ago</span> </div> </td> </tr> <tr id="ctag-118"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-118" data-comment-id="5602514">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=540956" name="attach_540956" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin">attachment 540956</a> <a href="/attachment.cgi?id=540956&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin">[details]</a> <a href="/attachment.cgi?id=540956&action=diff" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540956'>[review]</a> Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin <span class="quote">>+ if (CheckEndProperty() || !ParseVariant(depth, VARIANT_AHL, nsnull) || !allow3D) {</span > VARIANT_AHL is wrong; as far as I can tell it should just be VARIANT_LENGTH | VARIANT_CALC. Additionally, you should explicitly not look for a third value if the first value has unit inherit or initial. Also, wrap before the 80th column. You need (again) to cache the preference. I'd probably have preferred use of nsCSSValue::Array over creating nsCSSValueTriplet, but I suppose I can live with this approach. In nsCSSValue.h, could you make Triplet 51, and bump the current 51-56, to be consistent with the order you use in the code? You need to add a case to nsCSSValue::operator==, which you missed. I'm concerned that you serialize (in the specified value serialization; the computed value serialization is fine, and also has fewer constraints about needing to be faithful to what was specified) a transform-origin without a third value by adding that value, since we've generally tried to serialize to the most supported (i.e., oldest) syntax. One way to do that is to use the eCSSUnit_Null on the Z value to distinguish these cases; I think that would require adjusting a few assertions (nsCSSValue::SetTripletValue's assertion about null)... though assertions already inconsistent with what's handled in nsCSSValueTriplet::AppendToString. (The animation code can still maintain the invariant that the third value is non-null... though when the resulting value is zero it should *set* is as null.) There are probably other options for handling this as well, but that's the way that seems obvious to me. In nsCSSValue.h: <span class="quote">>+ nsCSSValueTriplet(const nsCSSValue& aXValue, const nsCSSValue& aYValue, const nsCSSValue& aZValue) >+ : mXValue(aXValue), mYValue(aYValue), mZValue(aZValue)</span > Please wrap before column 80. In nsRuleNode.cpp, don't give SetTripletCoords a general name; it's specific to transform origin since it has special treatment of the Z component. I tend to think it's probably best to inline it into the caller. nsStyleAnimation.cpp: I'd like to look at this more closely after you address the serialization stuff with the third value. A little more sharing of code that you're copying from the pair case would be nice, though. nsStyleStruct.h: <span class="quote">>- nsStyleCoord mTransformOrigin[2]; // [reset] percent, coord, calc >+ nsStyleCoord mTransformOrigin[3]; // [reset] percent, coord, calc</span > comment should explain that the third value can't be a percent I'd like to look at this again once you address the third-value serialization issue, so marking review-.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540956&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin" class="" >Attachment #540956</a> - Flags: review?(dbaron) → review-</div></div></div><div class="change-set" id="c119"><div class="comment" data-id="5602769" data-no="119" data-tags=""> <table class="layout-table change-head " id="ch-119" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a62251744_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-119" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-119" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c119">Comment 119</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-20 13:55 PDT" data-time="1311195331">13 years ago</span> </div> </td> </tr> <tr id="ctag-119"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-119" data-comment-id="5602769">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=540958" name="attach_540958" title="Part 12a: Implement -moz-perspective-origin style property.">attachment 540958</a> <a href="/attachment.cgi?id=540958&action=edit" title="Part 12a: Implement -moz-perspective-origin style property.">[details]</a> <a href="/attachment.cgi?id=540958&action=diff" title="Part 12a: Implement -moz-perspective-origin style property.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540958'>[review]</a> Part 12a: Implement -moz-perspective-origin style property. <span class="quote">>diff --git a/dom/interfaces/css/nsIDOMCSS2Properties.idl b/dom/interfaces/css/nsIDOMCSS2Properties.idl</span > You need to bump the IID here. (And I forgot to mention that for 2 other patches, but it applies there too!) <span class="quote">>+PRBool CSSParserImpl::ParseMozPerspectiveOrigin()</span > The indentation of this function is weird. Also, I think you should share ParseMozTransformOrigin and add a property argument (and use it for whether to do the third value), rather than have two separate almost-identical functions. <span class="quote">> CSS_PROP_DISPLAY( >+ -moz-perspective-origin, >+ _moz_perspective_origin,</span > No _moz_ here, again. <span class="quote">>+ CSS_PROP_DOMPROP_PREFIXED(PerspectiveOrigin), >+ CSS_PROPERTY_PARSE_FUNCTION | >+ CSS_PROPERTY_STORES_CALC,</span > Please indent the line after the | following local style. <span class="quote">>+ COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_perspective_origin, MozPerspectiveOrigin),</span > The use of _LAYOUT here is correct (unlike the last time, when I pointed out it was wrong). Just pointing out that you shouldn't change this one too. nsRuleNode.cpp: Please match the local 2-space indent. property_database.js: Indentation here is wacky. r=dbaron with that fixed</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540958&action=edit" title="Part 12a: Implement -moz-perspective-origin style property." class="" >Attachment #540958</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c120"><div class="comment" data-id="5608240" data-no="120" data-tags=""> <table class="layout-table change-head assignee" id="ch-120" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-120" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-120" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c120">Comment 120</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-22 14:51 PDT" data-time="1311371511">13 years ago</span> </div> </td> </tr> <tr id="ctag-120"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-120" data-comment-id="5608240">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c108">comment #108</a>) <span class="quote">> > nsComputedDOMStyle.cpp: > > As I said above, I think it's bogus to serialize these numbers as > doubles when they're stored as float accuracy. > > Patch 5 doesn't fix this, either.</span > I've added this to patch 5 now. <span class="quote">> > Furthermore, something in this patch series needs to make the 3-D parts > of the matrix show up in computed style by serializing to matrix3d > rather than just matrix, at least in 3D cases. I'd have expected that > in patch 5 or 6 (probably 6?), but it doesn't seem to be there.</span > This is currently in a much later part of the patch queue, I can split this out and bring it forward if needed. <span class="quote">> > >+ /* Now, we need to convert the matrix into a string. > > Not useful; remove the comment. > > nsStyleAnimation.cpp: > > Rather than inserting "squareDistance += 42", I propose that instead you > replace the entire eUnit_Transform case within > nsStyleAnimation::ComputeDistance with "return PR_FALSE;", and > simultaneously remove the check_distance call in > test_transform_transition() in > layout/style/test/test_transitions_per_property.html .</span > Alright, done! <span class="quote">> > That said, this is rather silly -- AddTransformMatrix now painstakingly > builds up a list from its decomposed data only to have its only caller > immediately decompose that list. AddTransformMatrix should probably > just return another matrix. Maybe you do that in a later patch...? If > not, could you do it as another patch on top of this queue, if not just > in this one?</span > Good point, made this this change too. <span class="quote">> > I hope all the gfx3DMatrix return values from > nsStyleTransformMatrix::Process* don't lead to too much struct copying. > Have you checked?</span > Looking at the assembly for my debug mac build, it appears that it is constructing the temporary gfx3DMatrix objects directly into a pointer passed by the caller, and not copying the result at all.</div></div><div class="change-set" id="c121"><div class="comment" data-id="5608247" data-no="121" data-tags=""> <table class="layout-table change-head assignee" id="ch-121" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-121" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-121" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c121">Comment 121</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-22 14:53 PDT" data-time="1311371604">13 years ago</span> </div> </td> </tr> <tr id="ctag-121"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-547812" class="attachment patch" data-id="547812" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-style-matrix"> <meta itemprop="contentSize" content="88000"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=547812"> <a class="link" href="attachment.cgi?id=547812&action=diff"> <span id="att-547812-description" itemprop="description">Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v6</span></a> — <a href="attachment.cgi?id=547812&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=547812">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-121" data-comment-id="5608247">Fixed review comments, and rebased against tip.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537013&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v5" class="" >Attachment #537013</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=547812&action=edit" title="Part 3: Convert nsStyleTransformMatrix to be backed by a 4x4 matrix v6" class="" >Attachment #547812</a> - Flags: review+</div></div></div><div class="change-set" id="c122"><div class="comment" data-id="5608251" data-no="122" data-tags=""> <table class="layout-table change-head assignee" id="ch-122" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-122" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-122" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c122">Comment 122</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-22 14:54 PDT" data-time="1311371693">13 years ago</span> </div> </td> </tr> <tr id="ctag-122"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-547813" class="attachment patch" data-id="547813" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="use-3d-matrix"> <meta itemprop="contentSize" content="40065"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=547813"> <a class="link" href="attachment.cgi?id=547813&action=diff"> <span id="att-547813-description" itemprop="description">Part 5: Use gfx3DMatrix in layout v4</span></a> — <a href="attachment.cgi?id=547813&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=547813">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-122" data-comment-id="5608251">Fixed serialization of gfx3DMatrix objects to stay as floats. Rebased against tip/Part 3 changes. Carrying forward r=roc</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537014&action=edit" title="Part 4: Upgrade gfx3DMatrix v3" class="" >Attachment #537014</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=547813&action=edit" title="Part 5: Use gfx3DMatrix in layout v4" class="" >Attachment #547813</a> - Flags: review+</div></div></div><div class="change-set" id="c123"><div class="comment" data-id="5608366" data-no="123" data-tags=""> <table class="layout-table change-head assignee" id="ch-123" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-123" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-123" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c123">Comment 123</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-22 15:33 PDT" data-time="1311374033">13 years ago</span> </div> </td> </tr> <tr id="ctag-123"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-123" data-comment-id="5608366">Landed parts 3-5 on inbound <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/7e16ec834b15">http://hg.mozilla.org/integration/mozilla-inbound/rev/7e16ec834b15</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/92bd75756f43">http://hg.mozilla.org/integration/mozilla-inbound/rev/92bd75756f43</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/89f90f9fac80">http://hg.mozilla.org/integration/mozilla-inbound/rev/89f90f9fac80</a></div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed][not-ready-for-cedar] → [approved-patches-landed][inbound]</div></div></div><div class="change-set" id="c124"><div class="comment" data-id="5610206" data-no="124" data-tags=""> <table class="layout-table change-head assignee" id="ch-124" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-124" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-124" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c124">Comment 124</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:46 PDT" data-time="1311558391">13 years ago</span> </div> </td> </tr> <tr id="ctag-124"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548074" class="attachment patch" data-id="548074" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-transform-functions"> <meta itemprop="contentSize" content="31180"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548074"> <a class="link" href="attachment.cgi?id=548074&action=diff"> <span id="att-548074-description" itemprop="description">Part 6: Implement the 3d -moz-transform functions v2</span></a> — <a href="attachment.cgi?id=548074&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548074">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-124" data-comment-id="5610206">Fixed review comments, including caching the preference. Carrying forward r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537016&action=edit" title="Part 5: Use gfx3DMatrix in layout v3" class="" >Attachment #537016</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=537017&action=edit" title="Part 6: Implement the 3d -moz-transform functions" class="" >Attachment #537017</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548074&action=edit" title="Part 6: Implement the 3d -moz-transform functions v2" class="" >Attachment #548074</a> - Flags: review+</div></div></div><div class="change-set" id="c125"><div class="comment" data-id="5610207" data-no="125" data-tags=""> <table class="layout-table change-head assignee" id="ch-125" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-125" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-125" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c125">Comment 125</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:48 PDT" data-time="1311558515">13 years ago</span> </div> </td> </tr> <tr id="ctag-125"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548075" class="attachment patch" data-id="548075" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="fixy-fix-fix"> <meta itemprop="contentSize" content="4575"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548075"> <a class="link" href="attachment.cgi?id=548075&action=diff"> <span id="att-548075-description" itemprop="description">Part 7: Layers support for 3d transforms v2</span></a> — <a href="attachment.cgi?id=548075&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548075">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-125" data-comment-id="5610207">Rebased against tip/previous changes. Carrying forward r=roc</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=537018&action=edit" title="Part 7: Layers support for 3d transforms" class="" >Attachment #537018</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548075&action=edit" title="Part 7: Layers support for 3d transforms v2" class="" >Attachment #548075</a> - Flags: review+</div></div></div><div class="change-set" id="c126"><div class="comment" data-id="5610208" data-no="126" data-tags=""> <table class="layout-table change-head assignee" id="ch-126" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-126" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-126" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c126">Comment 126</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:50 PDT" data-time="1311558615">13 years ago</span> </div> </td> </tr> <tr id="ctag-126"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548076" class="attachment patch obsolete" data-id="548076" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-perspective"> <meta itemprop="contentSize" content="19682"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548076"> <a class="link" href="attachment.cgi?id=548076&action=diff"> <span id="att-548076-description" itemprop="description">Part 9 - Implement the perspective() transform function and style property. v2</span></a> (obsolete) — <a href="attachment.cgi?id=548076&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548076">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-126" data-comment-id="5610208">Fixed review comments and changed handling of perspective() function to match the spec properly.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=538996&action=edit" title="Part 9 - Implement the perspective() transform function and style property." class="" >Attachment #538996</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548076&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v2" class="" >Attachment #548076</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c127"><div class="comment" data-id="5610210" data-no="127" data-tags=""> <table class="layout-table change-head assignee" id="ch-127" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-127" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-127" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c127">Comment 127</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:52 PDT" data-time="1311558779">13 years ago</span> </div> </td> </tr> <tr id="ctag-127"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548077" class="attachment patch" data-id="548077" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="backface-visible"> <meta itemprop="contentSize" content="18413"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548077"> <a class="link" href="attachment.cgi?id=548077&action=diff"> <span id="att-548077-description" itemprop="description">Part 10 - Implement -moz-backface-visible v2</span></a> — <a href="attachment.cgi?id=548077&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548077">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-127" data-comment-id="5610210">Fixed review comments, removed animations code entirely.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540955&action=edit" title="Part 10 - Implement -moz-backface-visible" class="" >Attachment #540955</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548077&action=edit" title="Part 10 - Implement -moz-backface-visible v2" class="" >Attachment #548077</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c128"><div class="comment" data-id="5610212" data-no="128" data-tags=""> <table class="layout-table change-head assignee" id="ch-128" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-128" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-128" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c128">Comment 128</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:55 PDT" data-time="1311558940">13 years ago</span> </div> </td> </tr> <tr id="ctag-128"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548078" class="attachment patch" data-id="548078" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transform-origin-z"> <meta itemprop="contentSize" content="45591"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548078"> <a class="link" href="attachment.cgi?id=548078&action=diff"> <span id="att-548078-description" itemprop="description">Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2</span></a> — <a href="attachment.cgi?id=548078&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548078">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-128" data-comment-id="5610212">Fixed review comments</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540956&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin" class="" >Attachment #540956</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548078&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2" class="" >Attachment #548078</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c129"><div class="comment" data-id="5610214" data-no="129" data-tags=""> <table class="layout-table change-head assignee" id="ch-129" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-129" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-129" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c129">Comment 129</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 18:56 PDT" data-time="1311559019">13 years ago</span> </div> </td> </tr> <tr id="ctag-129"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548079" class="attachment patch" data-id="548079" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="perspective-origin"> <meta itemprop="contentSize" content="21631"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548079"> <a class="link" href="attachment.cgi?id=548079&action=diff"> <span id="att-548079-description" itemprop="description">Part 12a: Implement -moz-perspective-origin style property. v2</span></a> — <a href="attachment.cgi?id=548079&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548079">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-129" data-comment-id="5610214">Fixed review comments, carrying forward r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540958&action=edit" title="Part 12a: Implement -moz-perspective-origin style property." class="" >Attachment #540958</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548079&action=edit" title="Part 12a: Implement -moz-perspective-origin style property. v2" class="" >Attachment #548079</a> - Flags: review+</div></div></div><div class="change-set" id="c130"><div class="comment" data-id="5610215" data-no="130" data-tags=""> <table class="layout-table change-head assignee" id="ch-130" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-130" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-130" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c130">Comment 130</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 19:00 PDT" data-time="1311559200">13 years ago</span> </div> </td> </tr> <tr id="ctag-130"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548080" class="attachment patch obsolete" data-id="548080" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="actually-reftest"> <meta itemprop="contentSize" content="21262"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548080"> <a class="link" href="attachment.cgi?id=548080&action=diff"> <span id="att-548080-description" itemprop="description">Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo</span></a> (obsolete) — <a href="attachment.cgi?id=548080&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548080">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-130" data-comment-id="5610215">Initial set of basic tests for 3d transforms, that really don't test enough yet. Still thinking of more ideas to test perspective etc.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548080&action=edit" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo" class="" >Attachment #548080</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c131"><div class="comment" data-id="5610220" data-no="131" data-tags=""> <table class="layout-table change-head assignee" id="ch-131" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-131" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-131" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c131">Comment 131</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 19:05 PDT" data-time="1311559549">13 years ago</span> </div> </td> </tr> <tr id="ctag-131"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548083" class="attachment patch" data-id="548083" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="preserve-3d"> <meta itemprop="contentSize" content="16170"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548083"> <a class="link" href="attachment.cgi?id=548083&action=diff"> <span id="att-548083-description" itemprop="description">Part 14a: Add -moz-transform-style CSS property</span></a> — <a href="attachment.cgi?id=548083&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548083">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-131" data-comment-id="5610220"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548083&action=edit" title="Part 14a: Add -moz-transform-style CSS property" class="" >Attachment #548083</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c132"><div class="comment" data-id="5610239" data-no="132" data-tags=""> <table class="layout-table change-head assignee" id="ch-132" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-132" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-132" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c132">Comment 132</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 19:57 PDT" data-time="1311562655">13 years ago</span> </div> </td> </tr> <tr id="ctag-132"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548084" class="attachment patch obsolete" data-id="548084" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="preserve-3d-for-realz"> <meta itemprop="contentSize" content="36841"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548084"> <a class="link" href="attachment.cgi?id=548084&action=diff"> <span id="att-548084-description" itemprop="description">Part 14b: Layout changes for preserve-3d</span></a> (obsolete) — <a href="attachment.cgi?id=548084&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548084">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-132" data-comment-id="5610239"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548084&action=edit" title="Part 14b: Layout changes for preserve-3d" class="" >Attachment #548084</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c133"><div class="comment" data-id="5610243" data-no="133" data-tags=""> <table class="layout-table change-head assignee" id="ch-133" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-133" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-133" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c133">Comment 133</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 20:16 PDT" data-time="1311563778">13 years ago</span> </div> </td> </tr> <tr id="ctag-133"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-133" data-comment-id="5610243">The preserve-3d patches raises a few interesting question, which also probably need to go through www-style. The depth sorting in the spec is very vague, although this is intentional I think it needs to be clarified. Currently I've implemented sorting based on the z translate component of the matrix (same as Chromium does/did). One interesting case is elements that contain the preserve-3d flag, but no actual transform. Webkit is treating these as still 'transformed' and is including any parent perspective into child transforms. This could also be considered as having children of a preserve-3d frame being brought up into the frame space (if that makes sense). The other problem case is where there is multiple levels of preserve-3d (such as the WebKit poster circle demo). This has 12 elements transformed into a ring, 3 rings transformed into a cylinder, and the whole cylinder rotates. My depth sorting code arranges elements within a single ring correctly, and each ring correctly, but elements can still weirdly overlap between rings. WebKit appears to be sorting all 36 elements by depth, which seems to go against the fact that a transform creates a stacking context/containing block I'm not sure what the correct behaviour should be, but I this needs to be clarified in the spec.</div></div><div class="change-set" id="c134"><div class="comment" data-id="5610258" data-no="134" data-tags=""> <table class="layout-table change-head assignee" id="ch-134" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a62251744_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-134" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-134" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c134">Comment 134</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-24 20:40 PDT" data-time="1311565235">13 years ago</span> </div> </td> </tr> <tr id="ctag-134"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548086" class="attachment patch obsolete" data-id="548086" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="quaternions-and-friends"> <meta itemprop="contentSize" content="28523"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548086"> <a class="link" href="attachment.cgi?id=548086&action=diff"> <span id="att-548086-description" itemprop="description">Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions</span></a> (obsolete) — <a href="attachment.cgi?id=548086&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548086">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-134" data-comment-id="5610258"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions" class="" >Attachment #548086</a> - Flags: review?(tterribe)</div></div></div><div class="change-set" id="c135"><div class="comment" data-id="5610806" data-no="135" data-tags=""> <table class="layout-table change-head " id="ch-135" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_240353" id="a62251744_380838"><img src="https://secure.gravatar.com/avatar/0d674a646529b0795088d7a8075fbaea?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_240353" id="a62251744_380838"><a class="email " href="/user_profile?user_id=240353" > <span class="fna">Marco Bonardo [:mak]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-135" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-135" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c135">Comment 135</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-25 06:09 PDT" data-time="1311599390">13 years ago</span> </div> </td> </tr> <tr id="ctag-135"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-135" data-comment-id="5610806">part 3 <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/7e16ec834b15">http://hg.mozilla.org/mozilla-central/rev/7e16ec834b15</a> part 4 <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/92bd75756f43">http://hg.mozilla.org/mozilla-central/rev/92bd75756f43</a> part 5 <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/89f90f9fac80">http://hg.mozilla.org/mozilla-central/rev/89f90f9fac80</a></div></div><div class="change-set" id="a63597902_382769"><div class="change" id="aa63597902_382769"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a63597902_382769"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a63597902_382769"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a63597902_382769" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a63597902_382769"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a63597902_382769">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-25 11:27 PDT" data-time="1311618478">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix" class="" >Attachment #540953</a> - Flags: review?(bjacob) → review+</div></div></div><div class="change-set" id="c136"><div class="comment" data-id="5611637" data-no="136" data-tags=""> <table class="layout-table change-head " id="ch-136" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a63597902_382769"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a63597902_382769"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-136" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-136" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c136">Comment 136</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-25 11:35 PDT" data-time="1311618923">13 years ago</span> </div> </td> </tr> <tr id="ctag-136"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-136" data-comment-id="5611637">Comment on <span class=""><a href="/attachment.cgi?id=540953" name="attach_540953" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">attachment 540953</a> <a href="/attachment.cgi?id=540953&action=edit" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[details]</a> <a href="/attachment.cgi?id=540953&action=diff" title="Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=540953'>[review]</a> Part 8b: Add 3D Point support, and ray tracing to gfx3DMatrix <span class="quote">>+gfxRect gfx3DMatrix::ProjectRect(const gfxRect& aRect) const</span > It would be nice to add a comment explaining what is the rect returned by this function, since it's not just returning the transformed rect (that wouldn't be a gfxRect). If I understand the code correctly, it returns the smallest gfxRect containting the image of aRect under the transformation.</div></div><div class="change-set" id="c137"><div class="comment" data-id="5615466" data-no="137" data-tags=""> <table class="layout-table change-head assignee" id="ch-137" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63597902_382769"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63597902_382769"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-137" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-137" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c137">Comment 137</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-26 16:56 PDT" data-time="1311724570">13 years ago</span> </div> </td> </tr> <tr id="ctag-137"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548634" class="attachment patch obsolete" data-id="548634" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="quaternions-and-friends"> <meta itemprop="contentSize" content="28523"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548634"> <a class="link" href="attachment.cgi?id=548634&action=diff"> <span id="att-548634-description" itemprop="description">Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2</span></a> (obsolete) — <a href="attachment.cgi?id=548634&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548634">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-137" data-comment-id="5615466">Fixed a few bugs</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions" class="" >Attachment #548086</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548634&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2" class="" >Attachment #548634</a> - Flags: review?(tterribe)</div><div class="change"> <a href="/attachment.cgi?id=548086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions" class="" >Attachment #548086</a> - Flags: <span class="activity-deleted">review?(tterribe)</span></div></div></div><div class="change-set" id="c138"><div class="comment" data-id="5615469" data-no="138" data-tags=""> <table class="layout-table change-head assignee" id="ch-138" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63597902_382769"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63597902_382769"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-138" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-138" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c138">Comment 138</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-26 16:57 PDT" data-time="1311724634">13 years ago</span> </div> </td> </tr> <tr id="ctag-138"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548635" class="attachment patch obsolete" data-id="548635" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transitions"> <meta itemprop="contentSize" content="39030"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548635"> <a class="link" href="attachment.cgi?id=548635&action=diff"> <span id="att-548635-description" itemprop="description">Part 16 - Implement transitions/animations for 3d transforms.</span></a> (obsolete) — <a href="attachment.cgi?id=548635&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548635">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-138" data-comment-id="5615469"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms." class="" >Attachment #548635</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c139"><div class="comment" data-id="5615473" data-no="139" data-tags=""> <table class="layout-table change-head assignee" id="ch-139" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63597902_382769"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63597902_382769"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-139" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-139" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c139">Comment 139</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-26 16:58 PDT" data-time="1311724716">13 years ago</span> </div> </td> </tr> <tr id="ctag-139"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-548636" class="attachment patch obsolete" data-id="548636" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-tests"> <meta itemprop="contentSize" content="9197"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=548636"> <a class="link" href="attachment.cgi?id=548636&action=diff"> <span id="att-548636-description" itemprop="description">Part 17 - Add style tests for the new transform functions, and transitions</span></a> (obsolete) — <a href="attachment.cgi?id=548636&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548636">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-139" data-comment-id="5615473">Initial testing for 3d transitions/animations. I really need to add more tests here, working on it.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548636&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions" class="" >Attachment #548636</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="a63704206_380838"><div class="change" id="aa63704206_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63704206_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a63704206_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a63704206_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a63704206_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-26 16:59 PDT" data-time="1311724782">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms." class="" >Attachment #548635</a> - Flags: review?(tterribe)</div></div></div><div class="change-set" id="c140"><div class="comment" data-id="5622986" data-no="140" data-tags=""> <table class="layout-table change-head " id="ch-140" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a63704206_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-140" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-140" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c140">Comment 140</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-29 15:36 PDT" data-time="1311978980">13 years ago</span> </div> </td> </tr> <tr id="ctag-140"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-140" data-comment-id="5622986">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548076" name="attach_548076" title="Part 9 - Implement the perspective() transform function and style property. v2">attachment 548076</a> <a href="/attachment.cgi?id=548076&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v2">[details]</a> <a href="/attachment.cgi?id=548076&action=diff" title="Part 9 - Implement the perspective() transform function and style property. v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548076'>[review]</a> Part 9 - Implement the perspective() transform function and style property. v2 <span class="quote">>diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp</span > <span class="quote">>+#include "mozilla/Preferences.h"</span > No need for this include anymore. <span class="quote">>+ parentDisp->mChildPerspective != 0.0) {</span > Per spec, you should test > 0.0, since negative values should also lead to no perspective. <span class="quote">>+ const nsStyleDisplay* parentDisp = aFrame->GetParent()->GetStyleDisplay();</span > You should null-check the result of aFrame->GetParent() before calling GetStyleDisplay() on it. <span class="quote">>diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp >+nsIDOMCSSValue* >+nsComputedDOMStyle::DoGetMozPerspective() >+{ >+ nsROCSSPrimitiveValue* val = GetROCSSPrimitiveValue(); >+ val->SetNumber(GetStyleDisplay()->mChildPerspective); >+ return val;</span > Given that 'none' is the initial value, I think you should probably report '0' as 'none'. <span class="quote">>+ COMPUTED_STYLE_MAP_ENTRY_LAYOUT(perspective, MozPerspective),</span > Remove the "_LAYOUT". <span class="quote">>diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp >--- a/layout/style/nsRuleNode.cpp >+++ b/layout/style/nsRuleNode.cpp >@@ -4479,16 +4479,22 @@ nsRuleNode::ComputeDisplayData(void* aSt > parentDisplay->mTransformOrigin[0], > parentDisplay->mTransformOrigin[1], > SETCOORD_LPH | SETCOORD_INITIAL_HALF | > SETCOORD_BOX_POSITION | SETCOORD_STORE_CALC, > aContext, mPresContext, canStoreInRuleTree); > NS_ASSERTION(result, "Malformed -moz-transform-origin parse!"); > } > >+ SetFactor(*aRuleData->ValueForPerspective(), >+ display->mChildPerspective, canStoreInRuleTree, >+ parentDisplay->mChildPerspective, 0.0f, >+ SETFCT_NONE); >+ >+</span > No need for the double linebreak here. <span class="quote">>diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp >+ if (!(mChildPerspective == aOther.mChildPerspective))</span > Just use != rather than ! ( == ). <span class="quote">>diff --git a/layout/style/nsStyleTransformMatrix.cpp b/layout/style/nsStyleTransformMatrix.cpp >+ if (depth > 0.0f) { >+ temp._34 = -1.0/depth; >+ }</span > The spec says non-positive values should be rejected by the parser, so by this point you should be able to assert that depth > 0.0f -- though I'd hope you haven't done any double-to-float conversions since it was parsed! That said -- you need to add code to the parser to reject nonpositive values, since you're missing that code. <span class="quote">>diff --git a/layout/style/test/property_database.js b/layout/style/test/property_database.js >+ "-moz-perspective": { >+ domProp: "MozPerspective", >+ inherited: false, >+ type: CSS_TYPE_LONGHAND, >+ initial_values: [ "0" ],</span > you should add "none" here <span class="quote">>+ other_values: [ "1000", "500.2" ],</span > and add some negative values here <span class="quote">>+ invalid_values: [ "pants" ] >+ },</span > I'd also note that the spec says the perspective() function and the 'perspective' property take <length> rather than <number>. Which does WebKit do? Does the spec need to be fixed, or should you be changing this to accept lengths rather than numbers? Number does seem to make more sense to me. If the spec needs fixing, please email www-style. r=dbaron with that fixed</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548076&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v2" class="" >Attachment #548076</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c141"><div class="comment" data-id="5623377" data-no="141" data-tags=""> <table class="layout-table change-head assignee" id="ch-141" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63704206_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-141" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-141" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c141">Comment 141</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-29 20:58 PDT" data-time="1311998285">13 years ago</span> </div> </td> </tr> <tr id="ctag-141"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-141" data-comment-id="5623377">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c140">comment #140</a>) Thanks for the comments, fixed and running through tryserver now. <span class="quote">> > I'd also note that the spec says the perspective() function and the > 'perspective' property take <length> rather than <number>. Which does > WebKit do? Does the spec need to be fixed, or should you be changing this > to accept lengths rather than numbers? Number does seem to make more sense > to me. If the spec needs fixing, please email www-style.</span > Where does it say this? The document I've been referring to says <number>. <a rel="nofollow" href="http://www.w3.org/TR/css3-3d-transforms/#perspective">http://www.w3.org/TR/css3-3d-transforms/#perspective</a></div></div><div class="change-set" id="c142"><div class="comment" data-id="5623389" data-no="142" data-tags=""> <table class="layout-table change-head " id="ch-142" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a63704206_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-142" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-142" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c142">Comment 142</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-29 21:29 PDT" data-time="1312000198">13 years ago</span> </div> </td> </tr> <tr id="ctag-142"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-142" data-comment-id="5623389"><a rel="nofollow" href="http://dev.w3.org/csswg/css3-3d-transforms/">http://dev.w3.org/csswg/css3-3d-transforms/</a> is newer than that</div></div><div class="change-set" id="c143"><div class="comment" data-id="5623456" data-no="143" data-tags=""> <table class="layout-table change-head assignee" id="ch-143" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63704206_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-143" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-143" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c143">Comment 143</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-29 22:49 PDT" data-time="1312004948">13 years ago</span> </div> </td> </tr> <tr id="ctag-143"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-143" data-comment-id="5623456">Oh right, guess I've been reading the wrong thing :) Thanks for that, I'll switch to parsing lengths then! WebKit appears to be parsing lengths too.</div></div><div class="change-set" id="c144"><div class="comment" data-id="5623996" data-no="144" data-tags=""> <table class="layout-table change-head assignee" id="ch-144" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63704206_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-144" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-144" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c144">Comment 144</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-30 21:18 PDT" data-time="1312085929">13 years ago</span> </div> </td> </tr> <tr id="ctag-144"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-549620" class="attachment patch obsolete" data-id="549620" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-perspective"> <meta itemprop="contentSize" content="24151"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=549620"> <a class="link" href="attachment.cgi?id=549620&action=diff"> <span id="att-549620-description" itemprop="description">Part 9 - Implement the perspective() transform function and style property. v3</span></a> (obsolete) — <a href="attachment.cgi?id=549620&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=549620">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-144" data-comment-id="5623996">Fixed review comments. Requesting review again because of the number -> length changes.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548076&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v2" class="" >Attachment #548076</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=549620&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v3" class="" >Attachment #549620</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c145"><div class="comment" data-id="5624535" data-no="145" data-tags=""> <table class="layout-table change-head assignee" id="ch-145" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a63704206_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-145" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-145" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c145">Comment 145</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-31 16:55 PDT" data-time="1312156530">13 years ago</span> </div> </td> </tr> <tr id="ctag-145"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-549699" class="attachment patch" data-id="549699" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="3d-perspective"> <meta itemprop="contentSize" content="24269"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=549699"> <a class="link" href="attachment.cgi?id=549699&action=diff"> <span id="att-549699-description" itemprop="description">Part 9 - Implement the perspective() transform function and style property. v4</span></a> — <a href="attachment.cgi?id=549699&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=549699">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-145" data-comment-id="5624535">Fixed test failures.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=549620&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v3" class="" >Attachment #549620</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=549699&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v4" class="" >Attachment #549699</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=549620&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v3" class="" >Attachment #549620</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="c146"><div class="comment" data-id="5624551" data-no="146" data-tags=""> <table class="layout-table change-head " id="ch-146" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a63704206_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-146" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-146" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c146">Comment 146</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-31 17:25 PDT" data-time="1312158332">13 years ago</span> </div> </td> </tr> <tr id="ctag-146"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-146" data-comment-id="5624551">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548080" name="attach_548080" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">attachment 548080</a> <a href="/attachment.cgi?id=548080&action=edit" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">[details]</a> <a href="/attachment.cgi?id=548080&action=diff" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548080'>[review]</a> Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=548080" name="attach_548080" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">attachment 548080</a> <a href="/attachment.cgi?id=548080&action=edit" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">[details]</a> <a href="/attachment.cgi?id=548080&action=diff" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548080'>[review]</a>: ----------------------------------------------------------------- Instead of exposing whether 3D transforms are enabled, how about just making the tests conditional on GPU acceleration enabled (for now)? ::: layout/reftests/transform-3d/reftest.list @@ +23,5 @@ <span class="quote">> +== rotate3d-2a.html rotatey-1-ref.html > +!= backface-visibility-1a.html about:blank > +fails-if(!transforms3d) == backface-visibility-1b.html about:blank > +fails-if(!transforms3d) != perspective-origin-1a.html rotatex-perspective-1a.html > +== perspective-origin-1b.html perspective-origin-1a.html</span > Can you put these in alphabetical order?</div></div><div class="change-set" id="c147"><div class="comment" data-id="5624573" data-no="147" data-tags=""> <table class="layout-table change-head " id="ch-147" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a63704206_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a63704206_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-147" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-147" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c147">Comment 147</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-31 17:53 PDT" data-time="1312160023">13 years ago</span> </div> </td> </tr> <tr id="ctag-147"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-147" data-comment-id="5624573">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548084" name="attach_548084" title="Part 14b: Layout changes for preserve-3d">attachment 548084</a> <a href="/attachment.cgi?id=548084&action=edit" title="Part 14b: Layout changes for preserve-3d">[details]</a> <a href="/attachment.cgi?id=548084&action=diff" title="Part 14b: Layout changes for preserve-3d">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548084'>[review]</a> Part 14b: Layout changes for preserve-3d Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=548084" name="attach_548084" title="Part 14b: Layout changes for preserve-3d">attachment 548084</a> <a href="/attachment.cgi?id=548084&action=edit" title="Part 14b: Layout changes for preserve-3d">[details]</a> <a href="/attachment.cgi?id=548084&action=diff" title="Part 14b: Layout changes for preserve-3d">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548084'>[review]</a>: ----------------------------------------------------------------- ::: layout/base/nsDisplayList.cpp @@ +2441,4 @@ <span class="quote">> { > NS_PRECONDITION(aFrame, "Cannot get transform matrix for a null frame!"); > + //NS_PRECONDITION(aFrame->GetStyleDisplay()->HasTransform(), > + // "Cannot get transform matrix if frame isn't transformed!");</span > Just remove this @@ +2446,5 @@ <span class="quote">> + if (aOutAncestor) { > + *aOutAncestor = aFrame->GetParent(); > + } > + > + if (!aFrame->GetStyleDisplay()->HasTransform()) {</span > Add comment that this is the preserve-3d case @@ +2476,5 @@ <span class="quote">> + aFrame->PresContext(), > + dummy, bounds, aFactor); > + } else { > + NS_ASSERTION(aFrame->Preserves3DChildren(), > + "If we don't have a transform, then we must be at least preserving transforms of our children");</span > Shouldn't this be asserting aFrame->Preserves3D? @@ +2776,5 @@ <span class="quote">> const nsRect* aBoundsOverride) > { > NS_PRECONDITION(aFrame, "Can't take the transform based on a null frame!"); > + //NS_PRECONDITION(aFrame->GetStyleDisplay()->HasTransform(), > + // "Cannot transform a rectangle if there's no transformation!");</span > Just remove this, and the ones below ::: layout/generic/nsFrame.cpp @@ +1431,5 @@ <span class="quote">> + nsresult rv = NS_OK; > + nsDisplayList newList; > + while (nsDisplayItem *item = aList->RemoveBottom()) { > + if (item->GetType() == nsDisplayItem::TYPE_TRANSFORM && item->GetUnderlyingFrame()->GetParent()->Preserves3DChildren()) { > + NS_ASSERTION(item->GetUnderlyingFrame()->Preserves3D(), "");</span > Need a message! But can't this assertion fire if you have a preserves-3D parent with a child that has a transform but also a clip? @@ +1481,5 @@ <span class="quote">> */ > if ((mState & NS_FRAME_MAY_BE_TRANSFORMED) && > disp->HasTransform()) { > /* If we have a complex transform, just grab the entire overflow rect instead. */ > + if (Preserves3DChildren() || GetParent()->Preserves3DChildren() || !nsDisplayTransform::UntransformRect(dirtyRect, this, nsPoint(0, 0), &dirtyRect)) {</span > Just call Preserves3D() here? @@ +1560,5 @@ <span class="quote">> resultList.AppendToTop(set.BlockBorderBackgrounds()); > // 5: floats > resultList.AppendToTop(set.Floats()); > // 7: general content > + set.Content()->SortByZPosition(aBuilder, GetContent());</span > Hmm, this is a little bit scary. Maybe make this if (Preserves3DChildren())? And maybe instead of calling SortByZPosition and having SortByZPosition account for 3D, use a separate SortByZPosition3D path which you use here? @@ +4534,5 @@ <span class="quote">> * See <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED INACTIVE - Make inter-frame coordinate conversions more generic" href="/show_bug.cgi?id=452496">bug #452496</a> for more details. > */ > + > + // Check the transformed flags and remove it > + PRBool isTransformed = (aFlags & INVALIDATE_ALREADY_TRANSFORMED);</span > "rectIsTransformed" to be clearly different from IsTransformed()? @@ +4601,5 @@ <span class="quote">> > /* If we're transformed, the matrix will be relative to our > * cross-doc parent frame. > */ > + //*aOutAncestor = nsLayoutUtils::GetCrossDocParentFrame(this);</span > Remove @@ +6670,5 @@ <span class="quote">> + } > + } else { > + // When we are preserving 3d we need to iterate over all children separately. > + // If the child also preserves 3d then their overflow will already been in our > + // coordinate space, otherwise we need to transform.</span > Move this code to a helper function? FinishAndStoreOverflow is already a bit long :-) ::: layout/generic/nsIFrame.h @@ +1192,5 @@ <span class="quote">> /** > + * Returns whether this frame will attempt to preserve the 3d transforms of its > + * children. This is a direct indicator of -moz-transform-style: preserve-3d. > + */ > + virtual PRBool Preserves3DChildren() const;</span > Doesn't need to be virtual? @@ +1195,5 @@ <span class="quote">> + */ > + virtual PRBool Preserves3DChildren() const; > + > + /** > + * Returns whether this child frame will preserve 3d transforms.</span > Needs a better comment to distinguish it from the previous method. @@ +1197,5 @@ <span class="quote">> + > + /** > + * Returns whether this child frame will preserve 3d transforms. > + */ > + virtual PRBool Preserves3D() const;</span > Doesn't need to be virtual?</div></div><div class="change-set" id="a64140386_20209"><div class="change" id="aa64140386_20209"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_20209" id="a64140386_20209"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_20209" id="a64140386_20209"><a class="email " href="/user_profile?user_id=20209" > <span class="fna">Boris Zbarsky [:bzbarsky]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64140386_20209" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64140386_20209"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64140386_20209">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-07-31 18:09 PDT" data-time="1312160962">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Interpolating between already-interpolated transforms crashes Firefox" href="/show_bug.cgi?id=675470">675470</a></div></div></div><div class="change-set" id="c148"><div class="comment" data-id="5626002" data-no="148" data-tags=""> <table class="layout-table change-head " id="ch-148" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a64140386_20209"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a64140386_20209"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-148" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-148" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c148">Comment 148</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-01 12:52 PDT" data-time="1312228354">13 years ago</span> </div> </td> </tr> <tr id="ctag-148"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-148" data-comment-id="5626002">Comment on <span class=""><a href="/attachment.cgi?id=548077" name="attach_548077" title="Part 10 - Implement -moz-backface-visible v2">attachment 548077</a> <a href="/attachment.cgi?id=548077&action=edit" title="Part 10 - Implement -moz-backface-visible v2">[details]</a> <a href="/attachment.cgi?id=548077&action=diff" title="Part 10 - Implement -moz-backface-visible v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548077'>[review]</a> Part 10 - Implement -moz-backface-visible v2 r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548077&action=edit" title="Part 10 - Implement -moz-backface-visible v2" class="" >Attachment #548077</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c149"><div class="comment" data-id="5626223" data-no="149" data-tags=""> <table class="layout-table change-head " id="ch-149" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a64140386_20209"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a64140386_20209"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-149" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-149" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c149">Comment 149</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-01 14:17 PDT" data-time="1312233449">13 years ago</span> </div> </td> </tr> <tr id="ctag-149"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-149" data-comment-id="5626223">Comment on <span class=""><a href="/attachment.cgi?id=548078" name="attach_548078" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2">attachment 548078</a> <a href="/attachment.cgi?id=548078&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2">[details]</a> <a href="/attachment.cgi?id=548078&action=diff" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548078'>[review]</a> Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2 <span class="quote">>+ if (CheckEndProperty() || >+ !ParseVariant(depth, VARIANT_LENGTH | VARIANT_CALC, nsnull) || >+ !nsLayoutUtils::Are3DTransformsEnabled()) {</span > I think you can drop the CheckEndProperty || here. <span class="quote">>+ NS_ABORT_IF_FALSE(xValue.GetUnit() != eCSSUnit_Null && >+ yValue.GetUnit() != eCSSUnit_Null && >+ xValue.GetUnit() != eCSSUnit_Inherit && >+ yValue.GetUnit() != eCSSUnit_Inherit && >+ zValue.GetUnit() != eCSSUnit_Inherit && >+ xValue.GetUnit() != eCSSUnit_Initial && >+ yValue.GetUnit() != eCSSUnit_Initial && >+ zValue.GetUnit() != eCSSUnit_Initial, >+ "inappropriate pair value");</span > "pair" -> "triplet" Also, please add a comment noting that a null Z value *is* allowed, since it isn't obvious when skimming. (both comments repeated for both SetTripletValue variants) nsRuleNode.cpp: You still have the SetTripletCoords function, but you're not calling it. Remove it. (It has bugs, too, but I won't bother describing them!) It would probably be useful to use mozilla::DebugOnly<PRBool> in your new code in ComputeDisplayData. <span class="quote">>+ if (valZ.GetUnit() == eCSSUnit_Null) { >+ display->mTransformOrigin[2].SetCoordValue(0);</span > You should add a comment here that we've already separately checked transformOriginValue against eCSSUnit_Null, so this is safe (i.e., clearly means 0 rather than unspecified). r=dbaron with those things fixed</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548078&action=edit" title="Part 11a: Add nsCSSValueTriplet and optionally read a z component to -moz-transform-origin v2" class="" >Attachment #548078</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="a64229619_380838"><div class="change" id="aa64229619_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64229619_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64229619_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64229619_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64229619_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-01 18:56 PDT" data-time="1312250195">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Add 3d transform support to BasicLayers" href="/show_bug.cgi?id=675837">675837</a></div></div></div><div class="change-set" id="c150"><div class="comment" data-id="5628849" data-no="150" data-tags=""> <table class="layout-table change-head assignee" id="ch-150" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64229619_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-150" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-150" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c150">Comment 150</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-02 14:25 PDT" data-time="1312320332">13 years ago</span> </div> </td> </tr> <tr id="ctag-150"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-150" data-comment-id="5628849">Comment on <span class=""><a href="/attachment.cgi?id=549699" name="attach_549699" title="Part 9 - Implement the perspective() transform function and style property. v4">attachment 549699</a> <a href="/attachment.cgi?id=549699&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v4">[details]</a> <a href="/attachment.cgi?id=549699&action=diff" title="Part 9 - Implement the perspective() transform function and style property. v4">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=549699'>[review]</a> Part 9 - Implement the perspective() transform function and style property. v4 Carrying forward r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=549699&action=edit" title="Part 9 - Implement the perspective() transform function and style property. v4" class="" >Attachment #549699</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c151"><div class="comment" data-id="5629540" data-no="151" data-tags=""> <table class="layout-table change-head assignee" id="ch-151" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64229619_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-151" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-151" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c151">Comment 151</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-02 20:08 PDT" data-time="1312340880">13 years ago</span> </div> </td> </tr> <tr id="ctag-151"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-151" data-comment-id="5629540">Landed parts 6 through 12b on mozilla-inbound: <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/ba5eb1cd42f3">http://hg.mozilla.org/integration/mozilla-inbound/rev/ba5eb1cd42f3</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/e7dc1c09ae24">http://hg.mozilla.org/integration/mozilla-inbound/rev/e7dc1c09ae24</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/a637d482b540">http://hg.mozilla.org/integration/mozilla-inbound/rev/a637d482b540</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/74eac3a09043">http://hg.mozilla.org/integration/mozilla-inbound/rev/74eac3a09043</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/08b756f93436">http://hg.mozilla.org/integration/mozilla-inbound/rev/08b756f93436</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/96941ed69aeb">http://hg.mozilla.org/integration/mozilla-inbound/rev/96941ed69aeb</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/85cc7836c552">http://hg.mozilla.org/integration/mozilla-inbound/rev/85cc7836c552</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/ea882f18d8ac">http://hg.mozilla.org/integration/mozilla-inbound/rev/ea882f18d8ac</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/ad334152010a">http://hg.mozilla.org/integration/mozilla-inbound/rev/ad334152010a</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/2d3b6382054d">http://hg.mozilla.org/integration/mozilla-inbound/rev/2d3b6382054d</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/166f4f247772">http://hg.mozilla.org/integration/mozilla-inbound/rev/166f4f247772</a></div></div><div class="change-set" id="c152"><div class="comment" data-id="5629575" data-no="152" data-tags=""> <table class="layout-table change-head " id="ch-152" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_1214" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/c936d5fc7ef09504480b9d8aafb7e8a0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_1214" id="a64229619_380838"><a class="email disabled" href="/user_profile?user_id=1214" > <span class="fna">Brendan Eich [:brendan]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-152" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-152" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c152">Comment 152</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-02 20:26 PDT" data-time="1312341962">13 years ago</span> </div> </td> </tr> <tr id="ctag-152"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-152" data-comment-id="5629575">Excitement! /be</div></div><div class="change-set" id="c153"><div class="comment" data-id="5629985" data-no="153" data-tags=""> <table class="layout-table change-head " id="ch-153" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_240353" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/0d674a646529b0795088d7a8075fbaea?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_240353" id="a64229619_380838"><a class="email " href="/user_profile?user_id=240353" > <span class="fna">Marco Bonardo [:mak]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-153" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-153" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c153">Comment 153</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-03 02:27 PDT" data-time="1312363646">13 years ago</span> </div> </td> </tr> <tr id="ctag-153"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-153" data-comment-id="5629985"><a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/ba5eb1cd42f3">http://hg.mozilla.org/mozilla-central/rev/ba5eb1cd42f3</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/e7dc1c09ae24">http://hg.mozilla.org/mozilla-central/rev/e7dc1c09ae24</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/a637d482b540">http://hg.mozilla.org/mozilla-central/rev/a637d482b540</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/74eac3a09043">http://hg.mozilla.org/mozilla-central/rev/74eac3a09043</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/08b756f93436">http://hg.mozilla.org/mozilla-central/rev/08b756f93436</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/96941ed69aeb">http://hg.mozilla.org/mozilla-central/rev/96941ed69aeb</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/85cc7836c552">http://hg.mozilla.org/mozilla-central/rev/85cc7836c552</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/ea882f18d8ac">http://hg.mozilla.org/mozilla-central/rev/ea882f18d8ac</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/ad334152010a">http://hg.mozilla.org/mozilla-central/rev/ad334152010a</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/2d3b6382054d">http://hg.mozilla.org/mozilla-central/rev/2d3b6382054d</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/166f4f247772">http://hg.mozilla.org/mozilla-central/rev/166f4f247772</a></div></div><div class="change-set" id="c154"><div class="comment" data-id="5632574" data-no="154" data-tags=""> <table class="layout-table change-head " id="ch-154" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_318037" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/f7085aa243abb02fcf365d91e55aa014?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_318037" id="a64229619_380838"><a class="email disabled" href="/user_profile?user_id=318037" > <span class="fna">Dean Jackson</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-154" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-154" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c154">Comment 154</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-04 00:13 PDT" data-time="1312441986">13 years ago</span> </div> </td> </tr> <tr id="ctag-154"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-154" data-comment-id="5632574">Cool!</div></div><div class="change-set" id="c155"><div class="comment" data-id="5634553" data-no="155" data-tags=""> <table class="layout-table change-head assignee" id="ch-155" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64229619_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-155" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-155" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c155">Comment 155</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-04 15:30 PDT" data-time="1312497026">13 years ago</span> </div> </td> </tr> <tr id="ctag-155"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-155" data-comment-id="5634553"><span class="quote">> > @@ +1560,5 @@ > > resultList.AppendToTop(set.BlockBorderBackgrounds()); > > // 5: floats > > resultList.AppendToTop(set.Floats()); > > // 7: general content > > + set.Content()->SortByZPosition(aBuilder, GetContent()); > > Hmm, this is a little bit scary. Maybe make this if (Preserves3DChildren())? > And maybe instead of calling SortByZPosition and having SortByZPosition > account for 3D, use a separate SortByZPosition3D path which you use here? > </span > Can you explain this a bit more please. I've actually removed this line in my queue because it was causing tests to fail. What exactly is in the Content() group? I was under the impression that everything would have a z-order of 0 (positive/negative z-order content is separate), and no z-position (exisiting tests won't have 3d transforms), so this would just be a content-order sort and a no-op.</div></div><div class="change-set" id="c156"><div class="comment" data-id="5634558" data-no="156" data-tags=""> <table class="layout-table change-head assignee" id="ch-156" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64229619_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-156" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-156" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c156">Comment 156</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-04 15:31 PDT" data-time="1312497089">13 years ago</span> </div> </td> </tr> <tr id="ctag-156"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-156" data-comment-id="5634558">Relatedly, all the 3d content that I've tested ends up in the positive z-order group, so this line doesn't actually appear to be necessary at all.</div></div><div class="change-set" id="c157"><div class="comment" data-id="5634851" data-no="157" data-tags=""> <table class="layout-table change-head " id="ch-157" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64229619_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64229619_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-157" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-157" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c157">Comment 157</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-04 17:42 PDT" data-time="1312504971">13 years ago</span> </div> </td> </tr> <tr id="ctag-157"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-157" data-comment-id="5634851">(In reply to <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c155">comment #155</a>) <span class="quote">> > > > @@ +1560,5 @@ > > > resultList.AppendToTop(set.BlockBorderBackgrounds()); > > > // 5: floats > > > resultList.AppendToTop(set.Floats()); > > > // 7: general content > > > + set.Content()->SortByZPosition(aBuilder, GetContent()); > > > > Hmm, this is a little bit scary. Maybe make this if (Preserves3DChildren())? > > And maybe instead of calling SortByZPosition and having SortByZPosition > > account for 3D, use a separate SortByZPosition3D path which you use here? > > > > Can you explain this a bit more please.</span > The scariness is that you're re-sorting everything by CSS z-index and content order, and if any code has deliberately violated that order then you'll be undoing that. I don't remember off the top of my head what does that, but it sounds like that's what's causing your tests failing. There's also an efficiency issue, you're adding an O(N log N) pass over the content list. <span class="quote">> I've actually removed this line in my queue because it was causing tests to > fail. What exactly is in the Content() group?</span > Content() contains everything "normal" that doesn't belong in one of the other lists. See nsDisplayList.h. <span class="quote">> Relatedly, all the 3d content that I've tested ends up in the positive > z-order group, so this line doesn't actually appear to be necessary at all.</span > Right, nsDisplayTransform items should always be in the PositionedDescendants list since they are pseudo-stacking-contexts.</div></div><div class="change-set" id="a64498054_380838"><div class="change" id="aa64498054_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64498054_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64498054_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64498054_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64498054_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-04 21:30 PDT" data-time="1312518630">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - layersGPUAccelerated flags appears to be incorrect for the windows test machines." href="/show_bug.cgi?id=676746">676746</a></div></div></div><div class="change-set" id="c158"><div class="comment" data-id="5635800" data-no="158" data-tags=""> <table class="layout-table change-head " id="ch-158" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_329520" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/797912ddaeeb7a1f5784dc4c9bb64fb9?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_329520" id="a64498054_380838"><a class="email " href="/user_profile?user_id=329520" > <span class="fna">Louis-Rémi BABE</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-158" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-158" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c158">Comment 158</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 07:58 PDT" data-time="1312556294">13 years ago</span> </div> </td> </tr> <tr id="ctag-158"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-158" data-comment-id="5635800">Is it planned to have a media query available to test for 3d transform support? Regards, Lr</div></div><div class="change-set" id="c159"><div class="comment" data-id="5635811" data-no="159" data-tags=""> <table class="layout-table change-head " id="ch-159" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_174962" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/a046f67399acec21282d784ac66cb009?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_174962" id="a64498054_380838"><a class="email disabled" href="/user_profile?user_id=174962" > <span class="fna">Paul Rouget [:paul]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-159" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-159" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c159">Comment 159</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 08:06 PDT" data-time="1312556786">13 years ago</span> </div> </td> </tr> <tr id="ctag-159"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-159" data-comment-id="5635811">(In reply to Louis-Rémi BABE from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c158">comment #158</a>) <span class="quote">> Is it planned to have a media query available to test for 3d transform > support?</span > This feature can't be detected afaik. So a mediaQuery sounds appropriate. Webkit does that, right?</div></div><div class="change-set" id="c160"><div class="comment" data-id="5635825" data-no="160" data-tags=""> <table class="layout-table change-head " id="ch-160" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_369227" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/38d5c4fb9d403118d7f68da0fa42d8f8?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_369227" id="a64498054_380838"><a class="email " href="/user_profile?user_id=369227" > <span class="fna">Kang-Hao (Kenny) Lu [:kennyluck]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-160" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-160" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c160">Comment 160</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 08:14 PDT" data-time="1312557298">13 years ago</span> </div> </td> </tr> <tr id="ctag-160"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-160" data-comment-id="5635825">(In reply to Paul Rouget [:paul] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c159">comment #159</a>) <span class="quote">> (In reply to Louis-Rémi BABE from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c158">comment #158</a>) > > Is it planned to have a media query available to test for 3d transform > > support? > > This feature can't be detected afaik. So a mediaQuery sounds appropriate. > Webkit does that, right?</span > There's also dbaron's @supports[1], but I guess that wouldn't be ready in time. [1] <a rel="nofollow" href="http://dev.w3.org/csswg/css3-conditional/#at-supports">http://dev.w3.org/csswg/css3-conditional/#at-supports</a></div></div><div class="change-set" id="c161"><div class="comment" data-id="5636028" data-no="161" data-tags=""> <table class="layout-table change-head " id="ch-161" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_359880" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/da56018fec1036eb1e02305d09a0bce8?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_359880" id="a64498054_380838"><a class="email " href="/user_profile?user_id=359880" > <span class="fna">flying sheep</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-161" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-161" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c161">Comment 161</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 09:27 PDT" data-time="1312561660">13 years ago</span> </div> </td> </tr> <tr id="ctag-161"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-161" data-comment-id="5636028">hi guys. i really love how much progress and effort goes into supporting new standards and bringing the web forward. i’m following this bug report for quite some time now. but every time i see how some parts are advancing and getting care from so many, it feels funny how other small deetails are neglected despite having hideous bugs for years. specifically, i’m talking about some elements not being stylable, partly or at all (<a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - can't define the style of input when the type is set to "checkbox" or "radio" with CSS" href="/show_bug.cgi?id=418833">bug 418833</a>, <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Make regular CSS properties apply on <input type='file'>" href="/show_bug.cgi?id=52500">bug 52500</a>, <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - popup menus for <select>s don't have a native popup menu appearance" href="/show_bug.cgi?id=402625">bug 402625</a> and <a class="bz_bug_link bz_status_REOPENED" title="REOPENED - Styles assigned to OPTION elements aren't used for pull-down SELECT lists (comboboxes)" href="/show_bug.cgi?id=79107">bug 79107</a>), buttons still have this invisible-yet-padded “::-moz-focus-inner” (<a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Replace -moz-focus-inner from form elements with standard outline" href="/show_bug.cgi?id=140562">bug 140562</a>), and cursor themes are not completely supported (<a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED DUPLICATE - cursor themes are not completely supported" href="/show_bug.cgi?id=609889">bug 609889</a>) (firefox uses it’s own 90ies-cursors sometimes) i hope this gets one or two of you to look at these, and my whinig didn’t distract you too much, but i think new standards are not everything, and little old inconsitencies matter, too. i just tried to direct some of the positive energy here elwhere, where it is needed imho, too.</div></div><div class="change-set" id="c162"><div class="comment" data-id="5636239" data-no="162" data-tags=""> <table class="layout-table change-head " id="ch-162" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_318037" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/f7085aa243abb02fcf365d91e55aa014?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_318037" id="a64498054_380838"><a class="email disabled" href="/user_profile?user_id=318037" > <span class="fna">Dean Jackson</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-162" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-162" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c162">Comment 162</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 10:56 PDT" data-time="1312566998">13 years ago</span> </div> </td> </tr> <tr id="ctag-162"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-162" data-comment-id="5636239">You could technically feature detect by setting a 3d transform on something and examining the computed style, but that's annoying and why we implemented the media query in webkit.</div></div><div class="change-set" id="c163"><div class="comment" data-id="5636999" data-no="163" data-tags=""> <table class="layout-table change-head " id="ch-163" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64498054_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-163" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-163" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c163">Comment 163</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 16:05 PDT" data-time="1312585520">13 years ago</span> </div> </td> </tr> <tr id="ctag-163"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-163" data-comment-id="5636999">Currently the plan is to support 3d-transforms everywhere (see <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Add 3d transform support to BasicLayers" href="/show_bug.cgi?id=675837">bug 675837</a>). The performance won't be great without GPU acceleration, so maybe we need a query for whether transforms are GPU-accelerated.</div></div><div class="change-set" id="c164"><div class="comment" data-id="5637157" data-no="164" data-tags=""> <table class="layout-table change-head " id="ch-164" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_318037" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/f7085aa243abb02fcf365d91e55aa014?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_318037" id="a64498054_380838"><a class="email disabled" href="/user_profile?user_id=318037" > <span class="fna">Dean Jackson</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-164" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-164" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c164">Comment 164</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-05 17:56 PDT" data-time="1312592210">13 years ago</span> </div> </td> </tr> <tr id="ctag-164"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-164" data-comment-id="5637157">At least the Apple port of WebKit for Safari only does 3d in accelerated content. We don't have a software fallback. I'm not sure if other ports do. In other words, for Safari our media query for 3d was basically enough to guarantee performance. We were quite hesitant to introduce a media query that is used as feature detection. As roc says, this is really testing performance, not the media. Oh well :(</div></div><div class="change-set" id="c165"><div class="comment" data-id="5638084" data-no="165" data-tags=""> <table class="layout-table change-head assignee" id="ch-165" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64498054_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64498054_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-165" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-165" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c165">Comment 165</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-06 20:16 PDT" data-time="1312686997">13 years ago</span> </div> </td> </tr> <tr id="ctag-165"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-551300" class="attachment patch obsolete" data-id="551300" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="preserve-3d-for-realz"> <meta itemprop="contentSize" content="37846"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=551300"> <a class="link" href="attachment.cgi?id=551300&action=diff"> <span id="att-551300-description" itemprop="description">Part 14b: Layout changes for preserve-3d v2</span></a> (obsolete) — <a href="attachment.cgi?id=551300&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=551300">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-165" data-comment-id="5638084">Fixed review comments</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=551300&action=edit" title="Part 14b: Layout changes for preserve-3d v2" class="" >Attachment #551300</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="a64740969_5038"><div class="change" id="aa64740969_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64740969_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64740969_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64740969_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64740969_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64740969_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-07 16:59 PDT" data-time="1312761545">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548084&action=edit" title="Part 14b: Layout changes for preserve-3d" class="" >Attachment #548084</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=548084&action=edit" title="Part 14b: Layout changes for preserve-3d" class="" >Attachment #548084</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="c166"><div class="comment" data-id="5638613" data-no="166" data-tags=""> <table class="layout-table change-head " id="ch-166" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64740969_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64740969_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-166" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-166" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c166">Comment 166</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-07 17:29 PDT" data-time="1312763378">13 years ago</span> </div> </td> </tr> <tr id="ctag-166"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-166" data-comment-id="5638613">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=551300" name="attach_551300" title="Part 14b: Layout changes for preserve-3d v2">attachment 551300</a> <a href="/attachment.cgi?id=551300&action=edit" title="Part 14b: Layout changes for preserve-3d v2">[details]</a> <a href="/attachment.cgi?id=551300&action=diff" title="Part 14b: Layout changes for preserve-3d v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=551300'>[review]</a> Part 14b: Layout changes for preserve-3d v2 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=551300" name="attach_551300" title="Part 14b: Layout changes for preserve-3d v2">attachment 551300</a> <a href="/attachment.cgi?id=551300&action=edit" title="Part 14b: Layout changes for preserve-3d v2">[details]</a> <a href="/attachment.cgi?id=551300&action=diff" title="Part 14b: Layout changes for preserve-3d v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=551300'>[review]</a>: ----------------------------------------------------------------- Somewhere you need a comment or two to explain the general setup: how preserve-3d transforms are applied to the display list (in BuildDisplayListForStackingContext, I guess), and how invalidation is handled (in Invalidate somewhere). ::: layout/base/nsDisplayList.cpp @@ +772,5 @@ <span class="quote">> + nsIFrame* ancestor; > + gfx3DMatrix matrix1 = aItem1->GetUnderlyingFrame()->GetTransformMatrix(&ancestor); > + gfx3DMatrix matrix2 = aItem2->GetUnderlyingFrame()->GetTransformMatrix(&ancestor); > + > + return matrix1._43 < matrix2._43;</span > If these are equal, we should check IsContentLEQ, right? ::: layout/generic/nsFrame.cpp @@ +1444,5 @@ <span class="quote">> +{ > + nsresult rv = NS_OK; > + nsDisplayList newList; > + while (nsDisplayItem *item = aList->RemoveBottom()) { > + if (item->GetType() == nsDisplayItem::TYPE_TRANSFORM && item->GetUnderlyingFrame()->GetParent()->Preserves3DChildren()) {</span > How about check item->GetUnderlyingFrame() not null, then check item->GetUnderlyingFrame()->GetParent()->Preserves3DChildren(), then switch on item->GetType()? @@ +1445,5 @@ <span class="quote">> + nsresult rv = NS_OK; > + nsDisplayList newList; > + while (nsDisplayItem *item = aList->RemoveBottom()) { > + if (item->GetType() == nsDisplayItem::TYPE_TRANSFORM && item->GetUnderlyingFrame()->GetParent()->Preserves3DChildren()) { > + NS_ASSERTION(item->GetUnderlyingFrame()->Preserves3D(), "");</span > Need a message.</div></div><div class="change-set" id="a64780322_293623"><div class="change" id="aa64780322_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a64780322_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a64780322_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64780322_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64780322_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64780322_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 03:54 PDT" data-time="1312800898">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - css3-3d-transforms isn't fully disabled since properties (which sites detect) are added to IDL" href="/show_bug.cgi?id=677173">677173</a></div></div></div><div class="change-set" id="a64788516_32767"><div class="change" id="aa64788516_32767"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_32767" id="a64788516_32767"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_32767" id="a64788516_32767"><a class="email " href="/user_profile?user_id=32767" > <span class="fna">Jonathan Watt [:jwatt]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64788516_32767" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64788516_32767"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64788516_32767">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 06:11 PDT" data-time="1312809092">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Blocks: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Remove some Windows line endings introduces by bug 505115" href="/show_bug.cgi?id=677198">677198</a></div></div></div><div class="change-set" id="a64804494_406847"><div class="change" id="aa64804494_406847"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_406847" id="a64804494_406847"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_406847" id="a64804494_406847"><a class="email disabled" href="/user_profile?user_id=406847" > <span class="fna">Curtis Koenig [:curtisk-use curtis.koenig+bzATgmail.com]]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64804494_406847" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64804494_406847"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64804494_406847">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 10:37 PDT" data-time="1312825070">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=sec-review-needed&resolution=---">sec-review-needed</a></div></div></div><div class="change-set" id="c167"><div class="comment" data-id="5640527" data-no="167" data-tags=""> <table class="layout-table change-head " id="ch-167" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_20209" id="a64804494_406847"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_20209" id="a64804494_406847"><a class="email " href="/user_profile?user_id=20209" > <span class="fna">Boris Zbarsky [:bzbarsky]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-167" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-167" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c167">Comment 167</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 13:59 PDT" data-time="1312837164">13 years ago</span> </div> </td> </tr> <tr id="ctag-167"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-167" data-comment-id="5640527">It looks like this has landed in a partially-enabled state, which causes site compat issues. See <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - css3-3d-transforms isn't fully disabled since properties (which sites detect) are added to IDL" href="/show_bug.cgi?id=677173">bug 677173</a>.</div></div><div class="change-set" id="c168"><div class="comment" data-id="5640892" data-no="168" data-tags=""> <table class="layout-table change-head " id="ch-168" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64804494_406847"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64804494_406847"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-168" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-168" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c168">Comment 168</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 15:42 PDT" data-time="1312843363">13 years ago</span> </div> </td> </tr> <tr id="ctag-168"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-168" data-comment-id="5640892">Hmm right. We can't really turn off IDL attributes based on a pref, of course :-(. If we can back out just the CSSDeclaration part of the patch, we should do that.</div></div><div class="change-set" id="c169"><div class="comment" data-id="5641148" data-no="169" data-tags=""> <table class="layout-table change-head " id="ch-169" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_20209" id="a64804494_406847"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_20209" id="a64804494_406847"><a class="email " href="/user_profile?user_id=20209" > <span class="fna">Boris Zbarsky [:bzbarsky]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-169" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-169" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c169">Comment 169</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-08 17:17 PDT" data-time="1312849053">13 years ago</span> </div> </td> </tr> <tr id="ctag-169"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-169" data-comment-id="5641148"><span class="quote">> We can't really turn off IDL attributes based on a pref, of course</span > You sort of can, if it lives on a separate interface; we have some code in nsDOMClassInfo.cpp right now that does that sort of thing.</div></div><div class="change-set" id="c170"><div class="comment" data-id="5642459" data-no="170" data-tags=""> <table class="layout-table change-head " id="ch-170" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_14701" id="a64804494_406847"><img src="https://secure.gravatar.com/avatar/60e8d4680b2951023e8396b48b3daff7?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_14701" id="a64804494_406847"><a class="email disabled" href="/user_profile?user_id=14701" > <span class="fna">Christopher Blizzard (:blizzard)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-170" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-170" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c170">Comment 170</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-09 09:23 PDT" data-time="1312906980">13 years ago</span> </div> </td> </tr> <tr id="ctag-170"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-170" data-comment-id="5642459">Should probably track for Firefox 8 given the site compat issues.</div><div class="activity"><div class="change"> <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=isnotempty">tracking-firefox8</a>: --- → <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=equals&v1=%3F">?</a></div></div></div><div class="change-set" id="a64889290_241123"><div class="change" id="aa64889290_241123"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_241123" id="a64889290_241123"><img src="https://secure.gravatar.com/avatar/68db14f8cad106353f1763cef13e5ab0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_241123" id="a64889290_241123"><a class="email " href="/user_profile?user_id=241123" > <span class="fna">Eric Shepherd [:sheppy]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64889290_241123" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64889290_241123"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64889290_241123">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-09 10:11 PDT" data-time="1312909866">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=dev-doc-needed&resolution=---">dev-doc-needed</a></div></div></div><div class="change-set" id="a64909347_406847"><div class="change" id="aa64909347_406847"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_406847" id="a64909347_406847"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_406847" id="a64909347_406847"><a class="email disabled" href="/user_profile?user_id=406847" > <span class="fna">Curtis Koenig [:curtisk-use curtis.koenig+bzATgmail.com]]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a64909347_406847" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a64909347_406847"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a64909347_406847">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-09 15:45 PDT" data-time="1312929923">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed][inbound] → [approved-patches-landed][inbound][sr:bsterne]</div></div></div><div class="change-set" id="c171"><div class="comment" data-id="5644236" data-no="171" data-tags=""> <table class="layout-table change-head assignee" id="ch-171" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64909347_406847"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64909347_406847"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-171" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-171" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c171">Comment 171</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-09 20:35 PDT" data-time="1312947357">13 years ago</span> </div> </td> </tr> <tr id="ctag-171"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-171" data-comment-id="5644236">Is it worth creating a new interface just for the 3d transform properties, with the plan of having them unconditionally defined in the near future? It might be easier to just remove the properties, since this should only be needed temporarily.</div></div><div class="change-set" id="c172"><div class="comment" data-id="5644240" data-no="172" data-tags=""> <table class="layout-table change-head " id="ch-172" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a64909347_406847"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a64909347_406847"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-172" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-172" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c172">Comment 172</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-09 20:42 PDT" data-time="1312947755">13 years ago</span> </div> </td> </tr> <tr id="ctag-172"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-172" data-comment-id="5644240">(In reply to Matt Woodrow (:mattwoodrow) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c171">comment #171</a>) <span class="quote">> It might be easier to just remove the properties, since this should only be > needed temporarily.</span > Let's do that.</div></div><div class="change-set" id="c173"><div class="comment" data-id="5646372" data-no="173" data-tags=""> <table class="layout-table change-head assignee" id="ch-173" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64909347_406847"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64909347_406847"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-173" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-173" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c173">Comment 173</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 15:34 PDT" data-time="1313015652">13 years ago</span> </div> </td> </tr> <tr id="ctag-173"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-173" data-comment-id="5646372">How would I do this exactly? Just removing the .idl entries fails to compile because the macros in nsCSSPropList.h reference them.</div></div><div class="change-set" id="c174"><div class="comment" data-id="5646610" data-no="174" data-tags=""> <table class="layout-table change-head assignee" id="ch-174" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a64909347_406847"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a64909347_406847"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-174" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-174" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c174">Comment 174</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 17:04 PDT" data-time="1313021075">13 years ago</span> </div> </td> </tr> <tr id="ctag-174"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-552267" class="attachment patch" data-id="552267" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="preserve-3d-for-realz"> <meta itemprop="contentSize" content="40196"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=552267"> <a class="link" href="attachment.cgi?id=552267&action=diff"> <span id="att-552267-description" itemprop="description">Part 14b: Layout changes for preserve-3d v3</span></a> — <a href="attachment.cgi?id=552267&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=552267">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-174" data-comment-id="5646610"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=551300&action=edit" title="Part 14b: Layout changes for preserve-3d v2" class="" >Attachment #551300</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=552267&action=edit" title="Part 14b: Layout changes for preserve-3d v3" class="" >Attachment #552267</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=551300&action=edit" title="Part 14b: Layout changes for preserve-3d v2" class="" >Attachment #551300</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="a65001168_5038"><div class="change" id="aa65001168_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a65001168_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a65001168_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a65001168_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a65001168_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 17:15 PDT" data-time="1313021744">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=552267&action=edit" title="Part 14b: Layout changes for preserve-3d v3" class="" >Attachment #552267</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c175"><div class="comment" data-id="5646635" data-no="175" data-tags=""> <table class="layout-table change-head " id="ch-175" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a65001168_5038"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-175" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-175" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c175">Comment 175</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 17:22 PDT" data-time="1313022179">13 years ago</span> </div> </td> </tr> <tr id="ctag-175"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-175" data-comment-id="5646635">Where do you get errors from removing the IDL entries? It's probably fixable, with hacks. In addition to that, though, we'd need to make a bunch of other APIs act as though the property is not implemented. I think hacking nsCSSProps::LookupProperty to return eCSSProperty_UNKNOWN for them would produce exactly the right results, but this would need an audit of all the callers.</div></div><div class="change-set" id="c176"><div class="comment" data-id="5646650" data-no="176" data-tags=""> <table class="layout-table change-head assignee" id="ch-176" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a65001168_5038"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-176" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-176" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c176">Comment 176</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 17:27 PDT" data-time="1313022463">13 years ago</span> </div> </td> </tr> <tr id="ctag-176"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-176" data-comment-id="5646650">In file included from /Users/mattwoodrow/mozilla-incoming/layout/style/nsDOMCSSDeclaration.cpp:365: /Users/mattwoodrow/mozilla-incoming/layout/style/nsCSSPropList.h:2261: error: no ‘nsresult nsDOMCSSDeclaration::GetMozPerspectiveOrigin(nsAString_internal&)’ member function declared in class ‘nsDOMCSSDeclaration’</div></div><div class="change-set" id="c177"><div class="comment" data-id="5646655" data-no="177" data-tags=""> <table class="layout-table change-head " id="ch-177" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a65001168_5038"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-177" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-177" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c177">Comment 177</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 17:31 PDT" data-time="1313022701">13 years ago</span> </div> </td> </tr> <tr id="ctag-177"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-177" data-comment-id="5646655">(In reply to David Baron [:dbaron] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c175">comment #175</a>) <span class="quote">> In addition to that, though, we'd need to make a bunch of other APIs act as > though the property is not implemented. I think hacking > nsCSSProps::LookupProperty to return eCSSProperty_UNKNOWN for them would > produce exactly the right results, but this would need an audit of all the > callers.</span > Yes, I just did that code audit and I believe it does the right thing. But the change needs to apply to both versions of LookupProperty. (In reply to Matt Woodrow (:mattwoodrow) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c176">comment #176</a>) <span class="quote">> In file included from > /Users/mattwoodrow/mozilla-incoming/layout/style/nsDOMCSSDeclaration.cpp:365: > /Users/mattwoodrow/mozilla-incoming/layout/style/nsCSSPropList.h:2261: > error: no ‘nsresult > nsDOMCSSDeclaration::GetMozPerspectiveOrigin(nsAString_internal&)’ member > function declared in class ‘nsDOMCSSDeclaration’</span > Just add the declarations to nsDOMCSSDeclaration.h manually, right below NS_DECL_NSIDOMCSS2PROPERTIES.</div></div><div class="change-set" id="c178"><div class="comment" data-id="5646781" data-no="178" data-tags=""> <table class="layout-table change-head " id="ch-178" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a65001168_5038"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-178" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-178" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c178">Comment 178</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 19:16 PDT" data-time="1313029015">13 years ago</span> </div> </td> </tr> <tr id="ctag-178"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-178" data-comment-id="5646781">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548634" name="attach_548634" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">attachment 548634</a> <a href="/attachment.cgi?id=548634&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">[details]</a> <a href="/attachment.cgi?id=548634&action=diff" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548634'>[review]</a> Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=548634" name="attach_548634" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">attachment 548634</a> <a href="/attachment.cgi?id=548634&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">[details]</a> <a href="/attachment.cgi?id=548634&action=diff" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548634'>[review]</a>: ----------------------------------------------------------------- So, the operator[] issues, the order of translation in Inverse(), the left-over debugging code, and the MAX macro in a header must be fixed. The rest are suggestions you can take or leave as you like. ::: gfx/2d/BasePoint3D.h @@ +68,5 @@ <span class="quote">> + return y; > + } else { > + return z; > + } > + }</span > This function made me throw up in my mouth a little. Just saying. ::: gfx/2d/BasePoint4D.h @@ +72,5 @@ <span class="quote">> + Sub operator+(const Sub& aPoint) const { > + return Sub(x + aPoint.x, y + aPoint.y, z + aPoint.z, w + aPoint.w); > + } > + Sub operator-(const Sub& aPoint) const { > + return Sub(x - aPoint.x, y - aPoint.y, z - aPoint.z, w + aPoint.w);</span > Should be w - aPoint.w, not +. ::: gfx/2d/Makefile.in @@ +51,5 @@ <span class="quote">> EXPORTS_mozilla/gfx = \ > 2D.h \ > BasePoint.h \ > BasePoint3D.h \ > + BasePoint4D.h \</span > You're using tabs here when the rest of the list (except the $(NULL) line) isn't. ::: gfx/thebes/gfx3DMatrix.cpp @@ +114,5 @@ <span class="quote">> return *this; > } > > +gfxPointH3D& > +gfx3DMatrix::operator[](const int aIndex)</span > Is there any reason to declare aIndex const? @@ +118,5 @@ <span class="quote">> +gfx3DMatrix::operator[](const int aIndex) > +{ > + NS_ABORT_IF_FALSE(aIndex >= 0 && aIndex <= 3, "Invalid matrix array index"); > + if (aIndex == 0) { > + return *reinterpret_cast<gfxPointH3D*>(&_11);</span > So, this kind of thing is technically invalid, though I don't know a compiler/architecture combination where it will actually break. The only way to guarantee, at a language level, that a series of memory cells are adjacent in memory, with no padding for alignment or whatever else between them, is to put them in an array. However, if you're going to rely on _11 through _14 being adjacent in memory, why not rely on _11 through _44 being adjacent? Then you can get rid of the if/else chain and just use return *reinterpret_cast<gfxPointH3D*>((&_11)+4*aIndex); directly, and the whole thing can go in the header so it can be inlined, as it becomes basically one lea instruction on x86. A similar approach will eliminate the if/else chain in BasePoint[34]D and even in TransposedVector()/SetTransposedVector(). That at least has the advantage of generating reasonable code, while the current construction will create surprisingly slow code for some future caller that naively expects operator[] on a matrix class to be implemented efficiently. In other words, if you're going to make the assumption these things are tightly packed, then you should actually use that assumption, rather than doing things halfway. Otherwise you're relying on loop unrolling to get reasonable code out of things like Normalize() and Transposed() below (looking at the asm, not only does gcc not unroll the loops, it doesn't inline the functions that are available to be inlined, either, likely because all the conditionals make them huge). @@ +129,5 @@ <span class="quote">> + } > +} > + > +const gfxPointH3D& > +gfx3DMatrix::operator[](const int aIndex) const</span > Is there any reason to declare aIndex const? @@ +249,5 @@ <span class="quote">> +gfx3DMatrix > +gfx3DMatrix::Inverse3x3() const > +{ > + gfxFloat det = Determinant3x3(); > + if (det == 0.0) {</span > So, gfxMatrix::Invert uses cairo_matrix_invert(), which handles singular matrices slightly differently. 1) It also fails if !ISFINITE(det). 2) Because of the way it is called, the inverse of a singular matrix is (usually) the original singular matrix, rather than the identity. I say "usually" because in the simple scaling/translation case, it inverts the X row before checking to see if the Y row is invertible, but I'd call that behavior a bug in Cairo (the documentation only says the matrix is modified if the inversion process is successful, and in general it's bad form to partially modify things and then return an error). It also doesn't check ISFINITE in that case, which is probably another bug. I don't know how important preserving either of these semantics are. Given the aforementioned Cairo bugs, probably not very. @@ +264,5 @@ <span class="quote">> + temp._23 = _13 * _21 - _11 * _23; > + temp._31 = _21 * _32 - _22 * _31; > + temp._32 = _31 * _12 - _11 * _32; > + temp._33 = _11 * _22 - _12 * _21; > + temp /= det;</span > I recommend temp *= (1/det). @@ +293,5 @@ <span class="quote">> + */ > + gfx3DMatrix translation; > + translation[3] = gfxPointH3D(-_41, -_42, -_43, 1); > + > + matrix3 = Inverse3x3() * translation;</span > Is this really correct? I get Inverse[{{a,b,c,0},{d,e,f,0},{g,e,h,0},{x,y,z,1}}] == {{1,0,0,0},{0,1,0,0},{0,0,1,0},{-x,-y,-z,1}}.Inverse[{{a,b,c,0},{d,e,f,0},{g,e,h,0},{0,0,0,1}}]. I.e., matrix3 = translation * Inverse3x3(); Also, the vast majority of these multiplications are by 0 or 1, but because things get stored to memory and then read back, the optimizer is unlikely to eliminate them all. Perhaps it's worth expanding them out, e.g.: matrix3 = Inverse3x3(); matrix3[3] = gfxPointH3D(-_41*matrix3._11 - _42*matrix3._22 - _43*matrix3._33, ... That reduces the number of multiplications from 64 to 9. If you opt not to do that, you should still at least use the gfx3DMatrix::Translation() factory, rather than the translation[3] = ... construction you use above. @@ +294,5 @@ <span class="quote">> + gfx3DMatrix translation; > + translation[3] = gfxPointH3D(-_41, -_42, -_43, 1); > + > + matrix3 = Inverse3x3() * translation; > + test = PR_TRUE;</span > So, this looks like left-over debugging code. In particular, you aren't actually returning the inverse you just computed, but are continuing on to compute the full 4x4 inverse. @@ +301,3 @@ <span class="quote">> gfxFloat det = Determinant(); > if (det == 0.0) { > + return gfx3DMatrix();</span > Ah, I see you're actually explicitly changing the behavior away from the Cairo behavior (i.e., returning the identity instead of the original, singular matrix). Is there a reason for this? Perhaps it should be documented? @@ +356,4 @@ <span class="quote">> > + temp /= det; > + > + //NS_ABORT_IF_FALSE(!test || matrix3 == temp, "AAAAH");</span > Either #ifdef this to actually work in debug mode, or remove it entirely. Don't just leave it here commented out. @@ +407,5 @@ <span class="quote">> +gfx3DMatrix::Normalize() > +{ > + for (int i = 0; i < 4; i++) { > + for (int j = 0; j < 4; j++) { > + this->operator [](i)[j] /= this->operator [](3)[3];</span > Perhaps (*this)[i][j] would be cleaner? @@ +465,5 @@ <span class="quote">> + return gfxPointH3D(x, y, z, w); > +} > + > +gfxPointH3D > +gfx3DMatrix::Transform4DLeft(const gfxPointH3D& aPoint) const</span > "Left" messes with my head. It's correct for OpenGL, where points are column vectors multiplied on the right and the matrix is stored in column-major order, but it's backwards for D3D, where points are row vectors multiplied on the left to begin with (and in particular, this is how multiplication is documented to work for the 2D gfxMatrix class). Perhaps TransposeTransform4D? ::: gfx/thebes/gfxQuaternion.h @@ +40,5 @@ <span class="quote">> + > +#include "mozilla/gfx/BasePoint4D.h" > +#include "gfx3DMatrix.h" > + > +#define MAX(a,b) ((a)>(b)?(a):(b))</span > It's probably not a great idea to put a macro named MAX in a header file like this. I also recommend documenting that it has to return b when a==b, and why. Otherwise someone is likely to replace it with some other MAX implementation and break things without realizing it. @@ +67,5 @@ <span class="quote">> + gfxFloat dot = DotProduct(aOther); > + if (dot == 1.0) { > + return *this; > + } > + gfxFloat theta = acos(dot);</span > Rounding errors in the quaternion normalization or dot product could potentially give you a value slightly outside the range [-1,1], which will make acos() return NaN. I recommend clamping dot to that range. @@ +70,5 @@ <span class="quote">> + } > + gfxFloat theta = acos(dot); > + > + gfxQuaternion left = *this; > + left *= sin((1 - aCoeff) * theta) / sin(theta);</span > Instead of dividing by sin(theta), it may be better to use gfxFloat rsintheta = 1/sqrt(1 - dot*dot); and then multiply by rsintheta. Square roots, and particularly reciprocal square roots, are much easier to compute. @@ +73,5 @@ <span class="quote">> + gfxQuaternion left = *this; > + left *= sin((1 - aCoeff) * theta) / sin(theta); > + > + gfxQuaternion right = aOther; > + right *= sin(aCoeff * theta) / sin(theta);</span > You can also replace the remaining two calls to sin() with a call to sin() and cos() on the same angle (which is faster on many platforms). E.g., using the identity sin((1 - aCoeff) * theta)/sin(theta) == sin(theta - aCoeff*theta)/sin(theta) == (sin(theta)*cos(aCoeff*theta) - cos(theta)*sin(aCoeff*theta))/sin(theta) == sin(theta)*cos(aCoeff*theta)/sin(theta) - cos(theta)*sin(aCoeff*theta)/sin(theta) == cos(aCoeff*theta) - dot*sin(aCoeff*theta)/sin(theta) leads to the code: gfxFloat w = sin(aCoeff*theta)*rsintheta; left *= cos(aCoeff*theta) - dot*w; right *= w; @@ +89,5 @@ <span class="quote">> + temp[1][1] = 1 - (2 * x * x) - (2 * z * z); > + temp[1][2] = (2 * y * z) + (2 * w * x); > + temp[2][0] = (2 * x * z) + (2 * w * y); > + temp[2][1] = (2 * y * z) - (2 * w * x); > + temp[2][2] = 1 - (2 * x * x) - (2 * y * y);</span > Recommend factoring out the 2's in each term, to save 9 multiplies, e.g., temp[0][0] = 1 - 2*(y * y - z * z); The compiler is generally conservative about doing such optimizations for you unless you compile with -ffast-math or an equivalent.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548634&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2" class="" >Attachment #548634</a> - Flags: review?(tterribe) → review-</div></div></div><div class="change-set" id="c179"><div class="comment" data-id="5646787" data-no="179" data-tags=""> <table class="layout-table change-head " id="ch-179" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a65001168_5038"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-179" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-179" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c179">Comment 179</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 19:20 PDT" data-time="1313029215">13 years ago</span> </div> </td> </tr> <tr id="ctag-179"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-179" data-comment-id="5646787">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548635" name="attach_548635" title="Part 16 - Implement transitions/animations for 3d transforms.">attachment 548635</a> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms.">[details]</a> <a href="/attachment.cgi?id=548635&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548635'>[review]</a> Part 16 - Implement transitions/animations for 3d transforms. Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=548635" name="attach_548635" title="Part 16 - Implement transitions/animations for 3d transforms.">attachment 548635</a> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms.">[details]</a> <a href="/attachment.cgi?id=548635&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548635'>[review]</a>: ----------------------------------------------------------------- r+ with some suggestions, but I did not review the style stuff carefully, as I'm relying on the fact that dbaron knows that code much better than I do. ::: gfx/2d/BasePoint4D.h @@ +72,5 @@ <span class="quote">> Sub operator+(const Sub& aPoint) const { > return Sub(x + aPoint.x, y + aPoint.y, z + aPoint.z, w + aPoint.w); > } > Sub operator-(const Sub& aPoint) const { > + return Sub(x - aPoint.x, y - aPoint.y, z - aPoint.z, w - aPoint.w);</span > You should just fix this in Part 15, not here. ::: layout/style/nsStyleAnimation.cpp @@ +1115,5 @@ <span class="quote">> > float scaleY = sqrt(C * C + D * D); > C /= scaleY; > D /= scaleY; > +</span > Whitespace-only change. @@ +1120,4 @@ <span class="quote">> XYshear /= scaleY; > > + // A*D - B*C should now be 1 or -1 > + NS_ASSERTION(0.99 < PR_ABS(A*D - B*C) && PR_ABS(A*D - B*C) < 1.01,</span > Why the change from NS_ABS to PR_ABS? There's plenty of other uses of NS_ABS that you didn't change. @@ +1147,5 @@ <span class="quote">> +static PRBool > +Decompose3DMatrix(const gfx3DMatrix &aMatrix, gfxPoint3D &aScale, > + float aShear[3], gfx3DMatrix &aRotate, > + gfxPoint3D &aTranslate, gfxPointH3D &aPerspective) > +{</span > This is a pretty straightforward translation of the code from <a rel="nofollow" href="http://dev.w3.org/csswg/css3-2d-transforms/#unmatrix">http://dev.w3.org/csswg/css3-2d-transforms/#unmatrix</a> to our C++ API, except you dropped all the comments from the original code. It would be nice if you could preserve those. Referencing that link would be a good idea, too. @@ +1194,5 @@ <span class="quote">> + row[i].z = local[i].z; > + } > + > + aScale.x = row[0].Length(); > + row[0].Normalize();</span > You just computed Length(), but Normalize() will compute it again internally. Recommend just dividing by the length you already computed. Ditto for the other two occurrences below. @@ +1197,5 @@ <span class="quote">> + aScale.x = row[0].Length(); > + row[0].Normalize(); > + > + aShear[XYSHEAR] = row[0].DotProduct(row[1]); > + row[1] += row[0] * -aShear[XYSHEAR];</span > row[1] -= row[0] * aShear[XYSHEAR] perhaps? Ditto for the other two lines below. @@ +1224,5 @@ <span class="quote">> + > + for (int i =0; i < 3; i++) { > + aRotate[i] = gfxPointH3D(row[i].x, row[i].y, row[i].z, 0); > + } > + aRotate[3] = gfxPointH3D(0, 0, 0, 1);</span > Is it really worth breaking out local into row[]? Operating on the rows of local directly would add 15 FMA's (assuming I can count), but the copies add 18 loads/stores, not counting loop overhead, and a bunch of code. @@ +1310,4 @@ <span class="quote">> > + gfxPointH3D perspective = > + InterpolateNumerically(perspective1, perspective2, aProgress); > + if (perspective != gfxPointH3D(0, 0, 0, 1)) {</span > What's the point of this check? Can't we just write perspective into result unconditionally? It would seem cheaper to always do that than to even do this test. I'm dubious about the utility of some of the other checks below, as well. @@ +1317,5 @@ <span class="quote">> + gfxPoint3D translate = > + InterpolateNumerically(translate1, translate2, aProgress); > + if (translate != gfxPoint3D(0, 0, 0)) { > + gfx3DMatrix temp = gfx3DMatrix::Translation(translate); > + result = temp * result;</span > As in the last patch, you can reduce this from 64 multiplies to 9. Perhaps you should just add a function for it to gfx3DMatrix? @@ +1322,5 @@ <span class="quote">> + } > + > + gfxQuaternion q1(rotate1); > + gfxQuaternion q2(rotate2); > + gfxQuaternion q3 = q1.Slerp(q2, aProgress);</span > Perhaps it would be better to have Decompose3DMatrix return a gfxQuaternion directly. Especially combined with the suggestion to just keep things in "local", it would avoid copying everything from local to aRotate at the end. @@ +1335,5 @@ <span class="quote">> + InterpolateNumerically(shear1[YZSHEAR], shear2[YZSHEAR], aProgress); > + if (yzshear != 0.0) { > + gfx3DMatrix temp; > + temp._32 = yzshear; > + result = temp * result;</span > This can also be reduced to result[2] += yzshear*result[1], going from 64 multiplies to 4 and 3 lines of code to 1. @@ +1358,5 @@ <span class="quote">> + gfxPoint3D scale = > + InterpolateNumerically(scale1, scale2, aProgress); > + if (scale != gfxPoint3D(1.0, 1.0, 1.0)) { > + gfx3DMatrix temp = gfx3DMatrix::Scale(scale.x, scale.y, scale.z); > + result = temp * result;</span > This can also be reduced from 64 multiplies to 12, though it requires 3 lines of code instead of 2. @@ +1576,4 @@ <span class="quote">> > // FIXME: If the matrix contains only numbers then we could decompose > // here. We can't do this for matrix3d though, so it's probably > // best to stay consistent.</span > I'm not sure that the second sentence here is true any longer. Certainly doing the decomposition once instead of for every step of the animation would save more computation than basically all of the other optimizations I pointed out combined.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms." class="" >Attachment #548635</a> - Flags: review?(tterribe) → review+</div></div></div><div class="change-set" id="c180"><div class="comment" data-id="5646797" data-no="180" data-tags=""> <table class="layout-table change-head " id="ch-180" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_382769" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/8f64ddf291d83cdc891c05ee5d5cc5dc?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_382769" id="a65001168_5038"><a class="email " href="/user_profile?user_id=382769" > <span class="fna">Benoit Jacob [:bjacob] (mostly away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-180" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-180" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c180">Comment 180</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 19:24 PDT" data-time="1313029497">13 years ago</span> </div> </td> </tr> <tr id="ctag-180"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-180" data-comment-id="5646797">I concur with Timothy, a Vector or Matrix class should store all its coefficients as a single one-dimensional array. Then, if you want to address vector coefficients as "x" and "y", implement that as inline methods. It is then completely safe to assume that they are inlined (provided optimization is enabled) and incur zero overhead.</div></div><div class="change-set" id="c181"><div class="comment" data-id="5646824" data-no="181" data-tags=""> <table class="layout-table change-head assignee" id="ch-181" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a65001168_5038"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-181" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-181" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c181">Comment 181</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 20:07 PDT" data-time="1313032071">13 years ago</span> </div> </td> </tr> <tr id="ctag-181"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-181" data-comment-id="5646824"><span class="quote">> I'm not sure that the second sentence here is true any longer. Certainly > doing the decomposition once instead of for every step of the animation > would save more computation than basically all of the other optimizations I > pointed out combined.</span > I believe this would only prevent us from decomposing multiple times for each stage of the animation. Ie for visible region calculation, and for drawing. I think we'd need a separate optimization to let us decompose the list once, and then start using those lists for future steps of the animation.</div></div><div class="change-set" id="c182"><div class="comment" data-id="5646894" data-no="182" data-tags=""> <table class="layout-table change-head " id="ch-182" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a65001168_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a65001168_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-182" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-182" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c182">Comment 182</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 21:02 PDT" data-time="1313035357">13 years ago</span> </div> </td> </tr> <tr id="ctag-182"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-182" data-comment-id="5646894">Just use NS_MAX instead of MAX.</div></div><div class="change-set" id="a65025043_327062"><div class="change" id="aa65025043_327062"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_327062" id="a65025043_327062"><img src="https://secure.gravatar.com/avatar/ef9716bf6d5b21ca987f6909f2d5e878?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_327062" id="a65025043_327062"><a class="email " href="/user_profile?user_id=327062" > <span class="fna">adminnu</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a65025043_327062" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a65025043_327062"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a65025043_327062">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-10 23:53 PDT" data-time="1313045619">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - no jquery action ellement on enabling css3 properties -moz-transform to ellement input[type=file]" href="/show_bug.cgi?id=677878">677878</a></div></div></div><div class="change-set" id="c183"><div class="comment" data-id="5647133" data-no="183" data-tags=""> <table class="layout-table change-head " id="ch-183" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_302720" id="a65025043_327062"><img src="https://secure.gravatar.com/avatar/42f6fa059df34a3d5c3e4091c50ebde7?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_302720" id="a65025043_327062"><a class="email " href="/user_profile?user_id=302720" > <span class="fna">:Ms2ger (he/him; ⌚ UTC+1/+2)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-183" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-183" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c183">Comment 183</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-11 02:09 PDT" data-time="1313053795">13 years ago</span> </div> </td> </tr> <tr id="ctag-183"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-183" data-comment-id="5647133">(In reply to Timothy B. Terriberry (:derf) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c179">comment #179</a>) <span class="quote">> Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548635" name="attach_548635" title="Part 16 - Implement transitions/animations for 3d transforms.">attachment 548635</a> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms.">[details]</a> <a href="/attachment.cgi?id=548635&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms.">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548635'>[review]</a> > Part 16 - Implement transitions/animations for 3d transforms. > @@ +1120,4 @@ > > XYshear /= scaleY; > > > > + // A*D - B*C should now be 1 or -1 > > + NS_ASSERTION(0.99 < PR_ABS(A*D - B*C) && PR_ABS(A*D - B*C) < 1.01, > > Why the change from NS_ABS to PR_ABS? There's plenty of other uses of NS_ABS > that you didn't change.</span > FwIW, people have spent quite some time eradicating PR_ABS. Please be so kind not to revert their work.</div></div><div class="change-set" id="a65033407_8636"><div class="change" id="aa65033407_8636"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_8636" id="a65033407_8636"><img src="https://secure.gravatar.com/avatar/1875645d5594d36bca29657d51d24ed6?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_8636" id="a65033407_8636"><a class="email " href="/user_profile?user_id=8636" > <span class="fna">Makoto Kato [:m_kato]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a65033407_8636" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a65033407_8636"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a65033407_8636">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-11 02:13 PDT" data-time="1313053983">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED DUPLICATE - Mouse event doesn't work for SVGdocument + 2D transform after landing bug 505115" href="/show_bug.cgi?id=678151">678151</a></div></div></div><div class="change-set" id="c184"><div class="comment" data-id="5653409" data-no="184" data-tags=""> <table class="layout-table change-head assignee" id="ch-184" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a65033407_8636"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a65033407_8636"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-184" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-184" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c184">Comment 184</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-14 19:35 PDT" data-time="1313375731">13 years ago</span> </div> </td> </tr> <tr id="ctag-184"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-553086" class="attachment patch obsolete" data-id="553086" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="quaternions-and-friends"> <meta itemprop="contentSize" content="34130"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=553086"> <a class="link" href="attachment.cgi?id=553086&action=diff"> <span id="att-553086-description" itemprop="description">Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3</span></a> (obsolete) — <a href="attachment.cgi?id=553086&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553086">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-184" data-comment-id="5653409">Fixed most of (if not all) review comments</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548634&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v2" class="" >Attachment #548634</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=553086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3" class="" >Attachment #553086</a> - Flags: review?(tterribe)</div></div></div><div class="change-set" id="c185"><div class="comment" data-id="5653412" data-no="185" data-tags=""> <table class="layout-table change-head assignee" id="ch-185" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a65033407_8636"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a65033407_8636"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-185" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-185" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c185">Comment 185</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-14 19:37 PDT" data-time="1313375822">13 years ago</span> </div> </td> </tr> <tr id="ctag-185"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-553087" class="attachment patch obsolete" data-id="553087" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transitions"> <meta itemprop="contentSize" content="37379"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=553087"> <a class="link" href="attachment.cgi?id=553087&action=diff"> <span id="att-553087-description" itemprop="description">Part 16 - Implement transitions/animations for 3d transforms. v2</span></a> (obsolete) — <a href="attachment.cgi?id=553087&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553087">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-185" data-comment-id="5653412">Fixed Tim's review comments Carrying forward r=derf</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms." class="" >Attachment #548635</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=553087&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v2" class="" >Attachment #553087</a> - Flags: review+</div><div class="change"> <a href="/attachment.cgi?id=548635&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms." class="" >Attachment #548635</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="a65355498_380838"><div class="change" id="aa65355498_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a65355498_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a65355498_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a65355498_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a65355498_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-14 19:41 PDT" data-time="1313376074">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=553087&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v2" class="" >Attachment #553087</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c186"><div class="comment" data-id="5654225" data-no="186" data-tags=""> <table class="layout-table change-head " id="ch-186" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a65355498_380838"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-186" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-186" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c186">Comment 186</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-15 08:44 PDT" data-time="1313423081">13 years ago</span> </div> </td> </tr> <tr id="ctag-186"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-186" data-comment-id="5654225">(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c182">comment #182</a>) <span class="quote">> Just use NS_MAX instead of MAX.</span > There's potential for a subtle bug here. The first argument to MAX can be -0 instead of 0, and the second one is always 0. They'll compare equal with the standard relational operators, so it depends on the exact implementation which one gets returned. If you pass -0 instead of 0 to sqrt(), you'll get NaN back. Although the current implementation of NS_MAX looks like it does what we want, and it's unlikely to change, I don't see this as a documented part of its interface, and think it's safer to have a custom version where the desired behavior _is_ documented.</div></div><div class="change-set" id="c187"><div class="comment" data-id="5654243" data-no="187" data-tags=""> <table class="layout-table change-head " id="ch-187" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_302720" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/42f6fa059df34a3d5c3e4091c50ebde7?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_302720" id="a65355498_380838"><a class="email " href="/user_profile?user_id=302720" > <span class="fna">:Ms2ger (he/him; ⌚ UTC+1/+2)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-187" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-187" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c187">Comment 187</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-15 08:50 PDT" data-time="1313423457">13 years ago</span> </div> </td> </tr> <tr id="ctag-187"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-187" data-comment-id="5654243">You could document it for NS_MAX, and write a test?</div></div><div class="change-set" id="c188"><div class="comment" data-id="5655417" data-no="188" data-tags=""> <table class="layout-table change-head " id="ch-188" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a65355498_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-188" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-188" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c188">Comment 188</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-15 15:35 PDT" data-time="1313447716">13 years ago</span> </div> </td> </tr> <tr id="ctag-188"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-188" data-comment-id="5655417">Yeah, let's just document it for NS_MAX. Very good catch though, I wouldn't have thought of it.</div></div><div class="change-set" id="c189"><div class="comment" data-id="5662745" data-no="189" data-tags=""> <table class="layout-table change-head " id="ch-189" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_296777" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/e79a0c577aa716ea632e557a0f1b2da8?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_296777" id="a65355498_380838"><a class="email disabled" href="/user_profile?user_id=296777" > <span class="fna">Brandon Sterne (:bsterne)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-189" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-189" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c189">Comment 189</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-18 09:44 PDT" data-time="1313685847">13 years ago</span> </div> </td> </tr> <tr id="ctag-189"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-189" data-comment-id="5662745">Jesse is going to add this to his DOM fuzzers.</div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed][inbound][sr:bsterne] → [approved-patches-landed][inbound][rat:jesse fuzzing]</div></div></div><div class="change-set" id="c190"><div class="comment" data-id="5667661" data-no="190" data-tags=""> <table class="layout-table change-head " id="ch-190" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a65355498_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-190" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-190" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c190">Comment 190</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-20 18:58 PDT" data-time="1313891932">13 years ago</span> </div> </td> </tr> <tr id="ctag-190"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-190" data-comment-id="5667661">Comment on <span class=""><a href="/attachment.cgi?id=548083" name="attach_548083" title="Part 14a: Add -moz-transform-style CSS property">attachment 548083</a> <a href="/attachment.cgi?id=548083&action=edit" title="Part 14a: Add -moz-transform-style CSS property">[details]</a> <a href="/attachment.cgi?id=548083&action=diff" title="Part 14a: Add -moz-transform-style CSS property">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548083'>[review]</a> Part 14a: Add -moz-transform-style CSS property We need to do the same things done in <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - css3-3d-transforms isn't fully disabled since properties (which sites detect) are added to IDL" href="/show_bug.cgi?id=677173">bug677173</a> to hide these properties for now. (I'd like to come up with a better solution so that the pref can fully enable them, though; the main obstacle there is the nsIDOMCSS2Properties interface. If we had no interface at all, things would be simpler...) In property_database.js, you should: - use tabs to match the rest of the file - use invalid_values rather than invalid_value r=dbaron with that</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548083&action=edit" title="Part 14a: Add -moz-transform-style CSS property" class="" >Attachment #548083</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c191"><div class="comment" data-id="5667662" data-no="191" data-tags=""> <table class="layout-table change-head " id="ch-191" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a65355498_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-191" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-191" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c191">Comment 191</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-20 18:59 PDT" data-time="1313891969">13 years ago</span> </div> </td> </tr> <tr id="ctag-191"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-191" data-comment-id="5667662">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=548636" name="attach_548636" title="Part 17 - Add style tests for the new transform functions, and transitions">attachment 548636</a> <a href="/attachment.cgi?id=548636&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions">[details]</a> <a href="/attachment.cgi?id=548636&action=diff" title="Part 17 - Add style tests for the new transform functions, and transitions">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=548636'>[review]</a> Part 17 - Add style tests for the new transform functions, and transitions In property_database.js, you need tabs rather than spaces. Why do the perspective tests all take <number> arguments when the spec says perspective() takes lengths? I guess that's a change in the editor's draft since the working draft. I suppose numbers do make sense -- except I'd expect perspective() to be consistent with translatez(). I think we should change one of them. test_transitions_per_property.html: Please leave the existing tests using rotate() rather than converting them all to rotatez(), but it's not a bad idea to test them with rotatez in *addition*. (Also, if the pref is working right, those should require the pref... which makes me think that either something is wrong or you didn't test this with the pref off.) Some of the horrible expected: fields with matrix3d() values would have been easier to write with c()... but now that you've written them they're probably worth leaving. I'm guessing you didn't test with the pref off, or maybe that there's another patch in the series to turn the pref on. You probably need a pref check in property_database.js to make the addition of some of the values to those arrays condition on the pref. Should be easy enough with the structure [ values, for, always ].concat(check_pref() ? [values, for, 3d] : []) r=dbaron with those things fixed</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548636&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions" class="" >Attachment #548636</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c192"><div class="comment" data-id="5667663" data-no="192" data-tags=""> <table class="layout-table change-head " id="ch-192" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a65355498_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a65355498_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-192" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-192" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c192">Comment 192</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-20 19:00 PDT" data-time="1313892021">13 years ago</span> </div> </td> </tr> <tr id="ctag-192"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-192" data-comment-id="5667663">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=553087" name="attach_553087" title="Part 16 - Implement transitions/animations for 3d transforms. v2">attachment 553087</a> <a href="/attachment.cgi?id=553087&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v2">[details]</a> <a href="/attachment.cgi?id=553087&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms. v2">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553087'>[review]</a> Part 16 - Implement transitions/animations for 3d transforms. v2 comments on the nsComputedDOMStyle.cpp part only (haven't gotten through nsStyleAnimation.cpp yet): So I'm not sure why these changes are in this patch. But that's ok for now, though I think they should probably be separate. More importantly, though, this needs to output a result that we can parse. matrix3d() takes 16 <number>s, as it should, so this is producing matrix3d() expressions that aren't parseable. Given appropriate tests in property_database.js (and their being enabled), this should cause test failures. If it doesn't, there's a problem. I think the best way to fix this is: + change matrix() to accept <number> or <length> for the transformation parts, so that matrix() and matrix3d() both accept the syntax WebKit accepts, but that ours also accepts px for matrix() as we have in the past + change nsComputedDOMStyle::DoGetMozTransform to never output "px" review- on this part of the patch because I'd like to look at that again once you've done it</div></div><div class="change-set" id="a66212055_5038"><div class="change" id="aa66212055_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a66212055_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a66212055_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66212055_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66212055_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66212055_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-24 17:37 PDT" data-time="1314232631">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">No longer depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - poor text rendering with dancing characters at html5test.com" href="/show_bug.cgi?id=604899">604899</a></div></div></div><div class="change-set" id="a66212085_5038"><div class="change" id="aa66212085_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a66212085_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a66212085_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66212085_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66212085_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66212085_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-24 17:37 PDT" data-time="1314232661">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">No longer depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Line artifacts on depth-of-field chrome experiment" href="/show_bug.cgi?id=615225">615225</a></div></div></div><div class="change-set" id="a66212491_278074"><div class="change" id="aa66212491_278074"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_278074" id="a66212491_278074"><img src="https://secure.gravatar.com/avatar/cd9b85b2e112bd7941b21ad03f42604e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_278074" id="a66212491_278074"><a class="email " href="/user_profile?user_id=278074" > <span class="fna">Daniel Holbert [:dholbert]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66212491_278074" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66212491_278074"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66212491_278074">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-24 17:44 PDT" data-time="1314233067">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - poor text rendering with dancing characters at html5test.com" href="/show_bug.cgi?id=604899">604899</a></div></div></div><div class="change-set" id="a66224663_380838"><div class="change" id="aa66224663_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66224663_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66224663_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66224663_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-24 21:07 PDT" data-time="1314245239">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Improve gfx3DMatrix multiplication performance" href="/show_bug.cgi?id=681858">681858</a></div></div></div><div class="change-set" id="c193"><div class="comment" data-id="5678920" data-no="193" data-tags=""> <table class="layout-table change-head " id="ch-193" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5003" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/4c29696cb5fe35b184e1221706f87874?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5003" id="a66224663_380838"><a class="email " href="/user_profile?user_id=5003" > <span class="fna">Asa Dotzler [:asa]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-193" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-193" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c193">Comment 193</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 14:28 PDT" data-time="1314307706">13 years ago</span> </div> </td> </tr> <tr id="ctag-193"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-193" data-comment-id="5678920">release drivers are not going to track this for 8 because we believe it is turned off for the 8 release (on aurora today.) If that is not correct, please re-nominate.</div><div class="activity"><div class="change"> <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=isnotempty">tracking-firefox8</a>: <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=equals&v1=%3F">?</a> → <a href="/buglist.cgi?f1=cf_tracking_firefox8&o1=equals&v1=-">-</a></div></div></div><div class="change-set" id="c194"><div class="comment" data-id="5679761" data-no="194" data-tags=""> <table class="layout-table change-head assignee" id="ch-194" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-194" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-194" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c194">Comment 194</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 20:27 PDT" data-time="1314329249">13 years ago</span> </div> </td> </tr> <tr id="ctag-194"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-555944" class="attachment patch obsolete" data-id="555944" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transitions"> <meta itemprop="contentSize" content="37513"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=555944"> <a class="link" href="attachment.cgi?id=555944&action=diff"> <span id="att-555944-description" itemprop="description">Part 16 - Implement transitions/animations for 3d transforms. v3</span></a> (obsolete) — <a href="attachment.cgi?id=555944&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555944">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-194" data-comment-id="5679761">That bug did indeed break tests. I've gone for the simple solution of just printing 3d matrices without 'px'. This <length>/<number> problem exists for other functions too, so I'd like to handle it all in one single patch.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=553087&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v2" class="" >Attachment #553087</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=555944&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v3" class="" >Attachment #555944</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=553087&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v2" class="" >Attachment #553087</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="c195"><div class="comment" data-id="5679763" data-no="195" data-tags=""> <table class="layout-table change-head assignee" id="ch-195" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-195" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-195" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c195">Comment 195</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 20:28 PDT" data-time="1314329339">13 years ago</span> </div> </td> </tr> <tr id="ctag-195"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-555946" class="attachment patch obsolete" data-id="555946" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-tests"> <meta itemprop="contentSize" content="9203"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=555946"> <a class="link" href="attachment.cgi?id=555946&action=diff"> <span id="att-555946-description" itemprop="description">Part 17 - Add style tests for the new transform functions, and transitions v2</span></a> (obsolete) — <a href="attachment.cgi?id=555946&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555946">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-195" data-comment-id="5679763">Updated so these actually pass again with the current patch queue. Indeed, I've only tested these with 3d transforms enabled. Not setting review flag for now until I implement handling these without transforms enabled.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548636&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions" class="" >Attachment #548636</a> - Attachment is obsolete: true</div></div></div><div class="change-set" id="c196"><div class="comment" data-id="5679826" data-no="196" data-tags=""> <table class="layout-table change-head assignee" id="ch-196" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-196" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-196" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c196">Comment 196</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 21:25 PDT" data-time="1314332751">13 years ago</span> </div> </td> </tr> <tr id="ctag-196"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-555950" class="attachment patch obsolete" data-id="555950" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-tests"> <meta itemprop="contentSize" content="9179"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=555950"> <a class="link" href="attachment.cgi?id=555950&action=diff"> <span id="att-555950-description" itemprop="description">Part 17 - Add style tests for the new transform functions, and transitions v3</span></a> (obsolete) — <a href="attachment.cgi?id=555950&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555950">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-196" data-comment-id="5679826">Updated test_transitions_per_property.html</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555946&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions v2" class="" >Attachment #555946</a> - Attachment is obsolete: true</div></div></div><div class="change-set" id="c197"><div class="comment" data-id="5679827" data-no="197" data-tags=""> <table class="layout-table change-head assignee" id="ch-197" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-197" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-197" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c197">Comment 197</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 21:26 PDT" data-time="1314332806">13 years ago</span> </div> </td> </tr> <tr id="ctag-197"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-555951" class="attachment patch obsolete" data-id="555951" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="negative-length-fix"> <meta itemprop="contentSize" content="1058"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=555951"> <a class="link" href="attachment.cgi?id=555951&action=diff"> <span id="att-555951-description" itemprop="description">Part 18 - Make the perspective() transform function actually fail on numbers <= 0</span></a> (obsolete) — <a href="attachment.cgi?id=555951&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555951">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-197" data-comment-id="5679827"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555951&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0" class="" >Attachment #555951</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c198"><div class="comment" data-id="5679880" data-no="198" data-tags=""> <table class="layout-table change-head " id="ch-198" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a66224663_380838"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-198" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-198" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c198">Comment 198</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 22:13 PDT" data-time="1314335581">13 years ago</span> </div> </td> </tr> <tr id="ctag-198"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-198" data-comment-id="5679880">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=553086" name="attach_553086" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">attachment 553086</a> <a href="/attachment.cgi?id=553086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">[details]</a> <a href="/attachment.cgi?id=553086&action=diff" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553086'>[review]</a> Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=553086" name="attach_553086" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">attachment 553086</a> <a href="/attachment.cgi?id=553086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">[details]</a> <a href="/attachment.cgi?id=553086&action=diff" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=553086'>[review]</a>: ----------------------------------------------------------------- r+ from me, but you should probably address roc's <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c188">comment 188</a>. ::: gfx/2d/BasePoint3D.h @@ +61,5 @@ <span class="quote">> // compiler generated default assignment operator > > + T& operator[](int aIndex) { > + NS_ABORT_IF_FALSE(aIndex >= 0 && aIndex <= 2, "Invalid array index"); > + return *reinterpret_cast<T*>((&x)+aIndex);</span > Is the reinterpret_cast as written here necessary? &x should already be of type T*. One subtlety here is that automated tools like coverity may detect references past the end of the object x as being out-of-bounds. It might be possible that a reinterpret_cast to an array of size 3 instead would avoid triggering bogus reports in coverity, but I have no way to test this. The same comment applies to all the other places you do this. ::: gfx/thebes/gfx3DMatrix.cpp @@ +260,5 @@ <span class="quote">> + } > + > + gfx3DMatrix temp; > + > + temp._11 = (_22 * _33 - _23 * _32) / det;</span > Making the "/ det" local is good (the optimizer doesn't have to deal with things going out to memory and back and trying to figure out if intermediate things have side-effects). But my suggestion was to compute the reciprocal "1 / det" and then multiply by that. It's just a suggestion, and if you want to ignore me, feel free. It can be a ULP or two less accurate than doing all the divisions, but it should be significantly faster. Not only do divisions take many cycles, but on x86 they are also not pipelined, so all your other floating-point operations will stall, waiting for them.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=553086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3" class="" >Attachment #553086</a> - Flags: review?(tterribe) → review+</div></div></div><div class="change-set" id="c199"><div class="comment" data-id="5679884" data-no="199" data-tags=""> <table class="layout-table change-head " id="ch-199" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a66224663_380838"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-199" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-199" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c199">Comment 199</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-25 22:18 PDT" data-time="1314335906">13 years ago</span> </div> </td> </tr> <tr id="ctag-199"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-199" data-comment-id="5679884">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=555944" name="attach_555944" title="Part 16 - Implement transitions/animations for 3d transforms. v3">attachment 555944</a> <a href="/attachment.cgi?id=555944&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v3">[details]</a> <a href="/attachment.cgi?id=555944&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms. v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555944'>[review]</a> Part 16 - Implement transitions/animations for 3d transforms. v3 Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=555944" name="attach_555944" title="Part 16 - Implement transitions/animations for 3d transforms. v3">attachment 555944</a> <a href="/attachment.cgi?id=555944&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v3">[details]</a> <a href="/attachment.cgi?id=555944&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms. v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555944'>[review]</a>: ----------------------------------------------------------------- I know I already r+'d this, but I had a few more quick comments anyway. ::: layout/style/nsStyleAnimation.cpp @@ +1163,5 @@ <span class="quote">> + /* Normalize the matrix */ > + local.Normalize(); > + > + /** > + * perspective is used to solve for perspective, but it also provides</span > This sounds pretty funny. Perhaps "This" in place of the first "perspective". @@ +1205,5 @@ <span class="quote">> + /* Compute X scale factor and normalize first row. */ > + aScale.x = local[0].Length(); > + local[0] /= aScale.x; > + > + /* Compute XY shear factor and make 2nd local orthogonal to 1st. */</span > This looks like an erroneous search and replace? I think "2nd row" still makes more sense here than "2nd local" (there's only one variable named "local"). Same for all the places below. @@ +1228,5 @@ <span class="quote">> + aShear[XZSHEAR] /= aScale.z; > + aShear[YZSHEAR] /= aScale.z; > + > + /** > + * At this point, the matrix (in locals) is orthonormal.</span > Unless you actually want to rename the variable to "locals"... but I think that's pretty silly.</div></div><div class="change-set" id="c200"><div class="comment" data-id="5681908" data-no="200" data-tags=""> <table class="layout-table change-head assignee" id="ch-200" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-200" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-200" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c200">Comment 200</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-26 16:15 PDT" data-time="1314400544">13 years ago</span> </div> </td> </tr> <tr id="ctag-200"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556169" class="attachment patch" data-id="556169" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="quaternions-and-friends"> <meta itemprop="contentSize" content="34445"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556169"> <a class="link" href="attachment.cgi?id=556169&action=diff"> <span id="att-556169-description" itemprop="description">Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v4</span></a> — <a href="attachment.cgi?id=556169&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556169">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-200" data-comment-id="5681908">Fixed review comments, carrying forward r=derf</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=553086&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v3" class="" >Attachment #553086</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=556169&action=edit" title="Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions v4" class="" >Attachment #556169</a> - Flags: review+</div></div></div><div class="change-set" id="c201"><div class="comment" data-id="5682018" data-no="201" data-tags=""> <table class="layout-table change-head assignee" id="ch-201" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66224663_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-201" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-201" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c201">Comment 201</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-26 17:09 PDT" data-time="1314403793">13 years ago</span> </div> </td> </tr> <tr id="ctag-201"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-201" data-comment-id="5682018">Landed parts 14a, 14b and 15 on inbound: <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/14eb41309965">http://hg.mozilla.org/integration/mozilla-inbound/rev/14eb41309965</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/364548e43748">http://hg.mozilla.org/integration/mozilla-inbound/rev/364548e43748</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/be7cefceceac">http://hg.mozilla.org/integration/mozilla-inbound/rev/be7cefceceac</a></div></div><div class="change-set" id="c202"><div class="comment" data-id="5682128" data-no="202" data-tags=""> <table class="layout-table change-head " id="ch-202" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_318037" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/f7085aa243abb02fcf365d91e55aa014?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_318037" id="a66224663_380838"><a class="email disabled" href="/user_profile?user_id=318037" > <span class="fna">Dean Jackson</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-202" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-202" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c202">Comment 202</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-26 18:30 PDT" data-time="1314408607">13 years ago</span> </div> </td> </tr> <tr id="ctag-202"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-202" data-comment-id="5682128">BTW - if you're up to implementing matrix decomposition, be aware that there was a bug in the spec which was fixed recently. Use the editor's copy at <a rel="nofollow" href="http://dev.w3.org/csswg/css3-2d-transforms/">http://dev.w3.org/csswg/css3-2d-transforms/</a> (decomposition is in the 2d transforms spec, not 3d)</div></div><div class="change-set" id="c203"><div class="comment" data-id="5682444" data-no="203" data-tags=""> <table class="layout-table change-head " id="ch-203" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_240353" id="a66224663_380838"><img src="https://secure.gravatar.com/avatar/0d674a646529b0795088d7a8075fbaea?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_240353" id="a66224663_380838"><a class="email " href="/user_profile?user_id=240353" > <span class="fna">Marco Bonardo [:mak]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-203" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-203" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c203">Comment 203</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-27 01:54 PDT" data-time="1314435288">13 years ago</span> </div> </td> </tr> <tr id="ctag-203"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-203" data-comment-id="5682444"><a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/14eb41309965">http://hg.mozilla.org/mozilla-central/rev/14eb41309965</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/364548e43748">http://hg.mozilla.org/mozilla-central/rev/364548e43748</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/be7cefceceac">http://hg.mozilla.org/mozilla-central/rev/be7cefceceac</a></div><div class="activity"><div class="change">Target Milestone: --- → mozilla9</div></div></div><div class="change-set" id="a66463905_251051"><div class="change" id="aa66463905_251051"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_251051" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/5aef682fbfd7590b9d85d6e8dbab10eb?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_251051" id="a66463905_251051"><a class="email " href="/user_profile?user_id=251051" > <span class="fna">(no longer active)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66463905_251051" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66463905_251051"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66463905_251051">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-27 15:34 PDT" data-time="1314484481">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED WORKSFORME - Layout regression on f8.facebook.com (css3-3d-transforms detection)" href="/show_bug.cgi?id=682627">682627</a></div></div></div><div class="change-set" id="c204"><div class="comment" data-id="5683806" data-no="204" data-tags=""> <table class="layout-table change-head assignee" id="ch-204" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66463905_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-204" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-204" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c204">Comment 204</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 15:34 PDT" data-time="1314570869">13 years ago</span> </div> </td> </tr> <tr id="ctag-204"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-204" data-comment-id="5683806">Thanks Dean! Do you know what changed exactly? The only difference I can see is the scale[0] *= -1; to scale[i] *= -1; change, which I have fixed already.</div></div><div class="change-set" id="c205"><div class="comment" data-id="5683990" data-no="205" data-tags=""> <table class="layout-table change-head assignee" id="ch-205" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66463905_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-205" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-205" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c205">Comment 205</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:15 PDT" data-time="1314584130">13 years ago</span> </div> </td> </tr> <tr id="ctag-205"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556450" class="attachment patch obsolete" data-id="556450" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transitions"> <meta itemprop="contentSize" content="37496"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556450"> <a class="link" href="attachment.cgi?id=556450&action=diff"> <span id="att-556450-description" itemprop="description">Part 16 - Implement transitions/animations for 3d transforms. v4</span></a> (obsolete) — <a href="attachment.cgi?id=556450&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556450">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-205" data-comment-id="5683990">Fixed Tim's comments</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555944&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v3" class="" >Attachment #555944</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=556450&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v4" class="" >Attachment #556450</a> - Flags: review?(dbaron)</div><div class="change"> <a href="/attachment.cgi?id=555944&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v3" class="" >Attachment #555944</a> - Flags: <span class="activity-deleted">review?(dbaron)</span></div></div></div><div class="change-set" id="c206"><div class="comment" data-id="5683994" data-no="206" data-tags=""> <table class="layout-table change-head assignee" id="ch-206" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66463905_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-206" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-206" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c206">Comment 206</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:16 PDT" data-time="1314584211">13 years ago</span> </div> </td> </tr> <tr id="ctag-206"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556451" class="attachment patch" data-id="556451" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-tests"> <meta itemprop="contentSize" content="9948"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556451"> <a class="link" href="attachment.cgi?id=556451&action=diff"> <span id="att-556451-description" itemprop="description">Part 17 - Add style tests for the new transform functions, and transitions v4</span></a> — <a href="attachment.cgi?id=556451&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556451">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-206" data-comment-id="5683994">Fixed review comments, and made them all pass with and without the pref. Carrying forward r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555950&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions v3" class="" >Attachment #555950</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=556451&action=edit" title="Part 17 - Add style tests for the new transform functions, and transitions v4" class="" >Attachment #556451</a> - Flags: review+</div></div></div><div class="change-set" id="c207"><div class="comment" data-id="5683996" data-no="207" data-tags=""> <table class="layout-table change-head assignee" id="ch-207" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66463905_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-207" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-207" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c207">Comment 207</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:17 PDT" data-time="1314584278">13 years ago</span> </div> </td> </tr> <tr id="ctag-207"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556452" class="attachment patch obsolete" data-id="556452" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="length-percent-handling"> <meta itemprop="contentSize" content="15188"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556452"> <a class="link" href="attachment.cgi?id=556452&action=diff"> <span id="att-556452-description" itemprop="description">Part 19: Make all translate functions handle lengths and percents</span></a> (obsolete) — <a href="attachment.cgi?id=556452&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556452">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-207" data-comment-id="5683996"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents" class="" >Attachment #556452</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c208"><div class="comment" data-id="5684003" data-no="208" data-tags=""> <table class="layout-table change-head assignee" id="ch-208" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66463905_251051"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66463905_251051"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-208" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-208" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c208">Comment 208</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:22 PDT" data-time="1314584579">13 years ago</span> </div> </td> </tr> <tr id="ctag-208"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556453" class="attachment patch obsolete" data-id="556453" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="actually-reftest"> <meta itemprop="contentSize" content="15838"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556453"> <a class="link" href="attachment.cgi?id=556453&action=diff"> <span id="att-556453-description" itemprop="description">Part 13: Add basic reftests for 3d transforms v3</span></a> (obsolete) — <a href="attachment.cgi?id=556453&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556453">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-208" data-comment-id="5684003">Lets check the tests in for now, but not add the folder to the main reftest.list. Then they can be run easily when people need to, and we can trivially enable then when 3d transforms are enabled by default.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=548080&action=edit" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo" class="" >Attachment #548080</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=556453&action=edit" title="Part 13: Add basic reftests for 3d transforms v3" class="" >Attachment #556453</a> - Flags: review?(roc)</div><div class="change"> <a href="/attachment.cgi?id=548080&action=edit" title="Part 13: Add basic reftests for 3d transforms and expose 3d transform status in GfxInfo" class="" >Attachment #548080</a> - Flags: <span class="activity-deleted">review?(roc)</span></div></div></div><div class="change-set" id="a66564690_5038"><div class="change" id="aa66564690_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a66564690_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a66564690_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66564690_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66564690_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66564690_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:34 PDT" data-time="1314585266">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556453&action=edit" title="Part 13: Add basic reftests for 3d transforms v3" class="" >Attachment #556453</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="c209"><div class="comment" data-id="5684045" data-no="209" data-tags=""> <table class="layout-table change-head " id="ch-209" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a66564690_5038"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a66564690_5038"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-209" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-209" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c209">Comment 209</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 19:58 PDT" data-time="1314586725">13 years ago</span> </div> </td> </tr> <tr id="ctag-209"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-209" data-comment-id="5684045">(In reply to Matt Woodrow (:mattwoodrow) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c208">comment #208</a>) <span class="quote">> Created <span class="bz_obsolete"><a href="/attachment.cgi?id=556453" name="attach_556453" title="Part 13: Add basic reftests for 3d transforms v3">attachment 556453</a> <a href="/attachment.cgi?id=556453&action=edit" title="Part 13: Add basic reftests for 3d transforms v3">[details]</a> <a href="/attachment.cgi?id=556453&action=diff" title="Part 13: Add basic reftests for 3d transforms v3">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556453'>[review]</a> > Part 13: Add basic reftests for 3d transforms v3 > > Lets check the tests in for now, but not add the folder to the main > reftest.list.</span > I recommend putting the addition to the main reftest.list in, but commented out, so people know there's a directory that's not being run.</div></div><div class="change-set" id="c210"><div class="comment" data-id="5684062" data-no="210" data-tags=""> <table class="layout-table change-head assignee" id="ch-210" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66564690_5038"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66564690_5038"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-210" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-210" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c210">Comment 210</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 20:24 PDT" data-time="1314588283">13 years ago</span> </div> </td> </tr> <tr id="ctag-210"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-210" data-comment-id="5684062">(In reply to David Baron [:dbaron] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c209">comment #209</a>) <span class="quote">> I recommend putting the addition to the main reftest.list in, but commented > out, so people know there's a directory that's not being run.</span > Sounds reasonable.</div></div><div class="change-set" id="c211"><div class="comment" data-id="5684063" data-no="211" data-tags=""> <table class="layout-table change-head assignee" id="ch-211" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66564690_5038"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66564690_5038"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-211" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-211" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c211">Comment 211</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-28 20:25 PDT" data-time="1314588351">13 years ago</span> </div> </td> </tr> <tr id="ctag-211"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-556463" class="attachment patch" data-id="556463" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="actually-reftest"> <meta itemprop="contentSize" content="16551"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=556463"> <a class="link" href="attachment.cgi?id=556463&action=diff"> <span id="att-556463-description" itemprop="description">Part 13: Add basic reftests for 3d transforms v4</span></a> — <a href="attachment.cgi?id=556463&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556463">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-211" data-comment-id="5684063">Added disabled reftest.list entry. Carrying forward r=roc</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556453&action=edit" title="Part 13: Add basic reftests for 3d transforms v3" class="" >Attachment #556453</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=556463&action=edit" title="Part 13: Add basic reftests for 3d transforms v4" class="" >Attachment #556463</a> - Flags: review+</div></div></div><div class="change-set" id="a66622642_11608"><div class="change" id="aa66622642_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a66622642_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a66622642_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66622642_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66622642_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66622642_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-29 11:40 PDT" data-time="1314643218">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - "-moz-transform-style: fixed" is parsed as preserve-3d" href="/show_bug.cgi?id=682919">682919</a></div></div></div><div class="change-set" id="a66623154_11608"><div class="change" id="aa66623154_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a66623154_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a66623154_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a66623154_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a66623154_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-29 11:48 PDT" data-time="1314643730">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Crash with -moz-transform-style: preserve-3d" href="/show_bug.cgi?id=682922">682922</a></div></div></div><div class="change-set" id="c212"><div class="comment" data-id="5689649" data-no="212" data-tags=""> <table class="layout-table change-head assignee" id="ch-212" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66623154_11608"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-212" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-212" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c212">Comment 212</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-30 19:12 PDT" data-time="1314756763">13 years ago</span> </div> </td> </tr> <tr id="ctag-212"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-212" data-comment-id="5689649">Landed parts 13 and 17 on inbound: <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/819f2a8e1318">http://hg.mozilla.org/integration/mozilla-inbound/rev/819f2a8e1318</a> <a rel="nofollow" href="http://hg.mozilla.org/integration/mozilla-inbound/rev/9f201033b0e6">http://hg.mozilla.org/integration/mozilla-inbound/rev/9f201033b0e6</a></div></div><div class="change-set" id="c213"><div class="comment" data-id="5690089" data-no="213" data-tags=""> <table class="layout-table change-head " id="ch-213" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_240353" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/0d674a646529b0795088d7a8075fbaea?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_240353" id="a66623154_11608"><a class="email " href="/user_profile?user_id=240353" > <span class="fna">Marco Bonardo [:mak]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-213" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-213" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c213">Comment 213</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-31 02:17 PDT" data-time="1314782232">13 years ago</span> </div> </td> </tr> <tr id="ctag-213"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-213" data-comment-id="5690089"><a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/819f2a8e1318">http://hg.mozilla.org/mozilla-central/rev/819f2a8e1318</a> <a rel="nofollow" href="http://hg.mozilla.org/mozilla-central/rev/9f201033b0e6">http://hg.mozilla.org/mozilla-central/rev/9f201033b0e6</a></div></div><div class="change-set" id="c214"><div class="comment" data-id="5692672" data-no="214" data-tags=""> <table class="layout-table change-head assignee" id="ch-214" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66623154_11608"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-214" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-214" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c214">Comment 214</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-31 19:30 PDT" data-time="1314844243">13 years ago</span> </div> </td> </tr> <tr id="ctag-214"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-557395" class="attachment patch obsolete" data-id="557395" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-transform-matrix-opt"> <meta itemprop="contentSize" content="51634"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=557395"> <a class="link" href="attachment.cgi?id=557395&action=diff"> <span id="att-557395-description" itemprop="description">Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix</span></a> (obsolete) — <a href="attachment.cgi?id=557395&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=557395">Splinter Review</a> </div> </div> <div class="comment-text empty" id="ct-214" data-comment-id="5692672"></div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=557395&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix" class="" >Attachment #557395</a> - Flags: review?(tterribe)</div></div></div><div class="change-set" id="c215"><div class="comment" data-id="5692826" data-no="215" data-tags=""> <table class="layout-table change-head " id="ch-215" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_12273" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/89961d436f7cf3d3e5ed59de93b30746?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_12273" id="a66623154_11608"><a class="email " href="/user_profile?user_id=12273" > <span class="fna">Timothy B. Terriberry (:derf)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-215" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-215" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c215">Comment 215</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-08-31 21:50 PDT" data-time="1314852606">13 years ago</span> </div> </td> </tr> <tr id="ctag-215"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-215" data-comment-id="5692826">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=557395" name="attach_557395" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">attachment 557395</a> <a href="/attachment.cgi?id=557395&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">[details]</a> <a href="/attachment.cgi?id=557395&action=diff" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=557395'>[review]</a> Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix Review of <span class="bz_obsolete"><a href="/attachment.cgi?id=557395" name="attach_557395" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">attachment 557395</a> <a href="/attachment.cgi?id=557395&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">[details]</a> <a href="/attachment.cgi?id=557395&action=diff" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=557395'>[review]</a>: ----------------------------------------------------------------- r+ with changes. ::: gfx/thebes/gfx3DMatrix.cpp @@ +349,5 @@ <span class="quote">> + _24 = -sinTheta * temp + cosTheta * _24; > +} > + > +void > +gfx3DMatrix::Multiply(const gfx3DMatrix& aOther)</span > This should be called something like PreMultiply (like in gfxMatrix) to distinguish it from the normal operator*=(). It would also be a lot simpler to implement it the same way: *this = aOther * (*this); @@ +374,5 @@ <span class="quote">> + *this = temp; > +} > + > +void > +gfx3DMatrix::Multiply(const gfxMatrix& aOther)</span > Same comment here with respect to the name. ::: layout/style/nsStyleTransformMatrix.cpp @@ +118,5 @@ <span class="quote">> NSAppUnitsToFloatPixels(offset, aAppUnitsPerMatrixUnit); > } > > +static void > +ProcessTranslatePart(double& aResult,</span > Can't you just make the ProcessTranslatePart() function above return a float instead of taking an aResult outparam? Then you wouldn't need this extra version. @@ +258,5 @@ <span class="quote">> * | dx 0 0 1 | > * So E = value > * > * Otherwise, we might have a percentage, so we want to set the dX component > * to the percent.</span > We're no longer constructing a matrix here, so this comment should be updated. A similar comment showing the equivalent matrix at the declaration of gfx3DMatrix::Translate() (and its friends) might be useful, however. Same for all the other, similar comments below. @@ +603,5 @@ <span class="quote">> float depth; > ProcessTranslatePart(depth, aData->Item(1), aContext, > aPresContext, aCanStoreInRuleTree, > 0, aAppUnitsPerMatrixUnit); > NS_ASSERTION(depth > 0.0, "Perspective must be positive!");</span > You've got this same assertion in gfx3DMatrix::Perspective(). You probably only need it in one place, and I think there is better. ::: layout/style/nsStyleTransformMatrix.h @@ +79,5 @@ <span class="quote">> /** > * Given an nsCSSValue::Array* containing a -moz-transform function, > * returns a matrix containing the value of that function. > * > * @param aData The nsCSSValue::Array* containing the transform function.</span > The documentation here needs to be updated to include the aMatrix parameter. You may also want to put the full documentation on the public ReadTransforms() instead of this private method. @@ +102,2 @@ <span class="quote">> > + static void ProcessMatrix(gfx3DMatrix& aMatrix, const nsCSSValue::Array *aData,</span > All of these functions look like they are only ever used as implementation details of the public nsStyleTransformMatrix functions, and are never referenced from anywhere else. That class has no data members and only static methods (its entire existence looks like an odd stand-in for a namespace). I realize it's good C++ form to expose lots of unnecessary details of your private implementation in the public headers, to spread the joy of recompiling when things change and to tempt people to expose things they can see right there, just under that pesky "private" keyword, but perhaps you should just make these into non-member, static (in the original C sense of the keyword) functions (so they only appear in the .cpp file).</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=557395&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix" class="" >Attachment #557395</a> - Flags: review?(tterribe) → review+</div></div></div><div class="change-set" id="c216"><div class="comment" data-id="5699863" data-no="216" data-tags=""> <table class="layout-table change-head assignee" id="ch-216" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a66623154_11608"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a66623154_11608"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-216" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-216" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c216">Comment 216</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-04 15:22 PDT" data-time="1315174922">13 years ago</span> </div> </td> </tr> <tr id="ctag-216"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-558196" class="attachment patch" data-id="558196" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="style-transform-matrix-opt"> <meta itemprop="contentSize" content="56216"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=558196"> <a class="link" href="attachment.cgi?id=558196&action=diff"> <span id="att-558196-description" itemprop="description">Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix v2</span></a> — <a href="attachment.cgi?id=558196&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=558196">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-216" data-comment-id="5699863">Fixed review comments, and test failures. Carrying forward r=derf</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=557395&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix" class="" >Attachment #557395</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=558196&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix v2" class="" >Attachment #558196</a> - Flags: review+</div></div></div><div class="change-set" id="a67239474_380838"><div class="change" id="aa67239474_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a67239474_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a67239474_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a67239474_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-05 15:00 PDT" data-time="1315260050">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Implement better sorting for preserve-3d child layers" href="/show_bug.cgi?id=684759">684759</a></div></div></div><div class="change-set" id="c217"><div class="comment" data-id="5722122" data-no="217" data-tags=""> <table class="layout-table change-head " id="ch-217" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-217" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-217" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c217">Comment 217</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-18 09:49 PDT" data-time="1316364554">13 years ago</span> </div> </td> </tr> <tr id="ctag-217"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-217" data-comment-id="5722122">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=556450" name="attach_556450" title="Part 16 - Implement transitions/animations for 3d transforms. v4">attachment 556450</a> <a href="/attachment.cgi?id=556450&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v4">[details]</a> <a href="/attachment.cgi?id=556450&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms. v4">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556450'>[review]</a> Part 16 - Implement transitions/animations for 3d transforms. v4 See also <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c192">comment 192</a> for comments on the nsComputedDOMStyle part. Somewhat large changes needed: - check both 2d together, not separately - i.e., Decompose3DMatrix shouldn't call Decompose2DMatrix; caller should figure out which is right - and need to be careful to be consistent about what gets set or left untouched (e.g., Decompose2DMatrix has the odd behavior that it touches only one of the three parts of aShear. It should probably set them to 0 appropriately -- and other parts to 0 or 1 as appropriate. And then you don't need to initialize). Though maybe fixing that should wait until after you've fixed the handling for matrices that we can't decompose. - rotate3d() and perspective() should use the decomposition algorithm (though rotate3d() *could* use quaternions directly, but interpolating components is probably wrong). I think this requires changing both the main switch() in AddTransformLists and the test around the AppendTransformFunction call at the top. More detailed comments: In AppendTransformFunction, if you put the: default: NS_ERROR("..."); *above* the longest list of cases (so that it falls through into the nargs=1), you'll end up with more efficient code for opt builds, I think, since the long list of cases will just translate to default: Also, AppendTransformFunction should use 2-space indent. But the best way to fix this is by indenting the lines starting with "case" and "default" by 2 additional spaces and leaving the code inside them where it is. Decompose3DMatrix should be 2 space indent rather than 4 space. The comment at the top of Decompose3DMatrix should have a comment saying that it's derived from the code in Graphics Gems, so that it complies with the license on the graphics gems. At the end of Decompose3DMatrix, could you change this: aRotate = local; to: aRotate = gfxQuaternion(local); to make it clearer that there's a matrix -> quaternion assignment there. At some point we probably want to handle decomposition failure better, so we claim to be unable to interpolate, rather than interpolating between the identity matrix and something else. <span class="quote">>+ // TODO: Would it be better to interpolate these as angles? How do we convert back to angles?</span > probably better to just say why it's better to interpolate as shears and that we're not interpolating as angles. In AddTransformLists, at least add a comment suggesting that maybe this isn't the best way to interpolate perspective. Could you fix the indentation in the second lines of the function calls in the translate3d and scale3d cases? The rotate3d case shouldn't have separate code; it should use the matrix decomposition. <span class="quote">>+ // rotatez and rotate are identical, is there an easier way to check this?</span > If you want this comment, put it in the TransformFunctionsMatch function. (I also think it might not be that hard to do the general Add here with 2 coefficients, though maybe I'm missing something.) Also, the special case for aList1 == aList2 doesn't make much sense to me, given that that makes nsStyleTransformMatrix::ProcessInterpolateMatrix treat list1 as the identity. It's not clear to me why that special case is there; maybe just remove it, and along with it the special handling of non-list interpolatematrix items in nsStyleTransformMatrix? r=dbaron with those changes Comments on other code: gfx3DMatrix::Skew* methods seem poorly named, since Skew is usually described as an angle but shear as what these take. gfxQuaternion::Slerp should have a comment expanding the acronym, perhaps?</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556450&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v4" class="" >Attachment #556450</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c218"><div class="comment" data-id="5723917" data-no="218" data-tags=""> <table class="layout-table change-head " id="ch-218" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-218" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-218" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c218">Comment 218</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-19 13:38 PDT" data-time="1316464731">13 years ago</span> </div> </td> </tr> <tr id="ctag-218"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-218" data-comment-id="5723917">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=555951" name="attach_555951" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0">attachment 555951</a> <a href="/attachment.cgi?id=555951&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0">[details]</a> <a href="/attachment.cgi?id=555951&action=diff" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=555951'>[review]</a> Part 18 - Make the perspective() transform function actually fail on numbers <= 0 I'd say just remove the line you're modifying instead of making the modification; you're inside checks that you're either eCSSToken_Dimension, or that you're eCSSToken_Number and 0. Both token types have a valid mNumber, so you're fine just checking tk->mNumber without a tk->mType check. r=dbaron with that</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555951&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0" class="" >Attachment #555951</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c219"><div class="comment" data-id="5723938" data-no="219" data-tags=""> <table class="layout-table change-head " id="ch-219" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-219" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-219" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c219">Comment 219</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-19 13:46 PDT" data-time="1316465189">13 years ago</span> </div> </td> </tr> <tr id="ctag-219"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-219" data-comment-id="5723938">Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=556452" name="attach_556452" title="Part 19: Make all translate functions handle lengths and percents">attachment 556452</a> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents">[details]</a> <a href="/attachment.cgi?id=556452&action=diff" title="Part 19: Make all translate functions handle lengths and percents">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556452'>[review]</a> Part 19: Make all translate functions handle lengths and percents I don't think we want all of the translation places to take numbers; translate{X,Y,Z,,3D}() should continue to take only <length>, <percent>, or <calc>. We just want matrix() and matrix3d() to allow number in the translation parts. (Did I say otherwise somewhere, or was there discussion otherwise?) I'd also prefer not to have VARIANT_* names that don't say what's in them. In other words, if you're adding VARIANT_NUMBER to something, it should also get an N inserted in its name. (And while you're there, I don't see the point of having TRANSFORM in the name -- I'd go with VARIANT_LP_CALC, VARIANT_LPN_CALC, VARIANT_LN_CALC, or similar.) Also, it's helpful if you include the commit message in patches that you post for review.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents" class="" >Attachment #556452</a> - Flags: review?(dbaron) → review-</div></div></div><div class="change-set" id="c220"><div class="comment" data-id="5729890" data-no="220" data-tags=""> <table class="layout-table change-head assignee" id="ch-220" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-220" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-220" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c220">Comment 220</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-21 18:25 PDT" data-time="1316654746">13 years ago</span> </div> </td> </tr> <tr id="ctag-220"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-220" data-comment-id="5729890"> <span class="quote">> Also, the special case for aList1 == aList2 doesn't make much sense to > me, given that that makes > nsStyleTransformMatrix::ProcessInterpolateMatrix treat list1 as the > identity. It's not clear to me why that special case is there; maybe > just remove it, and along with it the special handling of non-list > interpolatematrix items in nsStyleTransformMatrix? > </span > The problem I'm trying to solve here is that the inputs to AddTransformLists when interpolating from 'none' to a list, is two identical lists and coefficients that don't add to 1 (eg, 0.0, 0.5). Since coeeficients that add to more than 1 don't make sense for transforms, it's preferable to have a null list object, and a single coefficient that just represents the progress through the animation. AddDifferentTransformLists is detecting this special case, and inserting a null list, instead of the same list twice. nsStyleTransformMatrix::ProcessInterpolateMatrix detects this empty list, and using an identity matrix for decomposition. The aList1 == aList2 check in AddTransformLists is there because we construct temporary list objects to pass into AddDifferentTransformLists, and this breaks the detection of identical list pointer.</div></div><div class="change-set" id="c221"><div class="comment" data-id="5730110" data-no="221" data-tags=""> <table class="layout-table change-head assignee" id="ch-221" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-221" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-221" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c221">Comment 221</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-21 22:52 PDT" data-time="1316670750">13 years ago</span> </div> </td> </tr> <tr id="ctag-221"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-221" data-comment-id="5730110">(In reply to David Baron [:dbaron] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c219">comment #219</a>) <span class="quote">> Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=556452" name="attach_556452" title="Part 19: Make all translate functions handle lengths and percents">attachment 556452</a> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents">[details]</a> <a href="/attachment.cgi?id=556452&action=diff" title="Part 19: Make all translate functions handle lengths and percents">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556452'>[review]</a> > Part 19: Make all translate functions handle lengths and percents > > I don't think we want all of the translation places to take numbers; > translate{X,Y,Z,,3D}() should continue to take only <length>, <percent>, or > <calc>. We just want matrix() and matrix3d() to allow number in the > translation parts. (Did I say otherwise somewhere, or was there discussion > otherwise?)</span > You suggested taking lengths for all of the translate functions in <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c113">https://bugzilla.mozilla.org/show_bug.cgi?id=505115#c113</a></div></div><div class="change-set" id="c222"><div class="comment" data-id="5731180" data-no="222" data-tags=""> <table class="layout-table change-head " id="ch-222" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-222" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-222" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c222">Comment 222</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 10:01 PDT" data-time="1316710887">13 years ago</span> </div> </td> </tr> <tr id="ctag-222"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-222" data-comment-id="5731180">(In reply to Matt Woodrow (:mattwoodrow) from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c221">comment #221</a>) <span class="quote">> (In reply to David Baron [:dbaron] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c219">comment #219</a>) > > Comment on <span class="bz_obsolete"><a href="/attachment.cgi?id=556452" name="attach_556452" title="Part 19: Make all translate functions handle lengths and percents">attachment 556452</a> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents">[details]</a> <a href="/attachment.cgi?id=556452&action=diff" title="Part 19: Make all translate functions handle lengths and percents">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=556452'>[review]</a> > > Part 19: Make all translate functions handle lengths and percents > > > > I don't think we want all of the translation places to take numbers; > > translate{X,Y,Z,,3D}() should continue to take only <length>, <percent>, or > > <calc>. We just want matrix() and matrix3d() to allow number in the > > translation parts. (Did I say otherwise somewhere, or was there discussion > > otherwise?) > > You suggested taking lengths for all of the translate functions in > <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c113">https://bugzilla.mozilla.org/show_bug.cgi?id=505115#c113</a></span > Ah, interesting. :-) If WebKit accepts raw lengths there, then we probably should too, but if it doesn't, we should only accept raw lengths where it does (and I know it does in the matrix* functions.)</div></div><div class="change-set" id="c223"><div class="comment" data-id="5732304" data-no="223" data-tags=""> <table class="layout-table change-head assignee" id="ch-223" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-223" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-223" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c223">Comment 223</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 15:24 PDT" data-time="1316730298">13 years ago</span> </div> </td> </tr> <tr id="ctag-223"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-223" data-comment-id="5732304">WebKit apparently doesn't accept raw numbers for translate*, so I'll update the patch to only support this for the matrix* variants.</div></div><div class="change-set" id="c224"><div class="comment" data-id="5732864" data-no="224" data-tags=""> <table class="layout-table change-head assignee" id="ch-224" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-224" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-224" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c224">Comment 224</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 19:13 PDT" data-time="1316743999">13 years ago</span> </div> </td> </tr> <tr id="ctag-224"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-561953" class="attachment patch" data-id="561953" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="transitions"> <meta itemprop="contentSize" content="37247"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=561953"> <a class="link" href="attachment.cgi?id=561953&action=diff"> <span id="att-561953-description" itemprop="description">Part 16 - Implement transitions/animations for 3d transforms. v5</span></a> — <a href="attachment.cgi?id=561953&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561953">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-224" data-comment-id="5732864">Fixed review comments, carrying forward r=dbaron,derf</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556450&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v4" class="" >Attachment #556450</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=561953&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v5" class="" >Attachment #561953</a> - Flags: review+</div></div></div><div class="change-set" id="c225"><div class="comment" data-id="5732942" data-no="225" data-tags=""> <table class="layout-table change-head assignee" id="ch-225" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-225" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-225" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c225">Comment 225</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 20:56 PDT" data-time="1316750191">13 years ago</span> </div> </td> </tr> <tr id="ctag-225"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-561961" class="attachment patch" data-id="561961" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="length-percent-handling"> <meta itemprop="contentSize" content="15313"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=561961"> <a class="link" href="attachment.cgi?id=561961&action=diff"> <span id="att-561961-description" itemprop="description">Part 18 - Make the perspective() transform function actually fail on numbers <= 0 v2</span></a> — <a href="attachment.cgi?id=561961&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561961">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-225" data-comment-id="5732942">Fixed review comment, carrying forward r=dbaron</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=555951&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0" class="" >Attachment #555951</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=561961&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0 v2" class="" >Attachment #561961</a> - Flags: review+</div></div></div><div class="change-set" id="c226"><div class="comment" data-id="5732945" data-no="226" data-tags=""> <table class="layout-table change-head assignee" id="ch-226" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-226" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-226" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c226">Comment 226</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 20:58 PDT" data-time="1316750294">13 years ago</span> </div> </td> </tr> <tr id="ctag-226"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-561962" class="attachment patch" data-id="561962" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="length-percent-handling"> <meta itemprop="contentSize" content="15313"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=561962"> <a class="link" href="attachment.cgi?id=561962&action=diff"> <span id="att-561962-description" itemprop="description">Part 19: Make matrix* functions handle lengths and percents</span></a> — <a href="attachment.cgi?id=561962&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561962">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-226" data-comment-id="5732945">Removed the changes to the translate* functions, and fixed the TRANSFORM macros as suggested</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=556452&action=edit" title="Part 19: Make all translate functions handle lengths and percents" class="" >Attachment #556452</a> - Attachment is obsolete: true</div><div class="change"> <a href="/attachment.cgi?id=561962&action=edit" title="Part 19: Make matrix* functions handle lengths and percents" class="" >Attachment #561962</a> - Flags: review?(dbaron)</div></div></div><div class="change-set" id="c227"><div class="comment" data-id="5732948" data-no="227" data-tags=""> <table class="layout-table change-head assignee" id="ch-227" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-227" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-227" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c227">Comment 227</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-22 20:59 PDT" data-time="1316750383">13 years ago</span> </div> </td> </tr> <tr id="ctag-227"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-227" data-comment-id="5732948"> <span class="quote">> Also, it's helpful if you include the commit message in patches that you > post for review.</span > Sorry, I usually only add these when I go to land patches. I've added them for all the new patches I just uploaded.</div></div><div class="change-set" id="c228"><div class="comment" data-id="5738041" data-no="228" data-tags=""> <table class="layout-table change-head " id="ch-228" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-228" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-228" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c228">Comment 228</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 14:03 PDT" data-time="1317071009">13 years ago</span> </div> </td> </tr> <tr id="ctag-228"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-228" data-comment-id="5738041">Comment on <span class=""><a href="/attachment.cgi?id=561962" name="attach_561962" title="Part 19: Make matrix* functions handle lengths and percents">attachment 561962</a> <a href="/attachment.cgi?id=561962&action=edit" title="Part 19: Make matrix* functions handle lengths and percents">[details]</a> <a href="/attachment.cgi?id=561962&action=diff" title="Part 19: Make matrix* functions handle lengths and percents">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561962'>[review]</a> Part 19: Make matrix* functions handle lengths and percents You should probably have a test in property_database.js that the following are invalid: * matrix3d() with a % value in the translatez part * matrix3d() with a length value in the _44 part r=dbaron with that</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=561962&action=edit" title="Part 19: Make matrix* functions handle lengths and percents" class="" >Attachment #561962</a> - Flags: review?(dbaron) → review+</div></div></div><div class="change-set" id="c229"><div class="comment" data-id="5738342" data-no="229" data-tags=""> <table class="layout-table change-head " id="ch-229" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a67239474_380838"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-229" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-229" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c229">Comment 229</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 15:24 PDT" data-time="1317075843">13 years ago</span> </div> </td> </tr> <tr id="ctag-229"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-229" data-comment-id="5738342"><a rel="nofollow" href="https://hg.mozilla.org/integration/mozilla-inbound/rev/97983a84f0c3">https://hg.mozilla.org/integration/mozilla-inbound/rev/97983a84f0c3</a> <a rel="nofollow" href="https://hg.mozilla.org/integration/mozilla-inbound/rev/29b915205135">https://hg.mozilla.org/integration/mozilla-inbound/rev/29b915205135</a> <a rel="nofollow" href="https://hg.mozilla.org/integration/mozilla-inbound/rev/f1af522b8b47">https://hg.mozilla.org/integration/mozilla-inbound/rev/f1af522b8b47</a> <a rel="nofollow" href="https://hg.mozilla.org/integration/mozilla-inbound/rev/24fa4e8bed1a">https://hg.mozilla.org/integration/mozilla-inbound/rev/24fa4e8bed1a</a></div></div><div class="change-set" id="c230"><div class="comment" data-id="5738604" data-no="230" data-tags=""> <table class="layout-table change-head assignee" id="ch-230" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-230" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-230" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c230">Comment 230</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 16:45 PDT" data-time="1317080733">13 years ago</span> </div> </td> </tr> <tr id="ctag-230"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div id="att-562585" class="attachment patch" data-id="562585" itemscope itemtype="http://schema.org/MediaObject"> <meta itemprop="name" content="enable"> <meta itemprop="contentSize" content="13479"> <meta itemprop="encodingFormat" content="text/plain"> <div class="label"> Attached patch <meta itemprop="contentUrl" content="attachment.cgi?id=562585"> <a class="link" href="attachment.cgi?id=562585&action=diff"> <span id="att-562585-description" itemprop="description">Part 21: Enable 3D transforms!</span></a> — <a href="attachment.cgi?id=562585&action=edit" itemprop="url" data-details="1">Details</a> — <a href="/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=562585">Splinter Review</a> </div> </div> <div class="comment-text " id="ct-230" data-comment-id="5738604">This is just a backout of the patch from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - css3-3d-transforms isn't fully disabled since properties (which sites detect) are added to IDL" href="/show_bug.cgi?id=677173">bug 677173</a>, plus flipping the pref to enabled. I want to land this just after the aurora merge to get as much testing coverage as possible before it hits a release.</div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=562585&action=edit" title="Part 21: Enable 3D transforms!" class="" >Attachment #562585</a> - Flags: review?(roc)</div></div></div><div class="change-set" id="c231"><div class="comment" data-id="5738655" data-no="231" data-tags=""> <table class="layout-table change-head " id="ch-231" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a67239474_380838"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-231" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-231" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c231">Comment 231</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 16:55 PDT" data-time="1317081300">13 years ago</span> </div> </td> </tr> <tr id="ctag-231"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-231" data-comment-id="5738655">Do 3D transforms actually work when we don't have an accelerated layers backend?</div></div><div class="change-set" id="c232"><div class="comment" data-id="5738668" data-no="232" data-tags=""> <table class="layout-table change-head assignee" id="ch-232" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a67239474_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a67239474_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-232" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-232" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c232">Comment 232</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 16:58 PDT" data-time="1317081538">13 years ago</span> </div> </td> </tr> <tr id="ctag-232"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-232" data-comment-id="5738668">Yes, we support these in BasicLayers via pixman.</div></div><div class="change-set" id="a69060998_5038"><div class="change" id="aa69060998_5038"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_5038" id="a69060998_5038"><img src="https://secure.gravatar.com/avatar/e1cadeaaf04bd425d597a571ffe0f522?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_5038" id="a69060998_5038"><a class="email " href="/user_profile?user_id=5038" > <span class="fna">Robert O'Callahan (:roc) (email my personal email if necessary)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69060998_5038" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69060998_5038"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69060998_5038">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-26 16:59 PDT" data-time="1317081574">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=562585&action=edit" title="Part 21: Enable 3D transforms!" class="" >Attachment #562585</a> - Flags: review?(roc) → review+</div></div></div><div class="change-set" id="a69093320_226708"><div class="change" id="aa69093320_226708"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_226708" id="a69093320_226708"><img src="https://secure.gravatar.com/avatar/da2c321e250a39c071e685707d3c6357?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_226708" id="a69093320_226708"><a class="email " href="/user_profile?user_id=226708" > <span class="fna">Oleg Romashin (:romaxa)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69093320_226708" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69093320_226708"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69093320_226708">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 01:58 PDT" data-time="1317113896">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Intersecting planes are not z-ordered properly (need to implement plane splitting for CSS 3d transforms)" href="/show_bug.cgi?id=689498">689498</a></div></div></div><div class="change-set" id="c233"><div class="comment" data-id="5739529" data-no="233" data-tags=""> <table class="layout-table change-head " id="ch-233" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_158464" id="a69093320_226708"><img src="https://secure.gravatar.com/avatar/f7c92ac0487b931bbd3029d4766a09c4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_158464" id="a69093320_226708"><a class="email " href="/user_profile?user_id=158464" > <span class="fna">Geoff Lankow (:darktrojan)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-233" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-233" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c233">Comment 233</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 02:02 PDT" data-time="1317114150">13 years ago</span> </div> </td> </tr> <tr id="ctag-233"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-233" data-comment-id="5739529">Matt, I noticed this line in your last patch (reftest.list) which needs fixing: <span class="quote">> # 3d transforms - disabled currently</span ></div></div><div class="change-set" id="a69093924_226708"><div class="change" id="aa69093924_226708"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_226708" id="a69093924_226708"><img src="https://secure.gravatar.com/avatar/da2c321e250a39c071e685707d3c6357?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_226708" id="a69093924_226708"><a class="email " href="/user_profile?user_id=226708" > <span class="fna">Oleg Romashin (:romaxa)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69093924_226708" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69093924_226708"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69093924_226708">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 02:08 PDT" data-time="1317114500">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - CSS 3D Poster circle crashes on debug desktop build (Mobile FF)" href="/show_bug.cgi?id=689501">689501</a></div></div></div><div class="change-set" id="a69094008_226708"><div class="change" id="aa69094008_226708"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_226708" id="a69094008_226708"><img src="https://secure.gravatar.com/avatar/da2c321e250a39c071e685707d3c6357?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_226708" id="a69094008_226708"><a class="email " href="/user_profile?user_id=226708" > <span class="fna">Oleg Romashin (:romaxa)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69094008_226708" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69094008_226708"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69094008_226708">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 02:09 PDT" data-time="1317114584">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - CSS 3d Cube is very slow in OGL backend" href="/show_bug.cgi?id=689416">689416</a></div></div></div><div class="change-set" id="a69094898_226708"><div class="change" id="aa69094898_226708"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_226708" id="a69094898_226708"><img src="https://secure.gravatar.com/avatar/da2c321e250a39c071e685707d3c6357?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_226708" id="a69094898_226708"><a class="email " href="/user_profile?user_id=226708" > <span class="fna">Oleg Romashin (:romaxa)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69094898_226708" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69094898_226708"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69094898_226708">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 02:24 PDT" data-time="1317115474">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Reflow + thebesLayer content repaint happening all the time while rendering morphing cubes" href="/show_bug.cgi?id=689504">689504</a></div></div></div><div class="change-set" id="c234"><div class="comment" data-id="5739664" data-no="234" data-tags=""> <table class="layout-table change-head " id="ch-234" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69094898_226708"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69094898_226708"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-234" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-234" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c234">Comment 234</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 03:42 PDT" data-time="1317120133">13 years ago</span> </div> </td> </tr> <tr id="ctag-234"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-234" data-comment-id="5739664">Part 16: <a rel="nofollow" href="https://hg.mozilla.org/mozilla-central/rev/97983a84f0c3">https://hg.mozilla.org/mozilla-central/rev/97983a84f0c3</a> Part 18: <a rel="nofollow" href="https://hg.mozilla.org/mozilla-central/rev/29b915205135">https://hg.mozilla.org/mozilla-central/rev/29b915205135</a> Part 19: <a rel="nofollow" href="https://hg.mozilla.org/mozilla-central/rev/f1af522b8b47">https://hg.mozilla.org/mozilla-central/rev/f1af522b8b47</a> Part 20: <a rel="nofollow" href="https://hg.mozilla.org/mozilla-central/rev/24fa4e8bed1a">https://hg.mozilla.org/mozilla-central/rev/24fa4e8bed1a</a> Not sure what else is left to checkin, please close if everything done here (and mark mozilla9) - thanks :-)</div><div class="activity"><div class="change">Status: NEW → ASSIGNED</div><div class="change">Whiteboard: [approved-patches-landed][inbound][rat:jesse fuzzing] → [approved-patches-landed][rat:jesse fuzzing]</div><div class="change">Target Milestone: mozilla9 → ---</div></div></div><div class="change-set" id="a69099605_373476"><div class="change" id="aa69099605_373476"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69099605_373476"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69099605_373476"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69099605_373476" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69099605_373476"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69099605_373476">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 03:43 PDT" data-time="1317120181">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=561953&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v5" class="" >Attachment #561953</a> - Flags: checkin+</div></div></div><div class="change-set" id="a69099609_373476"><div class="change" id="aa69099609_373476"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69099609_373476"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69099609_373476"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69099609_373476" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69099609_373476"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69099609_373476">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 03:43 PDT" data-time="1317120185">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=561961&action=edit" title="Part 18 - Make the perspective() transform function actually fail on numbers <= 0 v2" class="" >Attachment #561961</a> - Flags: checkin+</div></div></div><div class="change-set" id="a69099613_373476"><div class="change" id="aa69099613_373476"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69099613_373476"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69099613_373476"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69099613_373476" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69099613_373476"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69099613_373476">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 03:43 PDT" data-time="1317120189">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=561962&action=edit" title="Part 19: Make matrix* functions handle lengths and percents" class="" >Attachment #561962</a> - Flags: checkin+</div></div></div><div class="change-set" id="a69099617_373476"><div class="change" id="aa69099617_373476"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69099617_373476"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69099617_373476"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69099617_373476" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69099617_373476"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69099617_373476">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 03:43 PDT" data-time="1317120193">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change"> <a href="/attachment.cgi?id=558196&action=edit" title="Part 20 - Add more gfx3DMatrix transformation function and use these in nsStyleTransformMatrix v2" class="" >Attachment #558196</a> - Flags: checkin+</div></div></div><div class="change-set" id="c235"><div class="comment" data-id="5739785" data-no="235" data-tags=""> <table class="layout-table change-head " id="ch-235" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_302720" id="a69099617_373476"><img src="https://secure.gravatar.com/avatar/42f6fa059df34a3d5c3e4091c50ebde7?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_302720" id="a69099617_373476"><a class="email " href="/user_profile?user_id=302720" > <span class="fna">:Ms2ger (he/him; ⌚ UTC+1/+2)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-235" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-235" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c235">Comment 235</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 04:56 PDT" data-time="1317124598">13 years ago</span> </div> </td> </tr> <tr id="ctag-235"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-235" data-comment-id="5739785">Comment on <span class=""><a href="/attachment.cgi?id=561953" name="attach_561953" title="Part 16 - Implement transitions/animations for 3d transforms. v5">attachment 561953</a> <a href="/attachment.cgi?id=561953&action=edit" title="Part 16 - Implement transitions/animations for 3d transforms. v5">[details]</a> <a href="/attachment.cgi?id=561953&action=diff" title="Part 16 - Implement transitions/animations for 3d transforms. v5">[diff]</a></span> <a href='/page.cgi?id=splinter.html&ignore=&bug=505115&attachment=561953'>[review]</a> Part 16 - Implement transitions/animations for 3d transforms. v5 <span class="quote">># HG changeset patch ># Parent 50b36274e6896899e9b3e1de6b4e0ad75ed60a37 >--- a/layout/style/nsComputedDOMStyle.cpp >+++ b/layout/style/nsComputedDOMStyle.cpp >@@ -1053,37 +1053,63 @@ nsComputedDOMStyle::DoGetMozTransform() >+ resultString.Append(NS_LITERAL_STRING("(")); >+ resultString.Append(NS_LITERAL_STRING(")"));</span > For future reference, I think these would be ever so slightly more efficient as resultString.Append('('); and resultString.Append(')');.</div></div><div class="change-set" id="a69140433_226708"><div class="change" id="aa69140433_226708"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_226708" id="a69140433_226708"><img src="https://secure.gravatar.com/avatar/da2c321e250a39c071e685707d3c6357?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_226708" id="a69140433_226708"><a class="email " href="/user_profile?user_id=226708" > <span class="fna">Oleg Romashin (:romaxa)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69140433_226708" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69140433_226708"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69140433_226708">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-27 15:03 PDT" data-time="1317161009">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Falling leaves are very slow, re-allocating textures on each paint..." href="/show_bug.cgi?id=689760">689760</a></div></div></div><div class="change-set" id="c236"><div class="comment" data-id="5748440" data-no="236" data-tags=""> <table class="layout-table change-head assignee" id="ch-236" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a69140433_226708"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a69140433_226708"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-236" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-236" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c236">Comment 236</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-29 18:42 PDT" data-time="1317346972">13 years ago</span> </div> </td> </tr> <tr id="ctag-236"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-236" data-comment-id="5748440">Landed Part 21 on inbound: <a rel="nofollow" href="https://hg.mozilla.org/integration/mozilla-inbound/rev/730a82c21c53">https://hg.mozilla.org/integration/mozilla-inbound/rev/730a82c21c53</a> That should conclude this bug, unless it gets backed out :)</div></div><div class="change-set" id="c237"><div class="comment" data-id="5749433" data-no="237" data-tags=""> <table class="layout-table change-head " id="ch-237" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_251051" id="a69140433_226708"><img src="https://secure.gravatar.com/avatar/5aef682fbfd7590b9d85d6e8dbab10eb?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_251051" id="a69140433_226708"><a class="email " href="/user_profile?user_id=251051" > <span class="fna">(no longer active)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-237" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-237" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c237">Comment 237</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-09-30 07:34 PDT" data-time="1317393255">13 years ago</span> </div> </td> </tr> <tr id="ctag-237"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-237" data-comment-id="5749433"><a rel="nofollow" href="https://hg.mozilla.org/mozilla-central/rev/730a82c21c53">https://hg.mozilla.org/mozilla-central/rev/730a82c21c53</a> \o/</div><div class="activity"><div class="change">Status: ASSIGNED → RESOLVED</div><div class="change">Closed: <span class="rel-time" title="2011-09-30 07:34 PDT" data-time="1317393255">13 years ago</span></div><div class="change">Resolution: --- → FIXED</div></div></div><div class="change-set" id="a69493585_380838"><div class="change" id="aa69493585_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a69493585_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a69493585_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69493585_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69493585_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69493585_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-01 17:09 PDT" data-time="1317514161">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - 3D transforms Box1 demo crashes" href="/show_bug.cgi?id=691106">691106</a></div></div></div><div class="change-set" id="a69878950_373476"><div class="change" id="aa69878950_373476"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_373476" id="a69878950_373476"><img src="https://secure.gravatar.com/avatar/faa32581e9f2c69c1870a41227fd7990?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_373476" id="a69878950_373476"><a class="email disabled" href="/user_profile?user_id=373476" > <span class="fna">Ed Morley [:emorley]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a69878950_373476" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a69878950_373476"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a69878950_373476">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-06 04:12 PDT" data-time="1317899526">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Target Milestone: --- → mozilla10</div></div></div><div class="change-set" id="a70026317_20209"><div class="change" id="aa70026317_20209"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_20209" id="a70026317_20209"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_20209" id="a70026317_20209"><a class="email " href="/user_profile?user_id=20209" > <span class="fna">Boris Zbarsky [:bzbarsky]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a70026317_20209" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a70026317_20209"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a70026317_20209">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-07 21:08 PDT" data-time="1318046893">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - crash when doing javascript animation of 3D transform (css3-3d-transforms)" href="/show_bug.cgi?id=692968">692968</a></div></div></div><div class="change-set" id="a70283743_380838"><div class="change" id="aa70283743_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a70283743_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a70283743_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a70283743_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a70283743_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a70283743_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-10 20:38 PDT" data-time="1318304319">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Don't call GetHitDepthAtPoint if we didn't hit anything" href="/show_bug.cgi?id=693519">693519</a></div></div></div><div class="change-set" id="a70283898_380838"><div class="change" id="aa70283898_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a70283898_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a70283898_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a70283898_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a70283898_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a70283898_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-10 20:41 PDT" data-time="1318304474">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Fix backface-visibility handling" href="/show_bug.cgi?id=693520">693520</a></div></div></div><div class="change-set" id="a70435674_406847"><div class="change" id="aa70435674_406847"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_406847" id="a70435674_406847"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_406847" id="a70435674_406847"><a class="email disabled" href="/user_profile?user_id=406847" > <span class="fna">Curtis Koenig [:curtisk-use curtis.koenig+bzATgmail.com]]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a70435674_406847" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a70435674_406847"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a70435674_406847">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-12 14:50 PDT" data-time="1318456250">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=sec-review-needed&resolution=---">sec-review-needed</a> → <a href="/buglist.cgi?keywords=sec-review-complete&resolution=---">sec-review-complete</a></div></div></div><div class="change-set" id="a71035200_380838"><div class="change" id="aa71035200_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a71035200_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a71035200_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71035200_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71035200_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71035200_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-19 13:22 PDT" data-time="1319055776">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Perspective origin is wrong when we have a transform origin" href="/show_bug.cgi?id=695832">695832</a></div></div></div><div class="change-set" id="a71060629_11608"><div class="change" id="aa71060629_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71060629_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71060629_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71060629_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71060629_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71060629_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-19 20:26 PDT" data-time="1319081205">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - "ASSERTION: Can't get a delta for an untransformed frame!" with transform, svg:foreignObject" href="/show_bug.cgi?id=695964">695964</a></div></div></div><div class="change-set" id="a71118579_11608"><div class="change" id="aa71118579_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71118579_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71118579_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71118579_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71118579_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71118579_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-20 12:32 PDT" data-time="1319139155">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Crash [@ nsLineBox::CachedIsEmpty] with inline acting as an absolute containing block" href="/show_bug.cgi?id=696175">696175</a></div></div></div><div class="change-set" id="a71120597_11608"><div class="change" id="aa71120597_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71120597_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71120597_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71120597_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71120597_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71120597_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-20 13:06 PDT" data-time="1319141173">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Leak nsCSSValueList with multi-transform and transition" href="/show_bug.cgi?id=696188">696188</a></div></div></div><div class="change-set" id="a71144959_11608"><div class="change" id="aa71144959_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71144959_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71144959_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71144959_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71144959_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71144959_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-20 19:52 PDT" data-time="1319165535">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - "ASSERTION: Layer already in list" and crash with transform, -moz-column, abs pos, shadow" href="/show_bug.cgi?id=696307">696307</a></div></div></div><div class="change-set" id="a71476389_11608"><div class="change" id="aa71476389_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71476389_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71476389_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71476389_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71476389_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71476389_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-24 15:56 PDT" data-time="1319496965">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - "ASSERTION: Perspective must be positive!" (quirks mode only)" href="/show_bug.cgi?id=696936">696936</a></div></div></div><div class="change-set" id="a71529520_11608"><div class="change" id="aa71529520_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a71529520_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a71529520_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a71529520_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a71529520_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a71529520_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-10-25 06:41 PDT" data-time="1319550096">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Whiteboard: [approved-patches-landed][rat:jesse fuzzing] → [approved-patches-landed]</div></div></div><div class="change-set" id="a72296662_11608"><div class="change" id="aa72296662_11608"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_11608" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/d2dc9227eafcd0ec5ba3712ee4f19b75?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_11608" id="a72296662_11608"><a class="email " href="/user_profile?user_id=11608" > <span class="fna">Jesse Ruderman</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a72296662_11608" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a72296662_11608"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a72296662_11608">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-03 03:47 PDT" data-time="1320317238">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_NEW" title="NEW - "ASSERTION: Our frame tree is likely to be bogus!" with transition, "transform-style: preserve-3d"" href="/show_bug.cgi?id=699360">699360</a></div></div></div><div class="change-set" id="c238"><div class="comment" data-id="5842360" data-no="238" data-tags=""> <table class="layout-table change-head " id="ch-238" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_422957" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/3b7fbe3a327dea2bb480e2b41d19cf5e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_422957" id="a72296662_11608"><a class="email disabled" href="/user_profile?user_id=422957" > <span class="fna">Ioana (away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-238" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-238" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c238">Comment 238</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-11 02:23 PST" data-time="1321007019">13 years ago</span> </div> </td> </tr> <tr id="ctag-238"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-238" data-comment-id="5842360">Verified as fixed on Aurora (Firefox 10): layout/reftests/transform-3d passes on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7341560&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7341560&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7342134&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7342134&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7344904&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7344904&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7344827&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7344827&full=1&branch=mozilla-aurora</a> /tests/layout/style/test/test_transitions_per_property.html and layout/base/tests/test_preserve3d_sorting_hit_testing.html are passing on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7342105&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7342105&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7342137&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7342137&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7344446&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7344446&full=1&branch=mozilla-aurora</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7344634&full=1&branch=mozilla-aurora">https://tbpl.mozilla.org/php/getParsedLog.php?id=7344634&full=1&branch=mozilla-aurora</a></div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=verified-aurora&resolution=---">verified-aurora</a></div></div></div><div class="change-set" id="c239"><div class="comment" data-id="5846337" data-no="239" data-tags=""> <table class="layout-table change-head " id="ch-239" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_422957" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/3b7fbe3a327dea2bb480e2b41d19cf5e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_422957" id="a72296662_11608"><a class="email disabled" href="/user_profile?user_id=422957" > <span class="fna">Ioana (away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-239" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-239" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c239">Comment 239</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-14 02:57 PST" data-time="1321268251">13 years ago</span> </div> </td> </tr> <tr id="ctag-239"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-239" data-comment-id="5846337">Verified as fixed on Central (Firefox 11): layout/reftests/transform-3d passes on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7382780&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7382780&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383302&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383302&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383253&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383253&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383649&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383649&full=1&branch=services-central</a> /tests/layout/style/test/test_transitions_per_property.html and layout/base/tests/test_preserve3d_sorting_hit_testing.html are passing on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383643&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383643&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7382748&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7382748&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383073&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383073&full=1&branch=services-central</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=7383082&full=1&branch=services-central">https://tbpl.mozilla.org/php/getParsedLog.php?id=7383082&full=1&branch=services-central</a> This bug will only be closed when the CSS3 3D Transforms feature will be verified on a RC.</div></div><div class="change-set" id="c240"><div class="comment" data-id="5846467" data-no="240" data-tags=""> <table class="layout-table change-head " id="ch-240" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_278074" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/cd9b85b2e112bd7941b21ad03f42604e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_278074" id="a72296662_11608"><a class="email " href="/user_profile?user_id=278074" > <span class="fna">Daniel Holbert [:dholbert]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-240" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-240" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c240">Comment 240</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-14 05:46 PST" data-time="1321278402">13 years ago</span> </div> </td> </tr> <tr id="ctag-240"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-240" data-comment-id="5846467">(In reply to Ioana Budnar [QA] from <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - CSS3 3D-Transforms" href="/show_bug.cgi?id=505115#c239">comment #239</a>) <span class="quote">> This bug will only be closed when the CSS3 3D Transforms feature will be > verified on a RC.</span > This bug is already closed. (RESOLVED|FIXED) Perhaps by "closed" you meant "officially marked as verified"? IIRC, we don't have that requirement in general -- once a bug is verified as fixed on trunk (or whatever branch it lands directly on), that's sufficient to mark the bug as "verified". (Thank you for the comprehensive verification, btw!)</div></div><div class="change-set" id="c241"><div class="comment" data-id="5846473" data-no="241" data-tags=""> <table class="layout-table change-head " id="ch-241" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_422957" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/3b7fbe3a327dea2bb480e2b41d19cf5e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_422957" id="a72296662_11608"><a class="email disabled" href="/user_profile?user_id=422957" > <span class="fna">Ioana (away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-241" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-241" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c241">Comment 241</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-14 05:53 PST" data-time="1321278827">13 years ago</span> </div> </td> </tr> <tr id="ctag-241"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-241" data-comment-id="5846473">Daniel, I meant closed from the QA point of view, which means setting it as VERIFIED FIXED ("officially marked as verified" as you put it). I am not working on this bug by the general requirements because it is a feature tracking bug and I need to make sure the feature enters betas and RC without any (major) issues. Please let me know if you have any concerns about this.</div></div><div class="change-set" id="c242"><div class="comment" data-id="5846500" data-no="242" data-tags=""> <table class="layout-table change-head " id="ch-242" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_278074" id="a72296662_11608"><img src="https://secure.gravatar.com/avatar/cd9b85b2e112bd7941b21ad03f42604e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_278074" id="a72296662_11608"><a class="email " href="/user_profile?user_id=278074" > <span class="fna">Daniel Holbert [:dholbert]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-242" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-242" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c242">Comment 242</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-14 06:07 PST" data-time="1321279632">13 years ago</span> </div> </td> </tr> <tr id="ctag-242"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-242" data-comment-id="5846500">(Ah, ok -- I hadn't realized that we wait for feature-tracking bugs to reach an RC before marking them as verified -- but it may be that I just never noticed that, and it sounds like you know what you're doing, so I'll be quiet. :))</div></div><div class="change-set" id="a74038809_20209"><div class="change" id="aa74038809_20209"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_20209" id="a74038809_20209"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_20209" id="a74038809_20209"><a class="email " href="/user_profile?user_id=20209" > <span class="fna">Boris Zbarsky [:bzbarsky]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a74038809_20209" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a74038809_20209"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a74038809_20209">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-11-23 06:43 PST" data-time="1322059385">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_VERIFIED bz_closed" title="VERIFIED FIXED - Wrong rotation direction for rotate3d(x,y,z,angle)" href="/show_bug.cgi?id=704468">704468</a></div></div></div><div class="change-set" id="a75230186_293623"><div class="change" id="aa75230186_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a75230186_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a75230186_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a75230186_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a75230186_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a75230186_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-12-07 01:39 PST" data-time="1323250762">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - Flash player does not start - cutieskids.com" href="/show_bug.cgi?id=708203">708203</a></div></div></div><div class="change-set" id="a75912861_3881"><div class="change" id="aa75912861_3881"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a75912861_3881"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a75912861_3881"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a75912861_3881" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a75912861_3881"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a75912861_3881">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-12-14 23:17 PST" data-time="1323933437">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_NEW" title="NEW - Possible bad logic / type in nsStyleAnimation::AddWeighted()" href="/show_bug.cgi?id=710971">710971</a></div></div></div><div class="change-set" id="c243"><div class="comment" data-id="5934807" data-no="243" data-tags=""> <table class="layout-table change-head " id="ch-243" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_422957" id="a75912861_3881"><img src="https://secure.gravatar.com/avatar/3b7fbe3a327dea2bb480e2b41d19cf5e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_422957" id="a75912861_3881"><a class="email disabled" href="/user_profile?user_id=422957" > <span class="fna">Ioana (away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-243" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-243" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c243">Comment 243</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-12-22 02:41 PST" data-time="1324550508">13 years ago</span> </div> </td> </tr> <tr id="ctag-243"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-243" data-comment-id="5934807">This issue has also been verified as fixed on Firefox 10 beta 1: layout/reftests/transform-3d passes on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8104308&tree=Mozilla-Beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8104308&tree=Mozilla-Beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105180&tree=Mozilla-Beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105180&tree=Mozilla-Beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105483&tree=Mozilla-Beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105483&tree=Mozilla-Beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105382&full=1&branch=mozilla-beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105382&full=1&branch=mozilla-beta</a> /tests/layout/style/test/test_transitions_per_property.html and layout/base/tests/test_preserve3d_sorting_hit_testing.html are passing on all OSs: <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105147&full=1&branch=mozilla-beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105147&full=1&branch=mozilla-beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105282&full=1&branch=mozilla-beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105282&full=1&branch=mozilla-beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8105277&full=1&branch=mozilla-beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8105277&full=1&branch=mozilla-beta</a> <a rel="nofollow" href="https://tbpl.mozilla.org/php/getParsedLog.php?id=8104017&full=1&branch=mozilla-beta">https://tbpl.mozilla.org/php/getParsedLog.php?id=8104017&full=1&branch=mozilla-beta</a> The manual tests here <a rel="nofollow" href="http://bit.ly/tbXKxE">http://bit.ly/tbXKxE</a> also pass with known issues.</div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=verified-beta&resolution=---">verified-beta</a></div></div></div><div class="change-set" id="a76914978_3881"><div class="change" id="aa76914978_3881"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_3881" id="a76914978_3881"><img src="https://secure.gravatar.com/avatar/0a32391d55cfa63276f87eb9819dfbd0?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_3881" id="a76914978_3881"><a class="email " href="/user_profile?user_id=3881" > <span class="fna">David Baron :dbaron: (⌚️UTC-4, no longer working on Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a76914978_3881" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a76914978_3881"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a76914978_3881">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2011-12-26 13:39 PST" data-time="1324935554">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - overflow: hidden, auto, or scroll removes css3-3d-transforms 'perspective'" href="/show_bug.cgi?id=704469">704469</a></div></div></div><div class="change-set" id="c244"><div class="comment" data-id="6029018" data-no="244" data-tags=""> <table class="layout-table change-head " id="ch-244" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_422957" id="a76914978_3881"><img src="https://secure.gravatar.com/avatar/3b7fbe3a327dea2bb480e2b41d19cf5e?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_422957" id="a76914978_3881"><a class="email disabled" href="/user_profile?user_id=422957" > <span class="fna">Ioana (away)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="cs-244" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="cr-244" > <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#c244">Comment 244</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-02 07:41 PST" data-time="1328197314">13 years ago</span> </div> </td> </tr> <tr id="ctag-244"> <td colspan="2" class="comment-tags"> </td> </tr> </table> </div><div class="comment-text " id="ct-244" data-comment-id="6029018">This feature has been shipped (all the major issues were fixed).</div><div class="activity"><div class="change">Status: RESOLVED → VERIFIED</div><div class="change">Whiteboard: [approved-patches-landed] → [approved-patches-landed][qa!]</div></div></div><div class="change-set" id="a80189372_236958"><div class="change" id="aa80189372_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a80189372_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a80189372_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a80189372_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a80189372_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a80189372_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-02 11:12 PST" data-time="1328209948">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - layout/reftests/transform-3d/matrix3d-*.html don't seem to test anything" href="/show_bug.cgi?id=723637">723637</a></div></div></div><div class="change-set" id="a80195207_236958"><div class="change" id="aa80195207_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a80195207_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a80195207_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a80195207_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a80195207_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a80195207_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-02 12:49 PST" data-time="1328215783">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Fix failing test layout/reftests/transform-3d/preserve3d-1a.html" href="/show_bug.cgi?id=723680">723680</a></div></div></div><div class="change-set" id="a80623201_236958"><div class="change" id="aa80623201_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a80623201_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a80623201_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a80623201_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a80623201_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a80623201_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-07 11:42 PST" data-time="1328643777">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - 'perspective' property doesn't reject negative numbers" href="/show_bug.cgi?id=725036">725036</a></div></div></div><div class="change-set" id="a80677635_319615"><div class="change" id="aa80677635_319615"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_319615" id="a80677635_319615"><img src="https://secure.gravatar.com/avatar/a705a70b587b402f6cbd60082ec4f802?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_319615" id="a80677635_319615"><a class="email " href="/user_profile?user_id=319615" > <span class="fna">Anthony Ricaud (:rik)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a80677635_319615" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a80677635_319615"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a80677635_319615">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-08 02:50 PST" data-time="1328698211">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Complex CSS 3D scenes scroll slowly" href="/show_bug.cgi?id=722603">722603</a></div></div></div><div class="change-set" id="a80709104_236958"><div class="change" id="aa80709104_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a80709104_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a80709104_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a80709104_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a80709104_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a80709104_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-08 11:34 PST" data-time="1328729680">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Incorrect getBoundingClientRect() for transform-style: flat" href="/show_bug.cgi?id=725426">725426</a></div></div></div><div class="change-set" id="a81220604_236958"><div class="change" id="aa81220604_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a81220604_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a81220604_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a81220604_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a81220604_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a81220604_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-14 09:39 PST" data-time="1329241180">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_NEW" title="NEW - 'perspective' only affects child nodes, not further descendants" href="/show_bug.cgi?id=716524">716524</a></div></div></div><div class="change-set" id="a81221235_236958"><div class="change" id="aa81221235_236958"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_236958" id="a81221235_236958"><img src="https://secure.gravatar.com/avatar/4ee926f3208005d04fb839d99f30565f?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_236958" id="a81221235_236958"><a class="email " href="/user_profile?user_id=236958" > <span class="fna">Aryeh Gregor (:ayg) (no longer with Mozilla)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a81221235_236958" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a81221235_236958"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a81221235_236958">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-02-14 09:50 PST" data-time="1329241811">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - 'perspective' and rotatey() can make text disappear" href="/show_bug.cgi?id=698948">698948</a></div></div></div><div class="change-set" id="a84939117_380838"><div class="change" id="aa84939117_380838"> <table class="layout-table change-head assignee" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_380838" id="a84939117_380838"><img src="https://secure.gravatar.com/avatar/a3445a601e1943464cf1ee9117fe1fb4?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_380838" id="a84939117_380838"><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> <span class="user-role">Assignee</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a84939117_380838" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a84939117_380838"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a84939117_380838">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-03-28 11:34 PDT" data-time="1332959693">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED FIXED - Perspective origin checks the parent frame instead of style parent" href="/show_bug.cgi?id=740072">740072</a></div></div></div><div class="change-set" id="a87707594_293623"><div class="change" id="aa87707594_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a87707594_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a87707594_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a87707594_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a87707594_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a87707594_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-04-29 12:36 PDT" data-time="1335728170">13 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_NEW" title="NEW - CSS 3D: Subpixel/texel misalignment" href="/show_bug.cgi?id=749995">749995</a></div></div></div><div class="change-set" id="a93021291_293623"><div class="change" id="aa93021291_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a93021291_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a93021291_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a93021291_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a93021291_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a93021291_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-06-30 00:37 PDT" data-time="1341041867">12 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - 3D transform rotate3d from -90deg to -180deg goes through 270deg" href="/show_bug.cgi?id=769892">769892</a></div></div></div><div class="change-set" id="a97023176_1689"><div class="change" id="aa97023176_1689"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_1689" id="a97023176_1689"><img src="https://secure.gravatar.com/avatar/da6b54ad3fdb36ba7656df9adfe65d12?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_1689" id="a97023176_1689"><a class="email " href="/user_profile?user_id=1689" > <span class="fna">Daniel Veditz [:dveditz]</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a97023176_1689" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a97023176_1689"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a97023176_1689">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-08-15 08:15 PDT" data-time="1345043752">12 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Flags: sec-review+</div><div class="change">Keywords: <span class="activity-deleted"><a href="/buglist.cgi?keywords=sec-review-complete&resolution=---">sec-review-complete</a></span></div></div></div><div class="change-set" id="a99139261_135518"><div class="change" id="aa99139261_135518"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_135518" id="a99139261_135518"><img src="https://secure.gravatar.com/avatar/2b6c1ba0915a97a81d59ca1e101e6d74?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_135518" id="a99139261_135518"><a class="email " href="/user_profile?user_id=135518" > <span class="fna">Phil Ringnalda (:philor)</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a99139261_135518" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a99139261_135518"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a99139261_135518">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-09-08 20:03 PDT" data-time="1347159837">12 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Depends on: <a class="bz_bug_link bz_status_NEW" title="NEW - reftests/transform-3d/scale3d-all.html and scale3d-all-separate.html fail on 10.8" href="/show_bug.cgi?id=789763">789763</a></div></div></div><div class="change-set" id="a101969532_293623"><div class="change" id="aa101969532_293623"> <table class="layout-table change-head " role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_293623" id="a101969532_293623"><img src="extensions/Gravatar/web/default.jpg" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_293623" id="a101969532_293623"><a class="email " href="/user_profile?user_id=293623" > <span class="fna">Alice0775 White</span></a> </div> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a101969532_293623" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a101969532_293623"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a101969532_293623">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-10-11 14:15 PDT" data-time="1349990108">12 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">No longer depends on: <a class="bz_bug_link bz_status_RESOLVED bz_closed" title="RESOLVED WORKSFORME - 3D transform rotate3d from -90deg to -180deg goes through 270deg" href="/show_bug.cgi?id=769892">769892</a></div></div></div><div class="change-set" id="a107222612_248150"><div class="change" id="aa107222612_248150"> <table class="layout-table change-head reporter" role="presentation"> <tr> <td rowspan="2" class="change-gravatar"><div class="vcard vcard_248150" id="a107222612_248150"><img src="https://secure.gravatar.com/avatar/d0d90148e08e3b64ccf75c46f31442c5?d=mm&size=64" class="gravatar" width="32" height="32"> </div> </td> <td class="change-author"><div class="vcard vcard_248150" id="a107222612_248150"><a class="email " href="/user_profile?user_id=248150" > <span class="fna">Jean-Yves Perrier [:teoli]</span></a> </div> <span class="user-role">Reporter</span> </td> <td rowspan="2" class="comment-actions"><div role="group"> <button type="button" class="change-spinner ghost iconic" id="as-a107222612_248150" aria-label="Collapse" aria-expanded="true" data-strings='{ "collapse_label": "Collapse", "expand_label": "Expanded" }'> <span class="icon" aria-hidden="true"></span> </button> </div></td> </tr> <tr id="ar-a107222612_248150"> <td> <h3 class="change-name"> <a href="/show_bug.cgi?id=505115#a107222612_248150">Updated</a> </h3> • <div class="change-time"><span class="rel-time" title="2012-12-11 08:26 PST" data-time="1355243188">12 years ago</span> </div> </td> </tr> </table> </div><div class="activity"><div class="change">Keywords: <a href="/buglist.cgi?keywords=dev-doc-needed&resolution=---">dev-doc-needed</a> → <a href="/buglist.cgi?keywords=dev-doc-complete&resolution=---">dev-doc-complete</a></div></div></div><div id="new-comment-notice"> You need to <a href="/show_bug.cgi?id=505115&GoAheadAndLogIn=1">log in</a> before you can comment on or make changes to this bug. </div> <div id="bottom-actions"> <div id="bottom-right-actions"> <button type="button" id="top-btn" class="secondary" aria-label="Go to Page Top">Top ↑</button> </div> </div> <dialog id="att-overlay" class="readonly" aria-labelledby="att-overlay-title" data-attachment-count="68"> <form method="dialog"> <div class="header"> <h2 id="att-overlay-title" class="title">Attachment</h2> <div class="spacer"></div> <button type="button" class="secondary iconic" hidden disabled data-action="prev" title="Previous Attachment" aria-keyshortcuts="ArrowLeft"> <span class="icon" aria-hidden="true"></span> </button> <button type="button" class="secondary iconic" hidden disabled data-action="next" title="Next Attachment" aria-keyshortcuts="ArrowRight"> <span class="icon" aria-hidden="true"></span> </button> <button type="button" class="secondary" data-action="toggle-details">Hide Details</button> <button type="button" class="secondary iconic" data-action="close" aria-label="Close"> <span class="icon" aria-hidden="true"></span> </button> </div> <div class="body"> <div class="sub-column"> <div class="detail-pane"> <section class="cols"> <h3>General</h3> <div class="creator"> Creator: <div class="vcard vcard_380838" ><a class="email " href="/user_profile?user_id=380838" > <span class="fna">Matt Woodrow (:mattwoodrow)</span></a> </div> </div> <div>Created: <span class="created-date rel-time"></span></div> <div>Updated: <span class="updated-date rel-time"></span></div> <div>Size: <span class="file-size"></span></div> </section> <section class="cols"> <h3> <label for="att-overlay-description">Description</label> </h3> <div> <input type="text" name="description" disabled id="att-overlay-description" class="flex"> </div> </section> <section class="cols"> <h3> <label for="att-overlay-file-name">File Name</label> </h3> <div> <input type="text" name="filename" disabled id="att-overlay-file-name" class="flex"> </div> </section> <section class="cols"> <h3> <label for="att-overlay-content-type">Content Type</label> </h3> <div> <input type="text" name="contenttypeentry" disabled id="att-overlay-content-type" class="flex"> </div> </section> </div> </div> <div class="main-column"> <div class="preview-pane"> <div class="preview "> </div> </div> </div> </div> <div class="footer"> <button type="button" class="secondary" data-action="raw">Raw</button> <button type="button" class="secondary" disabled data-action="diff">Diff</button> <button type="button" class="secondary" disabled data-action="review" data-base="https://bugzilla.mozilla.org/page.cgi?id=splinter.html&ignore=">Splinter Review</button> <div class="spacer"></div> </div> </form> </dialog> <link rel="stylesheet" href="/static/v20241126.1/extensions/FlagTypeComment/web/styles/ftc.css"> <script nonce="RgbfS6lLCqsdv135xiMnFXXno04uT9zUbqUiZ1PsHmv736xG" src="/static/v20241126.1/extensions/FlagTypeComment/web/js/ftc.js"></script></div> </main> </div> </body> </html>