config/check_js_msg_encoding.py
author peter chang <pchang@mozilla.com>
Fri, 14 Apr 2017 11:58:42 +0800
changeset 403254 5fa3e998d3e5b22301c663837ab4acb1b580ba9f
parent 358366 cf12f9b2f41c143b30e267f6750864a63d8fd204
child 394118 b6057c990bd73e39eb5e7c2c1774dbd9264f64d2
permissions -rw-r--r--
Bug 1345017 - Discard compositor animations on the next layer transaction, r=kats Animations in content side could be removed easily by changing CSS, but the CompositorAnimationStorage in parent side doesn't get updated. Therefore, we store the layer's CompositorAnimationsId before layer is destroyed in WebRenderLayerManager and then send out these discarded ids to parent on the next layer transaction. MozReview-Commit-ID: D4kbYsgLl4P

# vim: set ts=8 sts=4 et sw=4 tw=99:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

#----------------------------------------------------------------------------
# This script checks encoding of the files that define JSErrorFormatStrings.
#
# JSErrorFormatString.format member should be in ASCII encoding.
#----------------------------------------------------------------------------

from __future__ import print_function

import os
import sys
from check_utils import get_all_toplevel_filenames

scriptname = os.path.basename(__file__);
expected_encoding = 'ascii'

# The following files don't define JSErrorFormatString.
ignore_files = [
    'dom/base/domerr.msg',
    'js/xpconnect/src/xpc.msg',
]

def log_pass(filename, text):
    print('TEST-PASS | {} | {} | {}'.format(scriptname, filename, text))

def log_fail(filename, text):
    print('TEST-UNEXPECTED-FAIL | {} | {} | {}'.format(scriptname, filename,
                                                       text))

def check_single_file(filename):
    with open(filename, 'rb') as f:
        data = f.read()
        try:
            data.decode(expected_encoding)
        except:
            log_fail(filename, 'not in {} encoding'.format(expected_encoding))

    log_pass(filename, 'ok')
    return True

def check_files():
    result = True

    for filename in get_all_toplevel_filenames():
        if filename.endswith('.msg'):
            if filename not in ignore_files:
                if not check_single_file(filename):
                    result = False

    return result

def main():
    if not check_files():
        sys.exit(1)

    sys.exit(0)

if __name__ == '__main__':
    main()