author Emilio Cobos Álvarez <emilio@crisal.io>
Sun, 19 Aug 2018 18:22:48 +0000
changeset 432327 39f61de4e7bb164f1ad812852b4f46bd18e3d96d
parent 308838 578ebd592745ff2b7647b205576f20b5b36f3327
child 455113 2a22490b8a06c9a5eef192ef3192386f8e7ff74f
permissions -rw-r--r--
Bug 1484478 - Use a node bit for connectedness. r=smaug While trying to repro bug 1484293 I noticed that this assertion failed: https://searchfox.org/mozilla-central/rev/ef8b3886cb173d5534b954b6fb7eb2d94a9473d0/dom/base/ShadowRoot.cpp#160 (during unlink, while unbinding the kids) We rely on GetComposedDoc returning the right thing during unbind to cleanup some stuff (see bug 1473637 for example), so it should probably be correct all the time, regardless of whether something is unlinked or not. Also this makes GetComposedDoc() much faster, which is nice too, since we call it somewhat often. I removed NodeHasRelevantHoverRules, since it's unused (was used by the old style system). I moved the SetIsConnected(false) call for the shadow root to before unbinding the kids for consistency with what Element does with the uncomposed doc flag, now that the children's connectedness doesn't depend on the shadow root's. Differential Revision: https://phabricator.services.mozilla.com/D3715

# 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/.

import imp
import os
import shlex
import sys
    from StringIO import StringIO
except ImportError:
    from io import StringIO

old_bytecode = sys.dont_write_bytecode
sys.dont_write_bytecode = True

path = os.path.join(os.path.dirname(__file__), 'mach')

if not os.path.exists(path):
    path = os.path.join(os.path.dirname(__file__), 'config.status')
    config = imp.load_module('_buildconfig', open(path), path, ('', 'r', imp.PY_SOURCE))
    path = os.path.join(config.topsrcdir, 'mach')
mach_module = imp.load_module('_mach', open(path), path, ('', 'r', imp.PY_SOURCE))

sys.dont_write_bytecode = old_bytecode

def FlagsForFile(filename):
    mach = mach_module.get_mach()
    out = StringIO()

    # Mach calls sys.stdout.fileno(), so we need to fake it when capturing it.
    # Returning an invalid file descriptor does the trick.
    out.fileno = lambda: -1
    out.encoding = None
    mach.run(['compileflags', filename], stdout=out, stderr=out)

    flag_list = shlex.split(out.getvalue())

    # This flag is added by Fennec for android build and causes ycmd to fail to parse the file.
    # Removing this flag is a workaround until ycmd starts to handle this flag properly.
    # https://github.com/Valloric/YouCompleteMe/issues/1490
    final_flags = [x for x in flag_list if not x.startswith('-march=armv')]

    return {
        'flags': final_flags,
        'do_cache': True